Ich suche ein LaTeX-Paket, das Syntaxhervorhebungen für Code ausführt. Zum Beispiel benutze ich gerade 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 wollte das HTML-Markup so hervorheben, wie es eine IDE im Ausgabedokument tun würde. Gibt es ein Paket, das helfen könnte?
Ich möchte dasselbe für verschiedene Sprachen wie Java, C #, HTML, CSS usw. tun.
lstlisting
. XML-Code wird überhaupt nicht hervorgehoben und bei Verwendung von fremden Unicode-Zeichen vermasselt. JavaScript wird anscheinend auch nicht unterstützt. Kann LGrind mit solchen Dingen umgehen?Antworten:
Sie können das Listings- Paket verwenden. Es unterstützt viele verschiedene Sprachen und es gibt viele Optionen zum Anpassen der Ausgabe.
quelle
Nachdem ich eine ähnliche Frage gestellt habe, habe ich ein anderes Paket erstellt, das Pylements verwendet und einige Optionen mehr bietet als
texments
. Es heißtminted
und ist ziemlich stabil und brauchbar.Um es zu demonstrieren, hier ist ein Code, der mit geprägt geprägt ist:
quelle
PATH
Variable anpassen und ein Cmd-Skript erstellen). Ich hoffe, die Pylements-Betreuer davon zu überzeugen,pygmentize
mit einem.exe
Wrapper zu versenden , um diesen Schritt zu vereinfachen.minted
ist installiert und funktioniert sowohl auf ShareLatex als auch auf Overleaf. Sparen Sie sich die Kopfschmerzen bei der Installation von Pylements;)Ich empfehle Pylements . Es akzeptiert einen Code in einer beliebigen Sprache und gibt die Syntax des hervorgehobenen LaTeX-Codes aus. Es verwendet fancyvrb und Farbpakete seine Ausgabe zu erzeugen. Ich persönlich bevorzuge es dem Listing-Paket. Ich denke, Fancyvrb schafft viel schönere Ergebnisse.
quelle
beamer
Typdokument ist dies anscheinend die einzige funktionale Option. Wederminted
nochlistings
richtig kompilieren mitbeamer
.listings
mit verwendetbeamer
, aber Sie müssen angeben, dass Frames, die Listings enthalten, sind[fragile]
.LGrind macht das. Es ist ein ausgereiftes LaTeX-Paket, das es gibt, seit Adam ein Cowboy war und das viele Programmiersprachen unterstützt.
quelle
Ich würde das geprägte Paket wie vom Entwickler Konrad Rudolph erwähnt anstelle des Listenpakets verwenden . Hier ist warum:
Auflistungspaket
Das Auflistungspaket unterstützt standardmäßig keine Farben. So verwenden Sie Farben , die Sie müssten die Farbe Paket enthalten und definieren farb Regeln selbst mit dem \ lstset Befehl wie für MATLAB - Code erklärt hier .
Das Listenpaket funktioniert auch nicht gut mit Unicode, aber Sie können diese Probleme wie hier und hier erläutert beheben .
Der folgende Code
erzeugt folgendes Bild:
geprägtes Paket
Das geprägte Paket unterstützt Farben, Unicode und sieht fantastisch aus. Um es verwenden zu können, benötigen Sie jedoch Python 2.6 und Pylements . In Ubuntu können Sie Ihre Python-Version im Terminal mit überprüfen
und Sie können pylements mit installieren
Da minted dann Aufrufe aufruft, müssen Sie es mit -shell-Escape wie folgt kompilieren
Wenn Sie einen Latex-Editor wie TexMaker oder ähnliches verwenden, würde ich empfehlen, einen Benutzerbefehl hinzuzufügen, damit Sie ihn weiterhin im Editor kompilieren können.
Der folgende Code
erzeugt folgendes Bild:
quelle
Ich verwende meistens lstlistings in Papieren, aber für farbige Ausgaben (für Folien) verwende ich stattdessen pylements.
quelle
Ich würde vorschlagen, Ihr eigenes Paket basierend auf dem folgenden Tex-Code zu definieren. Dies gibt Ihnen völlige Freiheit. http://ubuntuforums.org/archive/index.php/t-331602.html
quelle