Sie sind hier

Verwendung von \footref in einer Tabelle

Hallo!
Ich schreibe gerade an meiner Studienarbeit und verwende MikTex 2.8 mit TexnicCenter 1.0RC1 und scrbook 3.05.
Mein Problem: ich würde gerne in einer Tabelle mehrere Fußnoten auf den gleichen Fußnotentext verweisen lassen. Mit \footref funktioniert das im Text sehr gut, jedoch nicht in einer Tabelle (siehe 1. Tabelle im Beispiel).

Latex Warning: Reference 'fn:foo' on page 1 undefined on input line 57

Mit meinen leider immer noch beschränkten Latex-Interna-Wissen und ein bisschen google habe ich mit manueller Zähler-Manipulation und leider ohne den Einsatz von \footref es hinbekommen, dass die Fußnote korrekt angezeigt wird (siehe 2. Tabelle im Beispiel). Jedoch bekomme ich noch immer warnings von pdftex:

pdfTeX warnig (dest): name{Hfootnote.2} has been referencedbut does not exist, replaced by a fixed one

Hier ein Beispiel, in dem beide Versuche integriert sind:

\documentclass[
   fontsize=12pt,	%Schriftgroesse 12pt
   paper=a4,		%Layout fuer Din A4
   ngerman, 		%deutsche Sprache, global
   twoside=false,
   headinclude,		%Kopfzeile wird bei Seiten-Layout mit beruecksichtigt
   headsepline,		%horizontale Linie unter Kolumnentitel
   BCOR10mm,		%Korrektur fuer die Bindung
   DIV=13,		%DIV-Wert fuer die Erstellung des Satzspiegels, siehe scrguide
%   halfparskip,	%Absatzabstand statt Absatzeinzug
   open=any, 		%Kapitel können auf geraden und ungeraden Seiten beginnen
   numbers=enddot,	%Kapitelnummern mit Punkt
   draft=true		%overfull hboxes werden angezeigt
     ]{scrbook}
\usepackage{setspace} 	%1,5-facher Zeilenabstand
\onehalfspacing
\KOMAoptions{DIV=last}
 
\typearea[current]{current}     % Neuberechnung des Satzspiegels mit alten Werten nach Änderung von Zeilenabstand,etc
 
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ansinew]{inputenc}  % Input-Encodung: ansinew fuer Windows
 
\usepackage{float}
\usepackage{booktabs} 	%Korrekte Tabellen setzen
 
\usepackage[pdftex, draft=false, debug=false, plainpages=false,	pdfpagelabels]{hyperref} 
 
\hypersetup{
  pdftitle		={Titel},
  pdfauthor		={Author},
  pdfsubject		={Studienarbeit},
  pdfcreator 		= {\LaTeX\ with package \flqq hyperref\frqq},
  bookmarksnumbered	=true,  	% Kapitelnummer in Bookmarks schreiben
  bookmarksopen		=true,     	% Bookmark Baum nicht aufklappen
  pdfpagemode		=UseOutlines, 	% FullScreen %, % PDF-Viewer startet ohne Inhaltsverzeichnis et.al.
  pdfstartview		=Fit,       	% PDF-Viewer benutzt beim Start bestimmteSeitenbreite
  hypertexnames		=true,
  pdfpagelayout		=SinglePage
  %hyperfootnotes	=false
	}
 
 
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt\footnote{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.\label{fn:lorem}}. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim\footref{fn:lorem}. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet\footnote{Noch eine Fußnote.}. 
 
\begin{table}[H]
\centering 
\begin{tabular}{l l l} \toprule
\textbf{Baustein}	& \textbf{Spannung}	& \textbf{max. bzw. geschätzter Strom} \\ 
\cmidrule(lr){1-1}	\cmidrule(lr){2-2} \cmidrule(lr){3-3} 
FPGA		& +1,2V	& 400mA \footnote{Konservative bzw. worst-case Schätzung\label{fn:foo}}\\
		& A+2,5V & 100mA \footref{fn:foo}\\
		& +3,3V & 700mA \footref{fn:foo}\\
DVI		& +3,3V	& 250mA  \\
ConfDev 	& +3,3V	& 20mA   \\ \bottomrule
\end{tabular}
\caption{Übersicht über...}
\label{tab:verbrauch}
\end{table}
 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.
 
\begin{table}[H]
\centering 
\begin{tabular}{l l l} \toprule
\textbf{Baustein}	& \textbf{Spannung}	& \textbf{max. bzw. geschätzter Strom} \\ 
\cmidrule(lr){1-1}	\cmidrule(lr){2-2} \cmidrule(lr){3-3} 
FPGA		& +1,2V	& 400mA \footnotemark \addtocounter{footnote}{-1}\\
		& A+2,5V	& 100mA \footnotemark \addtocounter{footnote}{-1}\\
		& +3,3V & 700mA \footnotemark \\
