Naar de inhoud

Codevoorbeelden in LaTeX

Zet de code in een verbatim-, lstlisting- of minted-omgeving, of gebruik \verb|...| in de tekst; Scissor LaTeX zet hem in een lettertype met vaste breedte, precies zoals getypt, en kleurt de syntax als je de taal noemt.

verbatim

Binnen verbatim wordt niets geïnterpreteerd: backslashes, accolades, $ en % worden afgedrukt zoals ze zijn, en regeleinden en spaties blijven behouden. Het is de eenvoudigste manier om code of terminaluitvoer te tonen.

Een verbatim-blok

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

Code in de tekst: \verb

\verb toont een kort stukje code binnen een zin. Het teken direct na \verb is het scheidingsteken; kies er een dat niet in de code voorkomt, zoals | of +.

Code in de tekst met \verb en \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.
Gezet door Scissor LaTeX: Code in de tekst met \verb en \texttt

\texttt{...} verandert alleen het lettertype: speciale tekens zoals _ en % moeten daar nog steeds worden geëscapet, terwijl \verb ze neemt zoals ze zijn.

listings: lstlisting met een taal

Het pakket listings geeft je lstlisting. Met language=... krijgt de code syntaxkleuren.

lstlisting met language=Python

LaTeXPreambule: \usepackage{listings}Openen in de editor (opent in een nieuw tabblad)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Gezet door Scissor LaTeX: lstlisting met language=Python

\lstinline|code| is de vorm voor in de tekst, net als \verb.

minted

minted neemt de taal als argument. In een TeX-installatie heeft het Python en de optie -shell-escape nodig; in Scissor LaTeX werkt het zonder beide.

minted met een taal

LaTeXPreambule: \usepackage{minted}Openen in de editor (opent in een nieuw tabblad)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Gezet door Scissor LaTeX: minted met een taal

Wat wordt gelezen

CommandoIn Scissor LaTeXOpmerkingen
verbatim, verbatim*Werkt
\verb, \verb*Werkt
lstlistingGedeeltelijklanguage= wordt gelezen; elke andere optie (numbers, caption, frame, basicstyle, firstline ...) wordt genegeerd.
\lstinlineWerktGeen syntaxkleuren in de tekst.
\lstset{...}WeggelatenEen taal die hier wordt ingesteld, wordt niet gebruikt; geef language= bij elk codeblok op.
mintedGedeeltelijkDe taal wordt gelezen; opties zoals linenos en frame worden genegeerd.
\mintinline{lang}{code}WerktGeen syntaxkleuren in de tekst.
Verbatim, BVerbatim (fancyvrb)GedeeltelijkGetoond als verbatim; opties worden genegeerd.
\lstinputlisting{file}, \inputminted{lang}{file}Niet ondersteundOvergeslagen met een melding; plak de code in het document.
\lstnewenvironment, \newmintedNiet ondersteund

Syntaxkleuren zijn beschikbaar voor gangbare talen, waaronder Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX en LaTeX. Taalnamen zijn niet hoofdlettergevoelig, dus Python en python zijn hetzelfde. Een naam die niet wordt herkend, geeft gewone code met vaste breedte.

Code uit een bestand

\lstinputlisting en \inputminted lezen in een TeX-installatie code uit een ander bestand. Scissor LaTeX slaat ze over en meldt dat in het tabblad Problemen:

\lstinputlisting wordt overgeslagen

LaTeXPreambule: \usepackage{listings}Openen in de editor (opent in een nieuw tabblad)
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

Tabblad Problemen: 1 included file is not part of this conversion

Wat anders is dan in een TeX-installatie

Zie listings en minted voor de pakketpagina's. De volledige handleidingen staan op CTAN: listings, minted en fancyvrb.

Vragen en antwoorden

Hoe voeg ik een codeblok toe in LaTeX?

Zet de code tussen \begin{verbatim} ... \end{verbatim}, of in lstlisting met [language=Python] voor syntaxkleuren.

Werkt minted zonder shell escape?

In Scissor LaTeX wel: minted-omgevingen worden gekleurd zonder Python of -shell-escape. In een TeX-installatie heeft minted die allebei nog steeds nodig.

Waarom ontbreken de regelnummers van mijn codeblok?

Scissor LaTeX negeert numbers=left en de andere opmaakopties van listings. Alleen de taal wordt gelezen.

Elk voorbeeld op deze pagina wordt door Scissor LaTeX gezet wanneer de site wordt gebouwd. Laatst bijgewerkt op 2026-11-07.