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}

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}

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}

This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

Creative Commons Lizenzvertrag Diese Seite bearbeiten Ältere Versionen Übersicht Links hierher RSS feed Impressum