Präsentationen für Feinschmecker

Anwendungsbeispiele zu LaTeX und PDF

01.08.2006
Die vergangenen Folgen des LaTeX-Workshops im LinuxUser haben viele Möglichkeiten des Satzsystems vorgestellt. Die letzte Ausgabe geht auf einige spezielle Pakete genauer ein, die PDF-Dateien mit weiteren Finessen versehen.

Präsentationen baut man mit dem entsprechenden Office-Programm, die Handouts dazu erzeugt man in der Textverarbeitung, und um an PDF-Dateien zu feilen, braucht man das Windows-Programm von Acrobat? Nicht wirklich: Mit LaTeX hat freie Software mal wieder die Nase vorn, ansprechende Ergebnisse und Spezialfunktionen sind nur eine Frage der richtigen Kommandos.

Dokumentation von Quelltexten

Wer Konfigurationsdateien, Shell-Scripts oder anderen Programmcode in einem LaTeX-Dokument erläutern möchte, greift zum Paket Listings [1]. Damit bettet man Quelltexte oder Fragmente aus Code-Dateien in den Text ein. Die Schlüsselwörter der verwendeten Programmiersprache, Kommentare und andere wichtige Teile erscheinen dabei bei Bedarf farbig oder in einem festgelegten Schriftschnitt.

Das Paket binden Sie mit \usepackage{listings} in Ihre LaTeX-Datei ein. Syntaxdefinitionen für einige Dutzend Programmiersprachen – darunter C++, SQL und Bash – gehören zum Lieferumfang. Optional laden Sie die gewünschten Sprachen direkt nach dem Einbinden des Pakets mit \lstloadlanguages{}. Hervorhebungsregeln für noch nicht unterstützte Programmiersprachen lassen sich zusätzlich festlegen.

Listing 1 zeigt einen einfachen Anwendungsfall für das Listings-Pakets. Es beginnt mit der Definition der Grundeinstellungen über den Befehl \lstset{} in der Form Schlüssel=Wert. Das Beispiel setzt zuerst die Sprache auf C und unterdrückt die Darstellung eines speziellen Symbols für Leerzeichen. Dann stellt es eine Nichtproportionalschrift als Standard ein. Für Schlüsselworte, Kommentare und Zeichenketten kommen die Farben Rot, Blau respektive Grün zum Einsatz.

Listing 1

\listfiles
\documentclass[]{article}
\usepackage{listings}
\usepackage{xcolor}
\lstloadlanguages{C}
\lstset{%
language=C,
showstringspaces=false,
basicstyle=\ttfamily\small,
keywordstyle=\color{red},
commentstyle=\color{blue},
stringstyle=\color{green}
}%
\begin{document}
\lstinputlisting[caption={Mein Listing}]{fragment.c}
\end{document}

Alternativ versehen Sie Quelltexte mit beliebigen anderen Formatierungen, wie beispielsweise einem Rahmen und einer Hintergrundfarbe. Dazu verwenden Sie die Optionen backgroundcolor und frame. Auch Quellcode aus verschiedenen Programmiersprachen lässt sich darstellen. Dazu vereinbaren Sie mit Hilfe des Befehls \lstdefinestyle{Name}{Vereinbarungen} mehrere Stile und geben später das gewünschten Hervorhebungsmodell als Option des betreffenden Listings an.

Eine Quelltextdatei binden Sie nun mit dem Befehl \lstinputlisting[Optionen]{Dateiname} ein. Optional stellen Sie dabei mit firstline=m die erste und mit lastline=n die letzte einzulesende Zeile ein.

Möchten Sie Quelltext direkt im LaTeX-Dokument eingeben, statt ihn aus einer Datei einzulesen, so beginnen Sie eine passende Umgebung mit \begin{listlisting}. Sie versteht dieselben Optionen wie abgesetzte Listings.

Ein Verzeichnis aller im Dokument aufgeführten Listings erzeugt der Befehl \lstlistoflistings.

Neue Sprachen

Sollen einzelne Schlüsselworte der Programmiersprache, Funktionen oder Klassennamen im Fließtext stehen, verwenden Sie den Befehl \lstinline{Quelltextfragment}. Dieses Kommando kann unterschiedliche Begrenzer verwenden. Normalerweise kommen gemäß der LaTeX-Gepflogenheiten geschweifte Klammern zum Einsatz. Verwenden Sie solche Klammern jedoch im dargestellten Quellcode, kann auch ein anderes Zeichen wie etwa die Pipe ("|") als Begrenzer dienen.

Syntax-Highlighting lässt sich nicht nur bei Programmiersprachen anwenden, sondern auch bei beliebig anders markierten Texten, die das Listings-Paket noch nicht kennt. Listing 2 zeigt am Beispiel einiger CSS-Eigenschaften, wie Sie neue Sprachdefinition vereinbaren. \lstdefinelanguage führt die CSS-Tags auf, Kommentare stehen zwischen /* und */. Das Minuszeichen wird explizit als Buchstabe deklariert: Es kommt in einigen CSS-Kommandos vor, und LaTeX würde diese sonst als voneinander getrennte Wörter interpretieren.

Listing 2

\lstdefinelanguage{CSS}{%
{keywords={background,
 border,text-align}%…
},
sensitive=false,
alsoletter=-,
morecomment=[s]{/*}{*/}
}%
\lstset{language=CSS,
showstringspaces=false,
basicstyle=\ttfamily\small,
keywordstyle=\color{red},
commentstyle=\color{blue}
}

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...