DVI		& +3,3V	& 250mA  \\
ConfDev 	& +3,3V	& 20mA   \\ \bottomrule
\end{tabular}
\caption{Übersicht über...}
\label{tab:verbrauch1}
\end{table}
 
\footnotetext{Konservative Schätzung}
\end{document}

Hat jemand eine Idee zur Lösung dieses Problem? Grundsätzlich passiert in der 2. Tabelle das, was ich möchte; das ist gut. Jedoch bin ich kein großer Freund davon Zähler manuell zu beeinflussen, sodass ich der Meinung bin, solche Dinge darf/sollte Latex bzw. scrbook für mich erledigen. Erst recht die Ausgabe von warnings macht mich skeptisch. Ich stecke einfach nicht tief genug in der Materie, um nicht in der Fehlersuche zu versinken ; )

Zudem: Wie dem geübten Leser bestimmt schnell auffallen wird, bin ich mir unsicher bei der Definition meines Seitenformates, insbesondere des Satzspiegels (deshalb ist das Beispiel nicht exakt minimal). Da mache ich bestimmt etwas falsch. Ich würde am liebsten alles scrbook überlassen. Jedoch werden die Seitenränder zu groß, wenn ich DIV=calc berechnen lasse. Auf der anderen Seite scheint es mir in Bezug auf eine korrekte Satzspiegelberechnung nicht korrekt z.B. geometry feste Seitenränder vorzugeben? Ich muss zugeben, was das angeht, bin ich ein wenig verwirrt. Wie kann ich denn scrbook mit korrekter Satzspiegelberechnung verwenden und gleichzeitig Formatvorgaben seitens der Uni beachten (die da wären, Schriftgröße 12, Durchschuss anderthalb und vor allem Seitenränder zwischen 2 und 3cm)? Ich habe noch nicht verstanden, was dafür die korrekte Vorgehensweise ist (typearea? areaset? geometry?).

Ich hoffe ich habe bei meiner Recherche keine offensichtlichen Lösungen übersehen.

Vielen Dank im Voraus!
Gruß, Marc.

Hallo Marc,

schau Dir das Paket threeparttable an. Damit werden die Fußnoten direkt unter die Tabelle gesetzt, statt in den Fuß der Seite und es vereinfacht das setzen der Fußnoten.

Grüße,
Gottlob

Bild von Markus Kohm

In Ergänzung zu dem korrekten Kommentar von Gottlob, den Du bereits erhalten hast, sei darauf hingewiesen, dass Fußnoten innerhalb von Gleitumgebungen so, wie Du das machst, nicht funktionieren.

Danke für eure schnellen Antworten!

Also verstehe ich es richtig, dass man \footref generell nicht in einer Gleitumgebung verwenden kann?

Die beiden Tipps aus Dante FAQ habe ich lang und breit ausgetestet (ich glaube ich habe letzten Endes mehr als 6 verschiedene Varianten probiert (weil ich noch nicht genau weiß, was da im Detail mit den Zählern passiert)): Fußnoten erscheinen zwar richtig in der Ausgabe, allerdings habe ich keinen Weg gefunden, bei dem keine der oben schon geschilderten Fehlermeldungen von pdftex aufkommen. Mit einer einzigen Fußnote funktioniert es korrekt, wird auf den Fußnotentext allerdings mehrmals verwiesen, werden Warnungen produziert.

Threeparttable funktioniert (danke!), letzten Endes ist es allerdings nicht das, was ich wollte. Um nicht noch unnötig Energie reinzustecken (ich kann das nämlich nicht beurteilen) direkt gefragt: Kann man definitiv nicht ohne etwas durcheinander zu bringen (die Warnungen) mehrfach in einer Gleitumgebung auf einen Fußnotentext verweisen oder ist es einfach mit viel Aufwand verbunden?

War die Frage nach der Satzspiegelberechnung zu falsch gestellt oder zu banal, dass es noch keiner Erwähnung würdig war? (Vlt. suche ich einfach mit den falschen Begriffen)

Danke nochmal : )

Bild von Markus Kohm

Wenn die \footref-Umdefinierung von hyperref nicht funktioniert, ist das ein hyperref-Problem. Du solltest das dann zusammen mit einem vollständigen Minimalbeispiel an den hyperref-Autor melden. Nur wenn Bugs gemeldet werden, können diese auch beseitigt werden.

