Schlagwort-Archive: lstset

Programmcode in Lyx und Latex sauber darstellen

Tja es gibt immer wieder was zu lernen und heute ist es das Programmlisting bei LyX bzw. LaTeX.

Wer kennt es nicht? Man hat einen schönen Programmeditor und hat sich durchs Programmieren schon so an das Codelayout gewöhnt, dass man es am liebsten gleich bei seiner Arbeit verwenden möchte. Gesagt getan. Mit folgendem Code erreicht man das ganz einfach.

%Farben fuer Programmlisting
\usepackage{listings,xcolor}
\definecolor{pl_background}{rgb}{0.95,0.95,0.95}
\definecolor{pl_comment}{rgb}{0.12, 0.38, 0.18 }
\definecolor{pl_ifelse}{rgb}{0.74,0.74,.29}
\definecolor{pl_keyword}{rgb}{0.37, 0.08, 0.25}
\definecolor{pl_string}{rgb}{0.06, 0.10, 0.98}
% Vordefiniertes Programmlisting
\lstset{
language = php,
basicstyle = \small\sffamily,
backgroundcolor = \color{pl_background},
stringstyle = \color{pl_string},
keywordstyle = \color{pl_keyword}\bfseries,
commentstyle = \color{pl_comment}\itshape,
frame = lrbt,
numbers = left,
showstringspaces = false,
breaklines = true,
xleftmargin = 15pt,
emph = [1]{php},
emphstyle = [1]\color{black},
emph = [2]{if,and,or,else},
emphstyle = [2]\color{pl_ifelse}}

Dieses Beispiel verwendet PHP als Programmcode und lehnt sich an das Design von Eclipse an. Das Ergebnis sieht man dann in folgendem Screenshot:

Programmlisting in Latex und Lyx mit Eclipse-Style

Der oben gezeigte Code muss in den Latex-Vorspann eingefügt werden. Bei Lyx geht das einfach über Dokument –> Einstellungen –> Latex Vorspann. Die Latex-Geeks wissen das sicher auch bei Latex ;).

Ein Programmlisting kann entweder über Einfügen –> Programmlisting eingefügt werden, oder über Einfügen –> Datei –> Unterdokument. Die zweite Methode ist deutlich angenehmer, weil hier die Formatierung (Einrückungen, Leerzeichen etc) der eingefügten Dateien übernommen wird.

Zum Ändern der Farben empfehle ich auch noch diese Seite: http://www.farb-tabelle.de/de/rgb2hex.htm Damit kann man schnell und einfach Farben in den RGB-Raum übersetzten.

Beim Einfügen des Programmlistings per externe Datei, beachtet bitte auch die zwei Felder für den Untertitel (Legende) des Listings und die Marke um sich im Text darauf beziehen zu können:

Programmlisting in Lyx mit Marke und Legende

Ich hoffe ich konnte dem einen oder anderen weiterhelfen. Fragen, Anregungen und Kommentare sind herzlich willkommen :).