![让 \phantomsection 带我到章节链接通常所在的位置](https://linux22.com/image/269062/%E8%AE%A9%20%5Cphantomsection%20%E5%B8%A6%E6%88%91%E5%88%B0%E7%AB%A0%E8%8A%82%E9%93%BE%E6%8E%A5%E9%80%9A%E5%B8%B8%E6%89%80%E5%9C%A8%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我有这样的代码:
\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
在加星标的后面放置\section
。hyperref
然后使用前一个的锚点\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}
使用 进行编译后,两者的目标名称为\specnodala
和section*.2
,section*.3
其位置如下(x
× ) :y
pdflatex
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}