Code-Beispiel-Environment für Latex

Da ich heute eine Weile um die Lösung kämpfen musste, möchte ich sie hier mal vorstellen: Mein eigenes Environment für Code-Schnipsel „codeex“ (Code-Example) in Latex-Dokumenten.

\renewcommand*\lstlistingname{Code-Beispiel}
\lstnewenvironment{codeex}[2]
  {\lstset{caption=#2,label=#1}}
  {}

Wichtig ist es hier, \lstnewenvironment statt \newenvironment zu nutzen.

Die erste Zeile definiert einen Counter, der bei jedem Chapter wieder auf 0 gesetzt wird. Dem Environment übergibt man ein Label und eine Überschrift. Vor den Code wird dann eine Zeile der Form [Kapitelnummer].[Beispielnummer im Kapitel] [Überschrift] gesetzt.

Änderung vom 07.03.2012: Die aktualisierte Variante nutzt die normale Nummerierung von Listings, die ebenfalls dem Schema Kapitel.Listing folgt. Ist dies nicht der Fall, so muss ist die Option numberbychapter auf true gesetzt werden.

Die Lösung basiert auf dem Paket Listings, das man noch so konfigurieren muss, wie man es braucht.

Anwendung

\begin{codeex}{twitter01}{Twitter-Anmeldung}
  // code here...
\end{codeex}%$

Diesen kann man dann auch referenzieren (hier mittels vref):

Das Beispiel \vref{twitter01}\ verdeutlicht...

Das Ergebnis

So kann das ganze dann aussehen:

Das Beispiel zeigt eine falsche Referenz-Nummerierung, die in der aktuellen Version nicht mehr vorkommt.

3 Kommentare

  1. Ist dir da ein Fehler unterlaufen? Im Beispiel referenzierst du auf 2.2.1 und nicht auf 2.1 …

    Ansonsten: Cool!

  2. Du hast recht, vref nimmt als Label die aktuelle Sektion, in der sich das label befindet. Im Beispiel also 2.2.1. Hatte bei mir immer nur zufällig geklappt.

    Da muss man sich noch was überlegen, ggf. ein eigenes vref schreiben oder so. Liefere ich nach.

Kommentare sind geschlossen.