该\appendix
命令将部分计数器重置为零:
*\documentclass{article}
*\show\appendix
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo))
> \appendix=\long macro:
->\par \setcounter {section}{0}\setcounter {subsection}{0}\gdef \thesection {\@
Alph \c@section }.
我的理解\section
是它根据当前计数器数字创建书签?在下面,我觉得我\appendix
在声明之前重现了关键部分\section{six}
,但它不起作用。
\documentclass{article}
\usepackage[final]{hyperref}
\begin{document}
\tableofcontents
\newpage
\section{one}
\newpage
\section{two}
\newpage
\section{three}
\newpage
\appendix
\section{four}
\newpage
\section{five}
\setcounter{section}{0}
\setcounter{subsection}{0}
\section{six}
\end{document}
相反,\section{six}
有一个书签指向\section{four}
。LaTeX 的输出可以理解地显示:
pdfTeX warning (ext4): destination with the same identifier
(name{appendix.A}) has been already used, duplicate ignored
所以我不明白为什么会发生这种情况。\appendix
它所做的比我想象的要多吗?重新定义\thesection
似乎与此无关。
答案1
该hyperref
包进行了修改\appendix
,因此它确实不仅仅是重置计数器和进行更改\thesection
。
\documentclass{article}
\usepackage{hyperref}
\show\appendix
产量
> \appendix=macro:
->\ltx@IfUndefined {chapter}{\gdef \theHsection {\Alph {section}}}{\gdef \theHc
hapter {\Alph {chapter}}}\xdef \Hy@chapapp {\Hy@appendixstring }\HyOrg@appendix
因此它也设置\Hy@chapapp
为 的值\Hy@appendixstring
(默认为appendix
)。我猜想(但尚未检查)hyperref
创建的链接名为\Hy@chapapp.\theH⟨current sectional unit⟩
。
\HyOrg@appendix
仅包含的原始定义\appendix
,它也会被执行。