LaTeX wird in vielen wissenschaftlichen Bereichen verwendet und Programmierung ist zu einem wichtigen Aspekt mehrerer wissenschaftlicher Disziplinen geworden. Daher wird ein Werkzeug benötigt, das Code richtig darstellt. Dieser Artikel erklärt, wie man die standardmäßige verbatim
-Umgebung sowie das Paket listings
verwendet, das erweiterte Funktionen zur Code-Formatierung bietet. Ein separater Artikel behandelt das Paket minted
, das eine Syntaxhervorhebung mithilfe der Python-Bibliothek pygmentize durchführt.
Die verbatim
-Umgebung
Das Standardwerkzeug zur Code-Darstellung in LaTeX ist verbatim
, das eine monospace Schriftart erzeugt.
In diesem Beispiel werden alle Zeilenumbrüche und Leerzeichen beibehalten. Es gibt auch eine Version dieses Befehls mit einem Sternchen, deren Ausgabe geringfügig anders ist.
Mit dem Befehl verb|C:Windowssystem32|
wird der Text innerhalb der Begrenzungszeichen |
im verbatim
-Format gedruckt. Jedes Zeichen, außer Buchstaben und *, kann als Begrenzungszeichen verwendet werden. Zum Beispiel verwendet verb+ldots+
das + als Begrenzungszeichen.
Verwendung von listings
zur Hervorhebung von Code
Um die lstlisting
-Umgebung zu verwenden, müssen Sie die folgende Zeile in der Präambel Ihres Dokuments hinzufügen.
Hier ist ein Beispiel für die Verwendung der lstlisting
-Umgebung aus dem listings
-Paket.
In diesem Beispiel werden alle LaTeX-Befehle ignoriert und der Text wird genauso gedruckt, wie er eingegeben wurde. Ein weiteres Beispiel zeigt die Syntaxhervorhebung für die Programmiersprache Python.
Importieren von Code aus einer Datei
Code wird normalerweise in einer Quelldatei gespeichert, daher ist ein Befehl, der automatisch Code aus einer Datei importiert, sehr praktisch.
Der Befehl lstinputlisting[language=Octave]{BitXorMatrix.m}
importiert den Code aus der Datei BitXorMatrix.m
. Der zusätzliche Parameter in den Klammern ermöglicht eine Syntaxhervorhebung für die Programmiersprache Octave. Wenn Sie nur einen Teil der Datei importieren möchten, können Sie zwei durch Komma getrennte Parameter in den Klammern angeben.
Code-Styles und Farben
Die Codeformatierung mit dem listings
-Paket ist stark anpassbar.
Wie Sie sehen, verbessern die Farben und Stile die Lesbarkeit erheblich. In diesem Beispiel wird das Paket xcolor
importiert und der Befehl definecolor{}{}
wird verwendet, um neue Farben im RGB-Format zu definieren.
Es gibt im Wesentlichen zwei Befehle, die den Stil für dieses Beispiel generieren: lstdefinestyle{mystyle}{...}
definiert einen neuen Code-Listing-Stil namens “mystyle”. Mit lstset{style=mystyle}
kann innerhalb Ihres Dokuments bei Bedarf zu einem anderen Stil gewechselt werden.
Bildunterschriften und Verzeichnis der Listings
Wie bei Gleitobjekten (Tabellen und Abbildungen) können Bildunterschriften für Code-Listings hinzugefügt werden, um eine klarere Präsentation zu ermöglichen.
Durch Hinzufügen des kommagetrennten Parameters caption=Python Beispiel
in den Klammern wird die Bildunterschrift aktiviert. Diese Bildunterschrift kann später im Verzeichnis der Listings verwendet werden.
Beispielprojekt auf Overleaf
Öffnen Sie diesen Link, um das Beispielprojekt zum listings
-Paket auf Overleaf auszuprobieren.
Referenzleitfaden
Unterstützte Sprachen
- ABAP
- ACSL
- Ada
- Algol
- Ant
- Assembler
- Awk
- bash
- Basic
- C
- C++
- Caml
- CIL
- Clean
- Cobol
- Comal
- command.com
- Comsol
- csh
- Delphi
- Eiffel
- Elan
- erlang
- Euphoria
- Fortran
- GCL
- Gnuplot
- Haskell
- HTML
- IDL
- Inform
- Java
- JVMIS
- ksh
- Lingo
- Lisp
- Logo
- make
- Mathematica
- Matlab
- Mercury
- MetaPost
- Miranda
- Mizar
- ML
- Modula-2
- MuPAD
- NASTRAN
- Oberon-2
- OCL
- Octave
- Oz
- Pascal
- Perl
- PHP
- PL/I
- Plasm
- PostScript
- POV
- Prolog
- Promela
- PSTricks
- Python
- R
- Reduce
- Rexx
- RSL
- Ruby
- S
- SAS
- Scilab
- sh
- SHELXL
- Simula
- SPARQL
- SQL
- tcl
- TeX
- VBScript
- Verilog
- VHDL
- VRML
- XML
- XSLT
Optionen zum Anpassen von Code-Listing-Stilen
backgroundcolor
: Hintergrundfarbecommentstyle
: Stil für Kommentarebasicstyle
: Schriftgröße/-familie für den Codekeywordstyle
: Stil für Schlüsselwörternumberstyle
: Stil für Zeilennummernnumbersep
: Abstand der Zeilennummern vom Codestringstyle
: Stil für Zeichenkettenshowspaces
: Betonen von Leerzeichen im Codeshowstringspaces
: Betonen von Leerzeichen in Zeichenkettenshowtabs
: Betonen von Tabulatoren im Codenumbers
: Position der Zeilennummernprebreak
: Darstellung des Zeilenumbruchscaptionpos
: Position der Bildunterschriftframe
: Rahmen um den Codebreakatwhitespace
: Zeilenumbruch nur an Leerzeichenbreaklines
: automatischer Zeilenumbruchkeepspaces
: Behalten von Leerzeichen im Codetabsize
: Tabulatorgrößeescapeinside
: Zeichen für den Umbruch von Coderulecolor
: Farbe des Rahmens
Weitere Informationen
- Code-Hervorhebung mit minted
- Verwendung von Farben in LaTeX
- Inhaltsverzeichnis
- Verwaltung in einem großen Projekt
- LaTeX-Projekte mit mehreren Dateien
- Schriftgrößen, Schriftfamilien und Stile
- Schriftarten
listings
-Paket Dokumentationlistings
CTAN-Website