Zum Inhalt springen

Code-Listings in LaTeX

Schreiben Sie den Code in eine verbatim-, lstlisting- oder minted-Umgebung oder verwenden Sie \verb|...| im Text; Scissor LaTeX setzt ihn in einer nichtproportionalen Schrift genau so, wie er eingegeben wurde, und färbt die Syntax, wenn Sie die Sprache angeben.

verbatim

Innerhalb von verbatim wird nichts interpretiert: Backslashes, geschweifte Klammern, $ und % erscheinen, wie sie sind, und Zeilenumbrüche und Leerzeichen bleiben erhalten. Das ist der einfachste Weg, Code oder Terminalausgaben zu zeigen.

Ein verbatim-Block

\begin{verbatim}
for i in range(44):
    print(i)   # $ and \textbf stay as typed
\end{verbatim}

Code im Text: \verb

\verb zeigt ein kurzes Stück Code innerhalb eines Satzes. Das Zeichen direkt nach \verb ist das Begrenzungszeichen; wählen Sie eines, das im Code nicht vorkommt, etwa | oder +.

Code im Text mit \verb und \texttt

Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.
Gesetzt von Scissor LaTeX: Code im Text mit \verb und \texttt

\texttt{...} ändert nur die Schrift: Sonderzeichen wie _ und % müssen dort weiterhin maskiert werden, während \verb sie so übernimmt, wie sie sind.

listings: lstlisting mit einer Sprache

Das Paket listings stellt lstlisting bereit. Mit language=... bekommt der Code Syntaxfarben.

lstlisting mit language=Python

LaTeXPräambel: \usepackage{listings}Im Editor öffnen (öffnet in einem neuen Tab)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Gesetzt von Scissor LaTeX: lstlisting mit language=Python

\lstinline|code| ist die Form für den Fließtext, wie \verb.

minted

minted erhält die Sprache als Argument. In einer TeX-Installation braucht es Python und die Option -shell-escape; in Scissor LaTeX funktioniert es ohne beides.

minted mit einer Sprache

LaTeXPräambel: \usepackage{minted}Im Editor öffnen (öffnet in einem neuen Tab)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Gesetzt von Scissor LaTeX: minted mit einer Sprache

Was gelesen wird

BefehlIn Scissor LaTeXHinweise
verbatim, verbatim*Funktioniert
\verb, \verb*Funktioniert
lstlistingTeilweiselanguage= wird gelesen; jede andere Option (numbers, caption, frame, basicstyle, firstline ...) wird ignoriert.
\lstinlineFunktioniertKeine Syntaxfarben im Fließtext.
\lstset{...}AusgelassenEine hier festgelegte Sprache wird nicht verwendet; geben Sie language= bei jedem Listing an.
mintedTeilweiseDie Sprache wird gelesen; Optionen wie linenos und frame werden ignoriert.
\mintinline{lang}{code}FunktioniertKeine Syntaxfarben im Fließtext.
Verbatim, BVerbatim (fancyvrb)TeilweiseWird als verbatim angezeigt; Optionen werden ignoriert.
\lstinputlisting{file}, \inputminted{lang}{file}Nicht unterstütztWird mit einer Meldung übersprungen; fügen Sie den Code in das Dokument ein.
\lstnewenvironment, \newmintedNicht unterstützt

Syntaxfarben gibt es für gängige Sprachen, darunter Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX und LaTeX. Bei Sprachnamen spielt Groß- und Kleinschreibung keine Rolle; Python und python sind also dasselbe. Ein Name, der nicht erkannt wird, ergibt einfachen Code in nichtproportionaler Schrift.

Code aus einer Datei

\lstinputlisting und \inputminted lesen in einer TeX-Installation Code aus einer anderen Datei. Scissor LaTeX überspringt sie und weist im Tab Probleme darauf hin:

\lstinputlisting wird übersprungen

LaTeXPräambel: \usepackage{listings}Im Editor öffnen (öffnet in einem neuen Tab)
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

Tab „Probleme“: 1 included file is not part of this conversion

Unterschiede zu einer TeX-Installation

Die Paketseiten finden Sie unter listings und minted. Die vollständigen Handbücher stehen auf CTAN: listings, minted und fancyvrb.

Fragen und Antworten

Wie füge ich in LaTeX einen Codeblock ein?

Setzen Sie den Code zwischen \begin{verbatim} ... \end{verbatim} oder für Syntaxfarben in ein lstlisting mit [language=Python].

Funktioniert minted ohne Shell-Escape?

In Scissor LaTeX ja: minted-Umgebungen werden ohne Python und ohne -shell-escape eingefärbt. In einer TeX-Installation braucht minted weiterhin beides.

Warum fehlen die Zeilennummern in meinem Listing?

Scissor LaTeX ignoriert numbers=left und die anderen Layoutoptionen von listings. Nur die Sprache wird gelesen.

Jedes Beispiel auf dieser Seite wird beim Erstellen der Website von Scissor LaTeX gesetzt. Zuletzt aktualisiert am 2026-11-07.