Hallo zusammen!
habe folgendes Problem, vielleicht fällt Euch dazu etwas ein:
Ein Programm gibt eine ASCII-Datei über 2 Seiten aus, dies möchte ich als Tabelle in einen LaTeX-Code einfügen. Das sieht aktuell ungefähr so aus:
\begin{table}[htbp]
\captionabove{Blubb}
\begin{lstlisting}[...]
Bla bla, füllt 1 Seite
(Fortsetzung folgt)
\end{lstlisting}
\end{table}
\addtocounter{table}{-1}
\begin{table}[htbp]
\captionabove{Blubb (Fortsetzung)}
\begin{lstlisting}[...]
Bla bla, füllt die 2. Seite
\end{lstlisting}
\end{table}
Funktioniert erstmal genau so wie es soll, die beiden Teile der Tabelle haben die gleiche Nummer, das ist ja auch beabsichtigt, weil es noch die gleiche Tabelle ist.
Sobald ich aber das Paket hyperref verwende, bekomme ich die Meldung
destination with the same identifier (
name{table.3.2}) has been already used, duplicate ignored
Das Problem ist offensichtlich der addtocounter, löscht man den, gehts. Wie würdet Ihr das lösen? Vielen Dank!!
Gruß, hajoe
Ich würde nur einmal einen Eintrag ins Verzeichnis vornehmen lassen und auch keine table-Umgebung verwenden. Wenn Du ohnehin das listing in zwei Portionen aufteilst, dann geht das eventuell mit einer longtable-Umgebung mit Hilfe des gleichnamigen Pakets. Um das zu testen fehlt mir aber ein vollständiges Minimalbeispiel (http://www.mrunix.de/forums/showthread.php?t=66921), siehe alternativ auch diese mit Anleitung zur Erstellung nicht nur für Anfänger (http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses)
cgnieder
22-07-2013, 12:07
Ich habe auf TeX.sx einmal eine Kombination von listings und mdframed gepostet (http://tex.stackexchange.com/a/95988/5049), bei der einem Listing beim Seitenumbruch der Text „Listing continues on next page“ angehängt wurde, wenn das Listing sich über zwei Seiten ersteckte. Bei der Lösung könnte man einfach die caption Option von listings verwenden:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[framemethod=tikz]{mdframed}
% define the frame style for the listing:
\mdfdefinestyle{note}
{
hidealllines = true ,
skipabove = .5\baselineskip ,
skipbelow = .5\baselineskip ,
singleextra = {} ,
firstextra = {
\node[below right,overlay,align=left,font=\continuingfont]
at (O) {\continuingtext};
} ,
secondextra = {
\node[above right,overlay,align=left,font=\continuingfont]
at (O |- P) {\continuedtext};
} ,
middleextra = {
\node[below right,overlay,align=left,font=\continuingfont]
at (O) {\continuingtext};
\node[above right,overlay,align=left,font=\continuingfont]
at (O |- P) {\continuedtext};
}
}
% customize the appearance of the continuing notes:
\newcommand*\continuingfont{\footnotesize\itshape}
\newcommand*\continuingtext{Listing continues on next page}
\newcommand*\continuedtext{Continuing from last page}
\usepackage{listings}
% define the listings style:
\lstdefinestyle{code}{
language = [LaTeX]TeX,
basicstyle = \small\ttfamily ,
numbers = left,
numberstyle = \tiny,
numberblanklines = true,
breaklines = true,
keepspaces = true,
columns = fullflexible,
% whatever else you want ...
}
% define the environment:
\lstnewenvironment{listing}[1][]
{%
\lstset{style=code,#1}%
\mdframed[style=note]%
}
{%
\endmdframed
}
\usepackage{lipsum}% dummy text
\usepackage{hyperref}
\begin{document}
\lstlistoflistings
\section{Test}
\lipsum[1-2]
\begin{listing}[caption=A Listings Caption]
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{note}
{
hidealllines = true ,
skipabove = .5\baselineskip ,
skipbelow = .5\baselineskip ,
singleextra = {} ,
firstextra = {
\node[below right,overlay,align=left,font=\continuingfont]
at (O) {\continuingtext};
} ,
secondextra = {
\node[above right,overlay,align=left,font=\continuingfont]
at (O |- P) {\continuedtext};
} ,
middleextra = {
\node[below right,overlay,align=left,font=\continuingfont]
at (O) {\continuingtext};
\node[above right,overlay,align=left,font=\continuingfont]
at (O |- P) {\continuedtext};
}
}
\newcommand*\continuingfont{\footnotesize\itshape}
\newcommand*\continuingtext{Listing continues on next page}
\newcommand*\continuedtext{Continuing from last page}
\usepackage{listings}
\lstdefinestyle{code}{
language = [LaTeX]TeX,
basicstyle = \small\ttfamily ,
numbers = left,
numberstyle = \tiny,
numberblanklines = true,
breaklines = true,
keepspaces = true,
columns = fullflexible,
% whatever else you want ...
}
\lstnewenvironment{listing}[1][]
{%
\lstset{style=code,#1}%
\mdframed[style=note]%
}
{%
\endmdframed
}
\end{listing}
\lipsum[2]
\end{document}
Grüße
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.