让 \phantomsection 带我到章节链接通常所在的位置

让 \phantomsection 带我到章节链接通常所在的位置

我有这样的代码:

\documentclass{report}

\usepackage{hyperref}

\newcommand{\specnodala}[1]{\newpage\phantomsection\addcontentsline{toc}{chapter}{#1}\section*{#1}}

\begin{document}
\tableofcontents

\specnodala{Izmantotie}
\specnodala{Ievads}

\end{document}

链接(来自书签或目录)将我引导至标题,但我希望它能像章节一样将我引导至更高一点的位置。我尝试在之前添加\clearpage或。它使链接到第二章变得更好,但对第一章没有任何改变。\cleardoublepage\phantomsection

答案1

除非你使用的是旧版本的hyperref,否则通常只需\addcontentsline在加星标的后面放置\sectionhyperref然后使用前一个的锚点\section作为目录和书签:

\documentclass{report}

\usepackage{hyperref}
\usepackage{bookmark}% bookmarks get faster updated

\newcommand{\specnodala}[1]{%
  \newpage % or \clearpage, if previous float objects should not float into the next section
  \section*{#1}%
  \addcontentsline{toc}{chapter}{#1}%
}

\begin{document}
\tableofcontents

\specnodala{Izmantotie}
\specnodala{Ievads}

\end{document}

使用 进行编译后,两者的目标名称为\specnodalasection*.2section*.3其位置如下(x× ) :ypdflatex

section*.2: 133.768 × 675.168
section*.3: 133.768 × 675.168

因此位置相同确切地

答案2

修改你的\specnodala垂直跳转到你想要的位置设置\phantomsection,然后跳转回去。以下是示例:

\documentclass{report}
\usepackage{hyperref}% http://ctan.org/pkg/hyperref
\newcommand{\specnodala}[1]{%
  \clearpage%
  \vspace*{-1in}\phantomsection\vspace*{1in}% Hyperlink reference is set 1in above heading
  \addcontentsline{toc}{chapter}{#1}\section*{#1}}
\begin{document}
\tableofcontents

\specnodala{Izmantotie}
\specnodala{Ievads}

\end{document}

相关内容