多个附录的参考名称问题

多个附录的参考名称问题

从 TeXLive 2017 更新到 2021 后,我们在附录包中遇到了以下问题:在包含多个附录的文档中,在第一个附录之后,对\autoref章节的引用标有单词“附录”而不是“章节”。这是 MWE 和输出,一次使用附录包的 v1.2b 编译,一次使用 v1.2c 编译。

梅威瑟:

\documentclass{article}
\usepackage{appendix}
\usepackage{hyperref}

\begin{document}

\section{Section 1}
\label{sec:section1}

SEE \autoref{sec:section1}

\begin{appendices}
\section{Appendix Section 1}
\label{app:section1}
\end{appendices}

\section{Section 2}
\label{sec:section2}

SEE \autoref{sec:section2}

\begin{appendices}
\section{Appendix Section 2}
\label{app:section2}
\end{appendices}

\end{document}

输出:

  • 附录 v1.2b

在此处输入图片描述

  • 附录 v1.2c

在此处输入图片描述

有没有办法在 v1.2c 中实现用“section”一词标记的引用?

答案1

我认为这是附录中的一个错误,它使用 \xdef 而不是 \def。你现在可以使用以下方法恢复此问题

\documentclass{article}
\usepackage{appendix,etoolbox}
\usepackage{hyperref}
\makeatletter
\patchcmd\@resets@pp{\xdef}{\def}{}{\fail}
\patchcmd\@resets@ppsub{\xdef}{\def}{}{\fail}
\makeatother

\begin{document}

\section{Section 1}
\label{sec:section1}

SEE \autoref{sec:section1}

\begin{appendices}
\section{Appendix Section 1}
\label{app:section1}
\end{appendices}

\section{Section 2}
\label{sec:section2}

SEE \autoref{sec:section2}

\begin{appendices}
\section{Appendix Section 2}
\label{app:section2}
\end{appendices}

\end{document}

答案2

虽然 LaTeX 将附录视为与章节或节相同的内容,但在这种情况下,您可能希望将它们视为小节。顺便说一句,这也解决了 autoref 问题。

演示

\documentclass{article}
\usepackage{hyperref}
\newenvironment{appendices}{\setcounter{subsection}{0}%
  \def\thesubsection{\thesection\Alph{subsection}}}{}

\begin{document}

\section{Section 1}
\label{sec:section1}

SEE \autoref{sec:section1}

\begin{appendices}
\subsection{Appendix Section 1}
\label{app:section1}
\end{appendices}

\section{Section 2}
\label{sec:section2}

SEE \autoref{sec:section2}

\begin{appendices}
\subsection{Appendix Section 2}
\label{app:section2}
\end{appendices}

\end{document}

或者,此版本使用单独的附录计数器。

演示2

\documentclass{article}
\usepackage{hyperref}
\newcounter{appendix}
\newenvironment{appendices}{\edef\savesection{\arabic{section}}%
  \setcounter{section}{\value{appendix}}%
  \def\thesection{\Alph{section}}}%
{\setcounter{appendix}{\value{section}}%
  \setcounter{section}{\savesection}}

\begin{document}

\section{Section 1}
\label{sec:section1}

SEE \autoref{sec:section1}

\begin{appendices}
\section{Appendix Section 1}
\label{app:section1}
\end{appendices}

\section{Section 2}
\label{sec:section2}

SEE \autoref{sec:section2}

\begin{appendices}
\section{Appendix Section 2}
\label{app:section2}
\end{appendices}

相关内容