Zum Inhalt springen

listings in Scissor LaTeX

Das Paket listings funktioniert in Scissor LaTeX teilweise: lstlisting behält den Code genau wie getippt und färbt ihn ein, wenn Sie language= an der Umgebung angeben, und \lstinline funktioniert; \lstset, Zeilennummern, Rahmen, Beschriftungen und Marken werden ignoriert, und \lstinputlisting wird übersprungen.

Was das Paket macht

listings setzt Quellcode. Die Umgebung lstlisting behält Zeilenumbrüche und Leerzeichen bei, und mit language=Python (oder C, Java, SQL ...) setzt sie Schlüsselwörter, Kommentare und Zeichenketten in unterschiedlichen Stilen. Optionen ergänzen Zeilennummern, Rahmen, Beschriftungen und Farben, entweder pro Listing oder mit \lstset für das ganze Dokument. \lstinline ist die Form für den Fließtext, und \lstinputlisting liest Code aus einer Datei.

Was hier funktioniert

FunktionIn Scissor LaTeXHinweise
\begin{lstlisting} ... \end{lstlisting}FunktioniertDicktengleich, genau wie getippt.
[language=Python] an der UmgebungFunktioniertSyntaxfarben aus einem festen Schema.
[language={[Sharp]C}] und andere DialekteFunktioniertDer Dialekt in eckigen Klammern wird zusammen mit dem Namen gelesen.
\lstinline|code|, \lstinline{code}FunktioniertDicktengleich, ohne Farben.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorEntfälltOhne Meldung ignoriert.
caption=, label=EntfälltEs wird keine Beschriftung ausgegeben, und ein \ref auf die Marke zeigt „??“.
\lstset{...}, \lstdefinestyle, style=EntfälltIgnoriert, auch ein dort gesetztes language=.
\lstinputlisting{file}Nicht unterstütztMit einer Meldung übersprungen.
\lstlistoflistings, \lstnewenvironmentNicht unterstütztMit einer Meldung übersprungen.

Bei Sprachnamen spielt Groß- und Kleinschreibung keine Rolle. Farben gibt es für gängige Sprachen wie Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML und TeX. Ein Name, der nicht erkannt wird, etwa Fortran, ergibt einfachen dicktengleichen Code ohne Meldung.

Beispiele

Geben Sie die Sprache an jedem Listing an:

lstlisting mit language=Python

LaTeXPräambel: \usepackage{listings}Im Editor öffnen (öffnet in einem neuen Tab)
\begin{lstlisting}[language=Python]
def mean(values):
    # average of a list of numbers
    return sum(values) / len(values)

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

Eine mit \lstset gesetzte Sprache wird nicht verwendet, deshalb hat dieses Listing keine Farben. Layoutoptionen wie numbers und frame werden ebenfalls ignoriert:

\lstset wird ignoriert

\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}

Code im Fließtext mit \lstinline akzeptiert wie \verb jedes Begrenzungszeichen:

\lstinline in einem Satz

LaTeXPräambel: \usepackage{listings}Im Editor öffnen (öffnet in einem neuen Tab)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Gesetzt von Scissor LaTeX: \lstinline in einem Satz

Ein beschriftetes Listing in einer Abbildung

LaTeXPräambel: \usepackage{listings}Im Editor öffnen (öffnet in einem neuen Tab)
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.
Gesetzt von Scissor LaTeX: Ein beschriftetes Listing in einer Abbildung

Kompatibilität

  • Von einer TeX-Installation hierher: Der Code jedes lstlisting wird angezeigt. Verschieben Sie language= aus \lstset an jedes einzelne Listing, um Farben zu bekommen, und fügen Sie Code aus Dateien von \lstinputlisting direkt ins Dokument ein.
  • Von hier in eine TeX-Installation: Dokumente lassen sich dort unverändert übersetzen, und Ihre Optionen wirken dann.

Das vollständige Handbuch steht auf CTAN: ctan.org/pkg/listings. Siehe auch Code-Listings in LaTeX und minted.

Fragen und Antworten

Warum sind meine Listings nicht eingefärbt?

Wahrscheinlich ist die Sprache mit \lstset gesetzt, was hier ignoriert wird. Schreiben Sie [language=Python] (oder Ihre Sprache) nach \begin{lstlisting}.

Kann ich Zeilennummern anzeigen?

Noch nicht. numbers=left wird akzeptiert und ignoriert.

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