![索引超链接错误跳转到物理页面,而不是编号页面](https://linux22.com/image/414886/%E7%B4%A2%E5%BC%95%E8%B6%85%E9%93%BE%E6%8E%A5%E9%94%99%E8%AF%AF%E8%B7%B3%E8%BD%AC%E5%88%B0%E7%89%A9%E7%90%86%E9%A1%B5%E9%9D%A2%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E7%BC%96%E5%8F%B7%E9%A1%B5%E9%9D%A2.png)
在下面的示例memoir
文档中,第 3 页(即整个文档的物理第 5 页)\index(two}
上的条目mainmatter
在索引中显示为
二,三
但是,“two”的索引超链接错误地跳转到物理页面 3(即目录页),而不是预期的编号为 3 的主要内容页面。
我尝试了包括hyperref
默认选项plainpages=false
和将其更改为两种方法plainpages=true
,但错误行为没有任何改变。
如何纠正这个问题?
%% file indexing-lin-err.tex
%
\begin{filecontents}{indexing-link-err.ist}
% MakeIndex style file
item_0 "\n\\item {"
delim_0 "}, "
item_x1 "} \n \\subitem "
headings_flag 1
\end{filecontents}
\documentclass{memoir}
\usepackage{hyperref}
\hypersetup{
hypertexnames=false,
plainpages=false, % no link change if use plainpages=false
pdfpagelabels,
bookmarksnumbered,
linktocpage=true,linktoc=all,
}
\usepackage{kantlipsum}
\makeindex
\begin{document}
\frontmatter
\pagestyle{empty}
{\centering\Huge THE TITLE}\clearpage
{\LARGE Copyright notice}\clearpage
\pagestyle{headings}
\tableofcontents\cleardoublepage
\chapter{Preface}
\kant[1-8]\clearpage
\mainmatter
\chapter{The chapter}
\section{A section}
\kant[1]\index{one}
\kant[2-8]\index{two}
\clearpage
\backmatter
\printindex
\end{document}
笔记:
- 由于
\pagestyle{empty}
,标题页和版权页上没有任何页码。然后roman
以 开头的数字iii
出现在目录页上,并延续到前言中。正如预期的那样,arabic
以 开头的数字1
出现在mainmatter
页面上。 - 包含该
hyperref
选项的hypertexnames=false
原因是,在我的实际书长文档中,有一个“第 0 章”,并且如果没有该选项,则定理、章节等的超链接会逐一偏离。 - 文档中描述了一种可能的修复方法
memoir
是使用\begin{titlingpage}...\end{titlingpage}
位于序言之前的标题等页面。然而,这会导致不想要的结果:这两页将根本不被计算在内,因此序言将显示页码 i,而不是所需的页码 iii。