Ich erstelle ein benutzerdefiniertes Dokument ohne Kapitel, Abschnitte usw. Ich möchte aber auch ein Inhaltsverzeichnis in meinem Dokument mit Einträgen, die ich definiere. Bisher habe ich verwendet
\phantomsection
\addcontentsline{toc}{section}{My entry}
und dies erstellt einen Eintrag in meinem Inhaltsverzeichnis ( \tableofcontents
). Aber wenn ich auf einen dieser Einträge klicke, springe ich genau zu der Stelle im Dokument, an der dieser Phantomabschnitt definiert wurde. Stattdessen möchte ich Sprünge, die mich an den Anfang dieser Seite bringen. Idealerweise sollte die Seite angesprungen und an den Bildschirm angepasst werden (normalerweise herauszoomen), wenn ich auf den Eintrag klicke.
Wie kann ich Einträge zum Inhaltsverzeichnis hinzufügen, diespringt zum SeitenanfangIch möchte einen Eintrag für?
Antwort1
Dadurch gelangen Sie zum Seitenanker.
\documentclass{article}
\usepackage{hyperref}
\makeatletter
\newcommand{\phantompageref}{\def\@currentHref{page.\@the@H@page}}
\makeatother
\begin{document}
\tableofcontents
\newpage
\rule{1pt}{.4\textheight}
\phantompageref
\addcontentsline{toc}{section}{My entry}
\rule{2pt}{.4\textheight}
\end{document}
Dieser Link führt ganz nach oben auf die Seite.
\documentclass{article}
\usepackage{everypage}
\usepackage{hyperref}
\AddEverypageHook{\raisebox{1in}[0pt][0pt]{\hypertarget{pagetop.\thepage}{}}}
\makeatletter
\newcommand{\phantompageref}{\def\@currentHref{pagetop.\thepage}}
\makeatother
\begin{document}
\tableofcontents
\newpage
\rule{1pt}{.4\textheight}
\phantompageref
\addcontentsline{toc}{section}{My entry}
\rule{2pt}{.4\textheight}
\end{document}