Paquet LaTeX pour faire la mise en évidence syntaxique du code dans différentes langues

je cherche un paquet LaTeX qui fait de la mise en évidence syntaxique sur le code. Par exemple, en ce moment j'utilise le bloc mot à mot pour écrire le code:

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

Et cela fonctionne très bien pour afficher le code sur mon document. Mais, supposons que je veuille mettre en évidence le markup HTML de la façon dont un IDE serait dans le document de sortie? y a-t-il un paquet qui pourrait aider?

je voudrais faire la même chose pour différentes langues telles que Java, C#, HTML, CSS et ainsi de suite.

148
demandé sur Vincent Ramdhanie 2008-11-19 02:18:25

7 réponses

vous pouvez utiliser le paquet listings . Il prend en charge de nombreuses langues différentes et il ya beaucoup d'options pour personnaliser la sortie.

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}
144
répondu ChrisN 2008-11-18 23:43:01

après avoir posé une question similaire j'ai créé un autre paquet qui utilise des Pygments, et offre pas mal plus d'options que texments . Ça s'appelle minted et est assez stable et utilisable.

juste pour le montrer, voici un code en surbrillance avec minted:

Example code

125
répondu Konrad Rudolph 2017-05-23 10:31:23

je recommande Pygments . Il accepte un morceau de code dans n'importe quelle langue et la syntaxe de sortie met en évidence le code LaTeX. Il utilise les paquets fancyvrb et color pour produire sa sortie. Je le préfère personnellement à la liste. Je pense que fancyvrb crée des résultats beaucoup plus beaux.

21
répondu reprogrammer 2009-09-20 21:39:11

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

11
répondu ConcernedOfTunbridgeWells 2013-05-20 20:25:49

j'utiliserais le paquet marqué comme mentionné par le développeur Konrad Rudolph au lieu du paquet listing . Voici pourquoi:

liste de paquet

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

aussi, le paquet de listing ne fonctionne pas bien avec unicode, mais vous pouvez corriger 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

colis frappé

le paquet minté prend en charge les couleurs, unicode et semble impressionnant. Cependant, pour l'utiliser, vous devez avoir python 2.6 et pygments . Dans Ubuntu, vous pouvez vérifier votre version python dans le terminal avec

python --version

et vous pouvez installer pygments avec

sudo apt-get install python-pygments

puis, puisque minted fait des appels à pygments, vous avez besoin pour le compiler avec - shell-escape comme ceci

pdflatex -shell-escape yourfile.tex

si vous utilisez un éditeur en latex comme TexMaker ou autre chose, je vous recommande d'ajouter une commande user-command, de sorte que vous puissiez toujours le 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

6
répondu Adam 2017-04-13 12:34:29

j'utilise principalement des listings LST dans les papiers, mais pour les sorties colorées (pour les diapos) j'utilise des Pygmées à la place.

3
répondu Paul Biggar 2009-08-05 17:27:16

je suggérerais de définir votre propre paquet basé sur le code tex suivant; cela vous donne une liberté totale. http://ubuntuforums.org/archive/index.php/t-331602.html

0
répondu okm 2009-11-14 17:13:23