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.
\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}
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}
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}