重置计数器后 hyperref 生成错误指向的 PDF 书签
本文发布于 1134 天前,其中的信息可能已经物是人非
描述
为了在不同 part 下使用不同章节标题格式,重置 chapter 计数器
\documentclass{book}
\begin{document}
\part{1}
\chapter{1}
\part{2}
\setcounter{chapter}{0}
\renewcommand{\thechapter}{\Roman{chapter}}
\chapter{2}
\end{document}
但第二个 chapter 的书签会指向第一个 chapter。
原因
这是因为 \setcounter{chapter}{0}
后,hyperref 生成书签时会认为第二个 chapter 的位置指向其计数器(此时为 1)的位置。
方法
-
hyperref 宏包中开启选项
hypertexnames=false
\usepackage{hyperref} \hypersetup{hypertexnames=false}
-
在导言区使用
\@addtoreset
命令重置计数器,而不是手动重置每个部件的计数器\makeatletter \@addtoreset{chapter}{part} \makeatother
-
其他方法可见 hyperref vs. setcounter - LaTeX Forum 和 hyperref does not work when section counter is reset - TeX - LaTeX Stack Exchange。