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.

È stato utile?

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:

Esempio di codice

Consiglio Pygments . Accetta un pezzo di codice in qualsiasi lingua e genera il codice LaTeX evidenziato dalla sintassi. Utilizza fancyvrb e color per produrre il suo output. Personalmente lo preferisco al pacchetto di elenchi. Penso che fancyvrb crea risultati molto più belli.

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:

 inserisci qui la descrizione dell'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:

 inserisci qui la descrizione dell'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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top