English logga in

StartTeX och LaTeX

Kodlistningar

listings

Om du i en rapport ska lista kod finns det flera möjligheter. En är paketet listings. För att använda det, så skriv

\usepackage{listings}
i dokumentets huvud, kanske följt av något i stil med
\lstset{
  basicstyle=\small\ttfamily,
  commentstyle=\color{red},
}
för att tala om hur olika delar ska formatteras, i detta fall i liten skrivmaskinsstil och med kommentarer i rött.

Här är fler exempel på inställningar:

\lstset{backgroundcolor=\color{yellow!20}, frame=single,
        numbers=left, numberstyle=\tiny}
Detta gör listningen gulartad med en ram runt sig, och med radnummer. Se dokumentationen till listings för ytterligare möjligheter.

I texten kan du sen använda

\lstinputlisting[language=python]{foo.py}
för att få en listning av ditt program foo.py.

Det finns stöd för flera språk, till exempel language=sh för ett skalskript.

ÅÄÖ i koden?

Paketet listings klarar inte utf8-filer, så om man har t.ex. åäö i koden går det inte. Ett sätt att komma runt är att använda
\usepackage{listingsutf8}
istället i huvudet och
\lstinputlisting[language=python,inputencoding=utf8/latin1]{foo.py}
i texten.

Detta betyder att koden är i utf8 och går att konvertera till latin1 för listningen.

pythonhighlight

Paketet pythonhighlight bygger på listings och är gjort bara för Python.

Du laddar det med

\usepackage{pythonhighlight}

Då får du en omgivning python, ett kommando \pyth{...} för kod i texten, och du kan lägga in en extern Python-fil med

\inputpython{python_file.py}{23}{50}
som visar innehållet i filen python_file från rad 23 till rad 50.