我正在尝试将某些章节的编号从数字更改为字母,使用方法:
\documentclass{report}
\setlength\parindent{0pt}
\usepackage{hyperref}
\begin{document}
Reference to chapter 1: \ref{chapter_1}
Reference to chapter A: \ref{chapter_a}
\chapter{A chapter}
\label{chapter_1}
\setcounter{chapter}{0}
\renewcommand{\thechapter}{\Alph{chapter}}%
\chapter{Another one}
\label{chapter_a}
\end{document}
当然,使用\setcounter{chapter}{0}
,我最终得到了两个章节“1”,一个表示为数字,另一个表示为字母,这会弄乱可点击的引用hyperref
(在上面的例子中,两个可点击的引用都指向第一章)。
有没有办法解决这个问题——将一个章节改为使用字母而不是数字,而不用通过重置章节编号来弄乱参考文献?
答案1
另一种可能性:使用\renewcommand{\theHchapter}{otherchapter\thechapter}
它来防止章节计数器值加倍而造成混淆hyperref
,因为这会设置链接锚点。
\documentclass{report}
\setlength\parindent{0em}
\usepackage{hyperref}
\begin{document}
Reference to chapter 1: \ref{chapter_1}
Reference to chapter A: \ref{chapter_a}
\chapter{A chapter}
\label{chapter_1}
%\appendix
\setcounter{chapter}{0}
\renewcommand{\thechapter}{\Alph{chapter}}%
\renewcommand{\theHchapter}{otherchapter\thechapter}
\chapter{Another one}
\label{chapter_a}
\end{document}
答案2
只需添加选项\usepackage[hypertexnames=false]{hyperref}
\documentclass{report}
\setlength\parindent{0pt}
\usepackage[hypertexnames=false]{hyperref}
\begin{document}
Reference to chapter 1: \ref{chapter_1}
Reference to chapter A: \ref{chapter_a}
\chapter{A chapter}
\label{chapter_1}
\setcounter{chapter}{0}
\renewcommand{\thechapter}{\Alph{chapter}}%
\chapter{Another one}
\label{chapter_a}
\end{document}
选项[hypertexnames=false]
允许使用 hyperrref 的计数器,但不允许使用与 对应的 TeX 计数器\usepackage{hyperref}
,这实际上是\usepackage[hypertexnames=true]{hyperref}