我想将附录的引用显示为“附录 A”等。目前,使用以下代码引用显示为“部分 A”。我该如何调整?
\documentclass[appendixprefix = true]{scrreport}
\usepackage[title,toc,page]{appendix} % appendices
\usepackage{hyperref}
\begin{document}
\let\ref\autoref
\tableofcontents
\newpage
This is a reference to the \ref{appendix:test}
\appendix
\include{appendix}
\chapter*{Appendices}
\addcontentsline{toc}{chapter}{Appendices}
\setcounter{section}{0}% Reset numbering for sections
\renewcommand{\thesection}{\Alph{section}}
\section{Test}
\label{appendix:test}
\section{Another Test}
\end{document}
答案1
Hyperref\autoref
并不容易。下面的方法应该可行:
\makeatletter
\RenewDocumentCommand{\appendix}{} %
{
\gdef\theHchapter{\Hy@AlphNoErr{chapter}} % ❶
\gdef\theHsection{\Hy@AlphNoErr{section}} % ❶
\xdef\Hy@chapapp{\Hy@appendixstring} % ❷
\def\Hy@chapterstring{section} % ❸
\HyOrg@appendix % ❹
}
\makeatother
标记 ❶ 的行(改编自\appendix
hyperref 中原始的重新定义)确保如果章节或部分编号超出范围,不会出现错误。❷ 也改编自原始定义,它将附录的标签更改为附录(这通常会影响章节)。❸ 是这里的关键步骤。我们将命令\appendix
置于 hyperref 中,并告诉它部分是顶级命令,应该使用来自的标签。最后 ❹ 调用hyperref 包保存的\Hy@chapapp
原始定义。\appendix
我已经用 cleveref 为我的 LaTeX 书做了类似的事情,将对附录章节和小节的引用标记为附录,但我目前的解决方案相当粗糙,我不想现在分享它(虽然我最终会在 ctan 上发布文档类)。
答案2
我不知道细节,scrreport
所以\autoref
这不能解决您的问题,但您可能需要稍微整理一下您的代码:
% appendixprob.tex SE 611452
\documentclass[appendixprefix = true]{scrreport}
\usepackage[title,toc,page]{appendix} % appendices
\usepackage{hyperref}
\begin{document}
% \let\ref\autoref % is this causing the problem in scrreport?
\tableofcontents
\newpage
This is a reference to the \ref{appendix:test}
% \appendix
\begin{appendices} % using this saves a lot of your code
\include{appendix} % we have no idea what is in appendix.tex
% \chapter*{Appendices}
% \addcontentsline{toc}{chapter}{Appendices}
% \setcounter{section}{0}% Reset numbering for sections
\renewcommand{\thesection}{\Alph{section}}
\section{Test}
\label{appendix:test}
\section{Another Test}
\end{appendices}
\end{document}