Die andere Frage ist, warum Du überhaupt eine Gleitumgebung verwendest, wenn Du nicht willst, dass die Tabelle gleitet. Wenn Du das nämlich nicht machst, dann geht es ganz einfach:

\noindent\begin{minipage}{\textwidth}
\centering 
\begin{tabular}{l l l} \toprule
\textbf{Baustein}	& \textbf{Spannung}	& \textbf{max. bzw. geschätzter Strom} \\ 
\cmidrule(lr){1-1}	\cmidrule(lr){2-2} \cmidrule(lr){3-3} 
FPGA		& +1,2V	& 400mA \footref{fn:foo}\\
		& A+2,5V & 100mA \footref{fn:foo}\\
		& +3,3V & 700mA \footref{fn:foo}\\
DVI		& +3,3V	& 250mA  \\
ConfDev 	& +3,3V	& 20mA   \\ \bottomrule
\end{tabular}
\captionof{table}{Übersicht über...}
\label{tab:verbrauch}
\end{minipage}%
\stepcounter{footnote}\footnotetext{Konservative bzw. worst-case Schätzung\label{fn:foo}}

Dabei hast Du den vermeintlichen Vorteil, dass die Fußnoten wieder am Ende der Seite stehen. Das dürfte etwas sein, was die meisten Leute in dem Fall, dass sie die Tabellen nicht gleiten lassen wollen, erhoffen.

Mit dem Erhöhen des Fußnotenzählers zu Fuß spart man sich bei mehreren Fußnoten gegenüber der Methode mit \footnotemark das Zurückstellen.

Deine Satzspiegelfrage wurde vielleicht deshalb noch nicht beantwortet, weil sie durch das Vermischen mit einer anderen Frage schlicht untergegangen ist. Deshalb soll man es vermeiden mehrere unabhängige Fragen mit einander zu vermischen.

Ich weiß allerdings auch nicht recht, was ich darauf antworten soll, außer dass Du Deine Gedanken ordnen solltest. Wenn Dir feste Ränder vorgeschrieben sind, bleibt Dir nichts anderes übrig als feste Ränder einzustellen. Wenn Dir keine feste Ränder vorgeschrieben sind, kannst Du typearea ein nach Schema optimales Ergebnis ermitteln lassen. Wenn Dir dieses Ergebnis nicht gefällt, kannst Du durch Wahl eines eigenen DIV-Wertes ein angepasstes Ergebnis erzielen. Da das drei selbstverständliche Antworten sind, sind es vermutlich nicht die Antworten, die Du Dir erhofft hast. Aber mir ist nicht klar, was Du erwartest.

Vielen Dank!
Ich habe mit deinem Beispiel viel Experimentiert. Mit diesem Minimalbeispiel

\documentclass{scrbook}
%\usepackage[hyperfootnotes=false]{hyperref} 
\usepackage{hyperref} 
\begin{document}
Lorem ipsum dolor sit amet.
 
\noindent
\begin{minipage}{\textwidth}
	\centering 
	\begin{tabular}{l l l} 
\textbf{A}	& \textbf{B}	& \textbf{C} \\ 
1	& 2	& 3 \footref{fn:foo}\\
4	& 5 & 6 \footref{fn:foo}\\
7	& 8	& 9 \\
	\end{tabular}
	\captionof{table}{caption}
	\label{tab:1}
\end{minipage}
\stepcounter{footnote}
\footnotetext{Fussnote\label{fn:foo}}
 
\end{document}

bin ich zu dem Schluss gekommen, dass es sich um ein Problem mit hyperref handeln muss, da die Warnung nicht mehr auftaucht, wenn man hyperfootnotes ausschaltet. Dies habe ich dem Autor gemeldet.
Ja, Gleitumgebung! Wie dumm von mir. Damit hast du natürlich so recht. Genau vor solchen Schnitzern graut es mir, wenn ich mich an Experten wenden möchte...

Noch während ich diesen Kommentar geschrieben habe, hat mir der Autor von hyperref geantwortet(!):
das von mir verwendete hyperref 2010/02/08 v6.80e ist schon zu alt, in einem neueren, wurde an den Fußnoten gearbeitet. In der von mir nun verwendeten Version 2010/03/13 v6.80o produziert obiges Minimalbeispiel immernoch eine Warnung (emtpy link). Vom Autor empfohlen ist eine phantomsection vor dem label einfügen: \footnotetext{\phantomsection Fussnote\label{fn:foo}}. Die Warnung könne irgnoriert werden. Nagut. Anscheinend wird an dieser Stelle noch ein bisschen gebaut.
Aber ich bin dann soweit erstmal zufrieden und bedanke mich bei allen beteiligten für ihre Hilfe!

Comments for "Verwendung von \footref in einer Tabelle" abonnieren