在下面的示例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。