You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多部分文档章节编号重置后,如何让hyperref超链接正确跳转?

问题原因

hyperref生成的章节锚点默认仅使用章节编号(如chapter.1),当你在每个\part后重置章节计数器时,不同部分的第1章会共用同一个锚点名称,导致点击目录超链接时,只会跳转到第一个使用该锚点的章节。

解决方案

重新定义hyperref用于生成锚点的\theHchapter命令,让锚点包含part编号,确保每个章节的锚点唯一:

\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}

% 修改锚点标识,结合part和chapter编号,避免重复
\renewcommand{\theHchapter}{\thepart.\thechapter}

\begin{document}

\tableofcontents

\part{THE BEGINNING}
\chapter{AAAA}
\lipsum[1-5]

\chapter{BBBB}
\lipsum[6-10]


\part{THE MIDDLE}
\setcounter{chapter}{0}
\chapter{CCCC}
\lipsum[11-15]

\chapter{DDDD}
\lipsum[16-20]

\part{THE END}
\setcounter{chapter}{0}
\chapter{EEEE}
\lipsum[21-25]

\chapter{FFFF}
\lipsum[26-30]

\end{document}

原理说明

  • \theHchapter是hyperref内部用来生成唯一锚点的命令,默认值和\thechapter相同,导致同编号章节锚点冲突。
  • 修改为\thepart.\thechapter后,每个章节的锚点会变成part.1.chapter.1、part.2.chapter.1这类唯一标识,彻底解决超链接跳转错误的问题。

内容的提问来源于stack exchange,提问作者Frotz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:15:00