Pacchetto LaTeX per evidenziare la sintassi del codice in varie lingue
-
08-07-2019 - |
Domanda
Sto cercando un pacchetto LaTeX che evidenzi la sintassi sul codice. Ad esempio, in questo momento uso il blocco testuale per scrivere il codice:
\begin{verbatim}
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{verbatim}
E questo funziona benissimo per visualizzare il codice sul mio documento. Ma supponiamo di voler evidenziare il markup HTML come farebbe un IDE nel documento di output? Esiste un pacchetto che potrebbe aiutare?
Vorrei fare lo stesso per varie lingue come Java, C #, HTML, CSS e così via.
Soluzione
Puoi utilizzare il pacchetto elenchi . Supporta molte lingue diverse e ci sono molte opzioni per personalizzare l'output.
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
Altri suggerimenti
Dopo aver posto una domanda simile ho creato un altro pacchetto che utilizza Pygments e offre alcune altre opzioni rispetto a texments
. Si chiama coniato
ed è abbastanza stabile e utilizzabile.
Giusto per mostrarlo, ecco un codice evidenziato con coniato:
LGrind fa questo. È un pacchetto LaTeX maturo che esiste da quando Adam era un cowboy e ha il supporto per molti linguaggi di programmazione.
Vorrei usare il pacchetto coniato come menzionato da lo sviluppatore Konrad Rudolph invece del pacchetto di elenchi . Ecco perché:
pacchetto di elenchi
Il pacchetto di elenchi non supporta i colori per impostazione predefinita. Per usare i colori dovresti includere il pacchetto colori e definire tu stesso le regole del colore con il comando \ lstset come spiegato per il codice matlab qui .
Inoltre, il pacchetto di elenchi non funziona bene con Unicode, ma puoi risolvere quei problemi come spiegato qui e qui .
Il seguente codice
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
produce la seguente immagine:
pacchetto coniato
Il pacchetto coniato supporta colori, unicode e sembra fantastico. Tuttavia, per usarlo, devi avere python 2.6 e pygments . In Ubuntu, puoi controllare la tua versione di Python nel terminale con
python --version
e puoi installare i pigmenti con
sudo apt-get install python-pygments
Quindi, dal momento che coniato effettua chiamate ai pigmenti, è necessario compilarlo con -shell-escape in questo modo
pdflatex -shell-escape yourfile.tex
Se usi un editor in lattice come TexMaker o qualcosa del genere, ti consiglio di aggiungere un comando utente, in modo da poterlo ancora compilare nell'editor.
Il seguente codice
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{html}
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{minted}
\end{document}
produce la seguente immagine:
Uso principalmente lstlisting nei documenti, ma per l'output a colori (per le diapositive) uso invece i pigmenti.
Suggerirei di definire il proprio pacchetto in base al seguente codice tex; questo ti dà la completa libertà. http://ubuntuforums.org/archive/index.php/t-331602. html