webentwicklung-frage-antwort-db.com.de

LaTeX-Paket zur Syntaxhervorhebung von Code in verschiedenen Sprachen

Ich suche ein LaTeX-Paket, das Syntax-Hervorhebungen für Code ausführt. Im Moment benutze ich zum Beispiel den wörtlichen Block, um Code zu schreiben:

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

Und das funktioniert gut, um den Code in meinem Dokument anzuzeigen. Angenommen, ich möchte das HTML-Markup wie ein IDE im Ausgabedokument hervorheben? Gibt es ein Paket, das helfen könnte?

Ich möchte dasselbe für verschiedene Sprachen wie Java, C #, HTML, CSS und so weiter tun.

158

Sie können das Paket lists verwenden. Es werden viele verschiedene Sprachen unterstützt und es gibt viele Optionen zum Anpassen der Ausgabe.

\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

Nachdem ich eine ähnliche Frage gestellt habe , habe ich ein weiteres Paket erstellt, das Pygments verwendet und wesentlich mehr Optionen bietet als texments. Es heißt minted und ist ziemlich stabil und brauchbar.

Um es zu demonstrieren, hier ist ein Code, der wie folgt hervorgehoben ist:

Example code

136
Konrad Rudolph

Ich empfehle Pygments . Es akzeptiert einen Code in einer beliebigen Sprache und gibt syntaktisch hervorgehobenen LaTeX-Code aus. Es verwendet die Pakete fancyvrb und color , um die Ausgabe zu erzeugen. Ich persönlich bevorzuge es dem Listing-Paket. Ich denke fancyvrb erzeugt viel schönere Ergebnisse.

21
reprogrammer

LGrind macht das. Es ist ein ausgereiftes LaTeX-Paket, das es gibt, seit Adam Cowboy war und das viele Programmiersprachen unterstützt.

Ich würde das vom Entwickler Konrad Rudolph erwähnte geprägtes Paket anstelle des Listing-Pakets verwenden. Hier ist warum:

Listing Package

Das Listenpaket unterstützt standardmäßig keine Farben. Um Farben zu verwenden, müssten Sie das Farbpaket einbinden und die Farbregeln mit dem Befehl \lstset selbst definieren, wie für matlab code hier erläutert.

Das Listing-Paket funktioniert auch nicht gut mit Unicode, aber Sie können diese Probleme wie folgt beheben: hier und hier .

Der folgende Code

\documentclass{article}
\usepackage{listings}

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

erzeugt das folgende Bild:

enter image description here

geprägte Packung

Das geprägte Paket unterstützt Farben, Unicode und sieht fantastisch aus. Um es zu benutzen, müssen Sie jedoch python 2.6 und pygments haben. In Ubuntu können Sie Ihr python überprüfen Version im Terminal mit

python --version

und Sie können mit pygments installieren

Sudo apt-get install python-pygments

Da minted dann pygments aufruft, müssen Sie es mit Shell-escape so kompilieren

pdflatex -Shell-escape yourfile.tex

Wenn Sie einen Latex-Editor wie TexMaker oder etwas anderes verwenden, würde ich empfehlen, einen Benutzerbefehl hinzuzufügen, damit Sie ihn weiterhin im Editor kompilieren können.

Der folgende Code

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

erzeugt das folgende Bild:

enter image description here

9
Adam

Ich verwende meistens lstlistings in Papieren, aber für farbige Ausgaben (für Dias) verwende ich stattdessen pygments.

4
Paul Biggar