====== Wie kann ich Programmlistings in mein Dokument einbinden? ======
Das Paket ''listings'' bietet eine sehr umfassende Möglichkeit, Programmlistings in das Dokument einzubinden. Mit der ''verbatim''-Umgebung, die LaTeX bietet, ist es aber auch möglich, wenn auch ohne die ganzen Schmankerl.
===== Verbatim-Umgebung =====
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\begin{document}
\noindent Das ist das Shell-Skript, mit dem ich meine Gäste begrüße:
\begin{verbatim}
#!/bin/bash
x=1
while [ $x -le 5 ]
do
echo "Willkommen zum $x., ich begrüße dich!"
x=$(( $x + 1 ))
done
\end{verbatim}
\end{document}
{{:verbatimlisting.png?nolink&|}}
===== Paket listings =====
Das Paket listings bietet sehr viele Möglichkeiten der Formatierung an. Im Normalfall wirkt es etwas ungewöhnlich:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage{listings}
\begin{document}
\noindent Das ist das Shell-Skript, mit dem ich meine Gäste begrüße:
\begin{lstlisting}[language=sh]
#!/bin/bash
x=1
while [ $x -le 5 ]
do
echo "Willkommen zum $x."
x=$(( $x + 1 ))
done
\end{lstlisting}
\end{document}
{{:listingpaket1.png?nolink&|}}
Ein Problem, über das viele Anwender stolpern, kann man leicht umgehen: Normalerweise kommt ''listings'' nicht mit UTF-8 kodierten Umlauten zurecht. Folgender Quelltext zeigt den Trick für die Umlaute (''literate='') und ändert die Formatierung ein wenig. Für die Farben wird das Paket ''xcolor'' benutzt.
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\noindent Das ist das Shell-Skript, mit dem ich meine Gäste begrüße:
\lstset
{
morekeywords={draw,clip,path},
frame=single,
framesep=\fboxsep,
framerule=\fboxrule,
rulecolor=\color{red},
xleftmargin=\dimexpr\fboxsep+\fboxrule\relax,
xrightmargin=\dimexpr\fboxsep+\fboxrule\relax,
breaklines=true,
basicstyle=\small\tt,
keywordstyle=\color{blue},
commentstyle=\color[rgb]{0.13,0.54,0.13},
backgroundcolor=\color{yellow!10},
tabsize=2,
columns=flexible,
morekeywords={maketitle},
literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
{~}{{\textasciitilde}}1
}
\begin{lstlisting}[language=sh]
#!/bin/bash
x=1
while [ $x -le 5 ]
do
echo "Willkommen zum $x., ich begrüße dich!"
x=$(( $x + 1 ))
done
\end{lstlisting}
\end{document}
{{:listingpaket2.png?nolink&|}}