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.\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
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\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
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}Was gelesen wird
| Befehl | In Scissor LaTeX | Hinweise |
|---|---|---|
verbatim, verbatim* | Funktioniert | |
\verb, \verb* | Funktioniert | |
lstlisting | Teilweise | language= wird gelesen; jede andere Option (numbers, caption, frame, basicstyle, firstline ...) wird ignoriert. |
\lstinline | Funktioniert | Keine Syntaxfarben im Fließtext. |
\lstset{...} | Ausgelassen | Eine hier festgelegte Sprache wird nicht verwendet; geben Sie language= bei jedem Listing an. |
minted | Teilweise | Die Sprache wird gelesen; Optionen wie linenos und frame werden ignoriert. |
\mintinline{lang}{code} | Funktioniert | Keine Syntaxfarben im Fließtext. |
Verbatim, BVerbatim (fancyvrb) | Teilweise | Wird als verbatim angezeigt; Optionen werden ignoriert. |
\lstinputlisting{file}, \inputminted{lang}{file} | Nicht unterstützt | Wird mit einer Meldung übersprungen; fügen Sie den Code in das Dokument ein. |
\lstnewenvironment, \newminted | Nicht 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
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.