
Ich muss eine Layout-Anforderung erfüllen, wonach das Inhaltsverzeichnis ein Abbildungs- und ein Tabellenverzeichnis enthält (das ist OK), aber zusätzlich in den PDF-Lesezeichen jede Abbildung und Tabelle in dem Abschnitt angegeben werden muss, in dem sie erscheint. Nehmen Sie das folgende MWE:
\documentclass[12pt]{article}
\usepackage{todonotes}
\usepackage{graphicx}
\usepackage{float}
\restylefloat{table}
\restylefloat{figure}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[a4paper, margin=3cm, top=3cm, bottom=3cm]{geometry}
\usepackage[bookmarks=true]{hyperref}
\usepackage{bookmark}
\hypersetup{
linktocpage=true,
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=blue,
bookmarksopen=true
}
\bookmarksetup{numbered}
\title{\begin{center}
My Title
\end{center}
}
\date{}
\author{}
\begin{document}
\begin{titlepage}
\maketitle
\end{titlepage}
\setcounter{page}{2}
\newpage
\pdfbookmark[0]{Contents}{Contents}
\tableofcontents
\listoffigures
\listoftables
\newpage
\section{My first section}
Bla, bla bla.
\begin{figure}[H]
\caption{My first Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My first Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
\newpage
\section{My second section}
More bla, bla.
\begin{figure}[H]
\caption{My second Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My second Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\end{document}
Es wird dieses Inhaltsverzeichnis generiert, das genau das ist, was ich brauche:
Es werden aber auch diese PDF-Lesezeichen generiert:
Die PDF-Lesezeichen müssen aber so aussehen (entschuldigen Sie die Verwendung des Code-Stils):
Contents
|- 1 My first Section
|- My first figure
|- My first table
|- 2 My second Section
|- My second figure
|- My second table
Irgendwelche Ideen?
Antwort1
Der einfachste Weg, der mir einfällt, ist, sich einzuklinken \caption
und das Lesezeichen mit einer eindeutigen Lesezeichenbezeichnung (generiert durch die Gesamtzahl der Abbildungen oder Tabellen) hinzuzufügen.
Um die Gesamtzahlen zu erhalten, verwenden Sie (also mein ;-)) Paket xassocnt
und verknüpfen Sie die Schritte der entsprechenden Zähler damit.
Dadurch \pdfbookmark[2]{text}{label:name}
wird der Abbildungs- oder Tabelleneintrag als Unterabschnittsebene zum aktuellen Abschnitt hinzugefügt.
\texorpdfstring{tex content}{pdf content}
Seien Sie vorsichtig , für bestimmte Inhalte der Beschriftung zu verwenden , d. h.\caption{\texorpdfstring{$E=mc^2}{E=mc\textsuperscript{2}}}
\documentclass[12pt]{article}
\usepackage{todonotes}
\usepackage{graphicx}
\usepackage{xassoccnt}
\newcounter{totalfigure}
\newcounter{totaltable}
\DeclareAssociatedCounters{figure}{totalfigure}
\DeclareAssociatedCounters{table}{totaltable}
\usepackage{float}
\restylefloat{table}
\restylefloat{figure}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{caption}
\makeatletter
\AtBeginDocument{%
\let\caption@@caption\caption
\RenewDocumentCommand{\caption}{som}{%
\IfBooleanTF{#1}{%
\caption@@caption{#3}%
}{%
\IfValueTF{#2}{%
\caption@@caption[#2]{#3}%
\pdfbookmark[2]{#2}{\@captype:\number\value{total\@cap@type}}%
}{%
\phantomsection
\caption@@caption{#3}%
\pdfbookmark[2]{#3}{\@captype:\number\value{total\@captype}}%
}%
}%
}
}
\usepackage[a4paper, margin=3cm, top=3cm, bottom=3cm]{geometry}
\usepackage[bookmarks=true]{hyperref}
\usepackage{bookmark}
\hypersetup{
linktocpage=true,
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=blue,
bookmarksopen=true
}
%\captionsetup[figure]{format=bookmarksfig}
%\captionsetup[table]{format=bookmarkstab}
\bookmarksetup{numbered}
\title{\begin{center}
My Title
\end{center}
}
\date{}
\author{}
\begin{document}
\begin{titlepage}
\maketitle
\end{titlepage}
\setcounter{page}{2}
\newpage
\pdfbookmark[0]{Contents}{Contents}
\tableofcontents
\listoffigures
\listoftables
\newpage
\section{My first section}
Bla, bla bla.
\begin{figure}[H]
\caption{My first Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My first Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
\newpage
\section{My second section}
More bla, bla.
\begin{figure}[H]
\caption{My second Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My second Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\end{document}
Aktualisieren
Dieser greift jedoch nicht, xassoccnt
sondern führt lediglich eine Überprüfung durch \@captype
und erhöht \total...
anschließend den entsprechenden Zähler.
Es wird verwendet \currentpdfbookmark
, wodurch die Abschnittsebene berücksichtigt wird.
\documentclass[12pt]{article}
\usepackage{todonotes}
\usepackage{graphicx}
\newcounter{totalfigure}
\newcounter{totaltable}
%\usepackage{xassoccnt}
%\DeclareAssociatedCounters{figure}{totalfigure}
%\DeclareAssociatedCounters{table}{totaltable}
\usepackage{float}
\restylefloat{table}
\restylefloat{figure}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{xparse}
\makeatletter
\AtBeginDocument{%
\let\caption@@caption\caption
\RenewDocumentCommand{\caption}{som}{%
%checking which caption type is here and stepping the relevant total counter
\def\temp@@a{figure}
\def\temp@@b{table}
\ifx\@captype\temp@@a
\stepcounter{total\@captype}%
\fi
\ifx\@captype\temp@@b
\stepcounter{total\@captype}%
\fi
\IfBooleanTF{#1}{%
\caption@@caption{#3}%
}{%
\IfValueTF{#2}{%
\phantomsection
\caption@@caption[#2]{#3}%
\currentpdfbookmark{#2}{\@captype:\number\value{total\@cap@type}}%
}{%
\phantomsection
\caption@@caption{#3}%
\currentpdfbookmark{#3}{\@captype:\number\value{total\@captype}}%
}%
}%
}
}
\makeatother
\usepackage[a4paper, margin=3cm, top=3cm, bottom=3cm]{geometry}
\usepackage[bookmarks=true]{hyperref}
\usepackage{bookmark}
\hypersetup{
linktocpage=true,
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=blue,
bookmarksopen=true
}
\bookmarksetup{numbered}
\title{%
\begin{center}
My Title
\end{center}
}
\date{}
\author{}
\begin{document}
\begin{titlepage}
\maketitle
\end{titlepage}
\setcounter{page}{2}%
\newpage
\pdfbookmark[0]{Contents}{Contents}
\tableofcontents
\listoffigures
\listoftables
\newpage
\section{My first section}
Bla, bla bla.
\begin{figure}[H]
\caption{My first Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My first Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
\newpage
\section{My second section}
More bla, bla.
\begin{figure}[H]
\caption{My second Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My second Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsection{Foo subsection}
\begin{figure}[H]
\caption{My third Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My third Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsubsection{Foo subsubsection}
\begin{figure}[H]
\caption{My fourth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My fourth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\clearpage
\section{Yet another section}
\begin{figure}[H]
\caption{My sixth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My sixth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsection{Foo subsection}
\begin{figure}[H]
\caption{My seventh Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My seventh Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsubsection{Foo subsubsection}
\begin{figure}[H]
\caption{My eighth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My eighth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\end{document}
Nächstes Update: Mit Abbildung etc. Zahlen
\documentclass[12pt]{article}
\usepackage{todonotes}
\usepackage{graphicx}
\newcounter{totalfigure}
\newcounter{totaltable}
%\usepackage{xassoccnt}
%\DeclareAssociatedCounters{figure}{totalfigure}
%\DeclareAssociatedCounters{table}{totaltable}
\usepackage{float}
\restylefloat{table}
\restylefloat{figure}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{caption}
\usepackage{xparse}
\makeatletter
\AtBeginDocument{%
\let\caption@@caption\caption
\newcommand{\generatebookmark}[1]{%
\belowpdfbookmark{\csname \@captype name\endcsname\ \csname the\@captype\endcsname: #1}{\@captype:\number\value{total\@captype}}%
}
\RenewDocumentCommand{\caption}{som}{%
%checking which caption type is here and stepping the relevant total counter
\def\temp@@a{figure}
\def\temp@@b{table}
\ifx\@captype\temp@@a
\stepcounter{total\@captype}%
\fi
\ifx\@captype\temp@@b
\stepcounter{total\@captype}%
\fi
\IfBooleanTF{#1}{%
\caption@@caption{#3}%
}{%
\IfValueTF{#2}{%
\phantomsection
\caption@@caption[#2]{#3}%
\generatebookmark{#2}%
}{%
\phantomsection
\caption@@caption{#3}%
\generatebookmark{#3}%
}%
}%
}
}
\makeatother
\usepackage[a4paper, margin=3cm, top=3cm, bottom=3cm]{geometry}
\usepackage[bookmarks=true]{hyperref}
\usepackage{bookmark}
\hypersetup{
linktocpage=true,
colorlinks=true,
linkcolor=blue,
filecolor=blue,
urlcolor=blue,
bookmarksopen=true
}
\bookmarksetup{numbered}
\title{%
\begin{center}
My Title
\end{center}
}
\date{}
\author{}
\begin{document}
\begin{titlepage}
\maketitle
\end{titlepage}
\setcounter{page}{2}%
\newpage
\pdfbookmark[0]{Contents}{Contents}
\tableofcontents
\listoffigures
\listoftables
\newpage
\section{My first section}
Bla, bla bla.
\begin{figure}[H]
\caption{My first Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My first Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end{tabular}
\end{table}
\newpage
\section{My second section}
More bla, bla.
\begin{figure}[H]
\caption{My second Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My second Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsection{Foo subsection}
\begin{figure}[H]
\caption{My third Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My third Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsubsection{Foo subsubsection}
\begin{figure}[H]
\caption{My fourth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My fourth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\clearpage
\section{Yet another section}
\begin{figure}[H]
\caption{My sixth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My sixth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsection{Foo subsection}
\begin{figure}[H]
\caption{My seventh Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My seventh Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\subsubsection{Foo subsubsection}
\begin{figure}[H]
\caption{My eighth Figure}
\missingfigure[figwidth=6cm]{}
\end{figure}
\begin{table}[H]
\caption{My eighth Table}
\begin{tabular}{ |c|c|c| }
\hline
cell1 & cell2 & cell3 \\
cell4 & cell5 & cell6 \\
cell7 & cell8 & cell9 \\
\hline
\end {tabular}
\end{table}
\end{document}