LaTeX Extra > LaTeX Pakete > minted


Das minted Paket (Version v2.5 2017/07/19) ermöglicht die Darstellung von Quellcode in LaTeX. [1] Dabei ist die Darstellung nicht auf den Quellcode von LaTeX beschränkt, sondern das Paket ermöglicht mehr als über 300 Programmiersprachen zu verwenden. Der Code kann dabei in einer neuen Umgebung beziehungsweise mittels Einbindung einer Datei die den Code enthält. Zusätzlich existiert eine zweite neue Umgebung listing mit der Code als nummerierbares Gleitobjekt mit entsprechendem Verzeichnis.

1.1 Einbinden des Paketes

Das Paket wird mit \usepackage{minted} eingebunden.

1.2 Optionen

Das Paket verfügt zur Zeit über 12 Optionen beziehungsweise Einstellungen die beim Einbinden des Paketes gesetzt werden können. Das Setzen der Optionen erfolgt über ein key = value System, wobei als Werte (value) true und false möglich sind. Die folgenden vier Optionen / Einstellungen sind bei der normalen Verwendung ausreichend.

Mit den Einstellungen chapter und section kann der Rücksetzpunkt der Nummerierung der listing Gleitobjekte auf Kapitel- beziehungsweise Abschnittsweise Zählung verändern.

Bei der Verwendung der Option newfloat = true (default ist false) wird das newfloat anstelle des float Paketes zur Erstellung der listing Umgebung verwendet.

Werden die Codezeilen durchnummeriert dargestellt und man will, dass für jede eingebundene Sprache die Zeilennummern fortlaufend sind, das heißt sie nicht immer bei der 1 neu startem, sondern die bereits vorhanden Zeilenanzahl berücksichtigt wird die Option langlinenos = true benötigt.

2 minted Umgebung

Innerhalb der minted Umgebung wird der darzustellende Quellcode gesetzt. Die Umgebung verfügt über einige mögliche Optionen und Einstellungen und erwartet als Pflicht Argument die Programmiersprache.

\begin{minted}[Optionen / Einstellungen]{Sprache}
CODE in der SPRACHE 
     CODE ...
\end{minted}

2.1 Optionen

Eine kurze Auswahl der möglichen Optionen und Einstellungen.

2.2 mint Befehl

Der Befehl mint ist für den Satz einer Zeile Code gedacht, damit kann aber kein Code im in line Modus dargestellt werden. Das bedeutet, wenn der mint Befehl gesetzt wird erfolgt vor und nach der Darstellung des Inhaltes des mint Befehls ein Zeilenumbruch. Abgesehen davon, dass der Befehl nur für eine Zeile Code gemacht wurde, verhält er sich ansonsten wie die minted Umgebung.

\mint[Optionen / Einstellungen]{Sprache}{CODE in der SPRACHE}
Beispiel:
Text vor dem mint Befehl \mint{python}{print(x**2)} und Text danach.
Ausgabe:

2.3 mintinline

Mit Hilfe des Befehls mintinline ist eine Darstellung innerhalb von Fließtext (in line) möglich.
\mintinline[Optionen / Einstellungen]{Sprache}{CODE in der SPRACHE}
Beispiel:
Text vor dem mintinline Befehl \mintinline{python}{print(x**2)} und Text danach.
Ausgabe:

3 listing Umgebung

Mit der listing Umgebung kann der Code der per minted Umgebung beziehungsweise per mint Befehl gesetzt wurde in ein Gleitobjekt eingefügt werden. Analog zu den Standard Gleitobjekt Umgebungen figure und table ist es auch in der listing Umgebung möglich Beschriftungen (Caption) zu setzen und auf diese zu verweisen (label).

\begin{listing}[H]
\begin{minted}[style=trac]{c}
int main() {
    printf("Hello World");
    return 0;
}
\end{minted}
\caption{Ein Beispiel für Hello World.}
\label{Beispiel}
\end{listing}
Listing 1: Ein Beispiel für Hello World.

Mit dem Befehl listoflistings wird das entsprechende Verzeichnis an die gewünschte Stelle im Dokument gesetzt.
\documentclass{article}
...
\begin{document}
...
\tableofcontents 
\listoflistings
...
\end{document}

3.1 Dateien mit Quellcode einbinden

Um ganze Dateien mit Code einzubinden existiert der Befehl inputminted.
\inputminted[Optionen]{Sprache}{Dateiname}
Beispiel: \inputminted{c}{hello.c}

4 Hinweise

Beim Kompilieren ist in der Regel ein Shell escape zu setzen, das bedeutet:
pdflatex -shell-escape Minted.tex
Um herauszufinden welche Sprachen unterstützt werden den folgenden Befehl in der Konsole ausführen.
pygmentize -L lexers

Literatur

[1]
The minted package: Highlighted source code in LaTeX, Geoffrey M. Poore, v2.5 from 2017/07/19 https://ctan.org/pkg/minted