我正在使用 makeidx 和 \makeindex、hyperref 和 documentclass amsbook。当我查看索引时,会列出正确的页码。但是,当我单击页码时,它会将我发送到错误的页面。例如,它会说“finite”在第 2 页,这是正确的。但是,当我单击“2”时,它会将我发送到从标题页开始的第二页,而不是从书的第一页开始的第二页。以下是我序言的相关部分
\usepackage[hypertexnames=false]{hyperref}
\hypersetup{colorlinks, linkcolor=blue}
\hypersetup{colorlinks, urlcolor=green}
\maketitle
\pagebreak
\setcounter{secnumdepth}{-1}
\setcounter{page}{1}
\pagenumbering{roman}
\tableofcontents
\pagebreak
\setcounter{secnumdepth}{2}
\pagenumbering{arabic}
\setcounter{page}{1}
\chapter{Chapter 1}
答案1
这是 的效果hypertexnames=false
,因为它使用了简化的锚点名称。例如,页码由\thepage
绝对纯页码替换。这样,\thepage
可以包含复杂的内容,这些内容会在锚点名称中中断,但\hyperpage
如果有不同的页码形式和范围,则不会按预期工作。
使用默认值(hypertexnames=true
和一些其他值)后,页面链接应该可以在索引中再次起作用。