PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : geteilter Listing counter funktioniert nicht



Iluvatar
21-02-2010, 13:10
Für einen kleinen Vortrag (ich soll anderen eine kleine LaTeX Einführung geben :rolleyes: ) arbeite ich mit Code-Listings. Dazu sollen diese Listings aus einer externen Datei eingebunden werden. Eine entsprechende Auswahl erfolgt dann über linerange. Nun sollen diese Listings, die allesamt aus der selben Datei stammen eine gemeinsame fortlaufende Zeilennummerierung besitzen. Doch gerade hierbei hapert es.
Verwende ich die lstlisting Umgebung funktioniert es einwandfrei, mit lstinputlisting jedoch nicht.
Hierzu ein entsprechendes Minimalbeispiel:


\documentclass[9pt,a4paper]{beamer}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{
graphicx,
listings,
}

\usetheme{Warsaw}
\usecolortheme{dolphin}
\beamertemplatenavigationsymbolsempty
\let\raggedright\relax

\lstloadlanguages{[LaTeX]TeX}

\lstset{
language=[LaTeX]TeX,
numbers=left,
frame=single,
numberstyle=\tiny,
captionpos=b,
breakautoindent=true,
firstnumber=auto,
}

\begin{document}
\begin{frame}[fragile]
\lstinputlisting[caption=blah1, linerange={3-5}, name=test]{beispiel.tex}
blubb
\lstinputlisting[caption=blah2, linerange={8-10}, name=test]{beispiel.tex}
\end{frame}
\end{document}

Für die beispiel.tex mag man jetzt ein beliebiges Dokument nehmen.

P.S.: -gemeinsamer Listing counter funktioniert nicht- wäre vermutlich ein besserer Titel gewesen. Zu spät gesehen.

Iluvatar
21-02-2010, 17:18
So, ich habe selbst ein Lösung gefunden und möchte sie nicht vorenthalten:

Auf http://www.atscire.de/index.php?nav=products/listings2 gibt es das Beta Package von listings2 zum Runterladen. Das entsprechend eingefügt und als verwendetes Paket listings2 benutzt.

Als Konsequenz wird der Befehl
\lstloadlanguages{[LaTeX]TeX} überflüssig und muss entfernt werden.
Nun wird aus der Datei direkt die Zeilennummer ausgelesen und angegeben.
Bei einem linerange von 3-5 fängt es also auch bei 3 an und hört bei 5 auf, anstatt von 1 bis 3 zu gehen.