web-dev-qa-db-fra.com

Le paquet LaTeX pour faire la coloration syntaxique du code dans différentes langues

Je cherche un paquet LaTeX qui met en évidence la syntaxe sur le code. Par exemple, à l’heure actuelle, j’utilise le bloc textuel pour écrire le code:

\begin{verbatim}
    <html>
       <head>
           <title>Hello</title>
       </head>
       <body>Hello</body>
    </html>
\end{verbatim}

Et cela fonctionne bien pour afficher le code sur mon document. Mais supposons que je veuille souligner le balisage HTML comme un IDE dans le document de sortie? . Existe-t-il un paquet pouvant aider?

Je voudrais faire la même chose pour différents langages tels que Java, C #, HTML, CSS, etc.

158
Vincent Ramdhanie

Vous pouvez utiliser le package listings . Il prend en charge de nombreuses langues et propose de nombreuses options pour personnaliser le résultat.

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}
153
ChrisN

Après avoir posé un question similaire , j’ai créé un autre paquetage qui utilise Pygments et offre quelques options bien plus nombreuses que texments. C’est appelé minted et il est assez stable et utilisable.

Juste pour le montrer, voici un code surligné avec la frappe:

Example code

136
Konrad Rudolph

Je recommande Pygments . Il accepte un morceau de code dans n'importe quel langage et affiche le code LaTeX mis en évidence par la syntaxe. Il utilise les paquets fancyvrb et couleur pour produire sa sortie. Personnellement, je le préfère au paquet de liste. Je pense que fancyvrb crée des résultats beaucoup plus jolis.

21
reprogrammer

LGrind le fait. C'est un paquet LaTeX mature qui existe depuis qu'Adam était un cow-boy et supporte de nombreux langages de programmation.

Je voudrais utiliser le package frappée comme mentionné par le développeur Konrad Rudolph au lieu du package de liste . Voici pourquoi:

liste des paquets

Le package de référencement ne prend pas en charge les couleurs par défaut. Pour utiliser les couleurs, vous devez inclure le paquet de couleurs et définir vous-même les règles de couleur avec la commande \lstset comme expliqué pour le code matlab ici .

En outre, le package de liste ne fonctionne pas bien avec Unicode, mais vous pouvez résoudre ces problèmes comme expliqué ici et ici .

Le code suivant

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}

produit l'image suivante:

enter image description here

package parfait

Le paquet neuf prend en charge les couleurs, l’unicode et est superbe. Cependant, pour l'utiliser, vous devez disposer de python 2.6 et pygments . Dans Ubuntu, vous pouvez vérifier votre python version dans le terminal avec

python --version

et vous pouvez installer des pygments avec

Sudo apt-get install python-pygments

Ensuite, comme minted appelle des pygments, vous devez le compiler avec Shell-escape comme ceci

pdflatex -Shell-escape yourfile.tex

Si vous utilisez un éditeur de latex tel que TexMaker ou quelque chose du genre, je vous conseillerais d'ajouter une commande utilisateur, de sorte que vous puissiez toujours la compiler dans l'éditeur.

Le code suivant

\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}

produit l'image suivante:

enter image description here

9
Adam

J'utilise principalement llistingsings dans des papiers, mais pour les sorties en couleur (pour les diapositives), j'utilise plutôt des pygments.

4
Paul Biggar