{revtex4-1}、{hyperref}、\autoref 和 \appendix 导致“附录”显示为“章节”。

{revtex4-1}、{hyperref}、\autoref 和 \appendix 导致“附录”显示为“章节”。

当在下面的 MWE 中使用\documentclass{article}和时,该命令正确地将引用格式化为。\usepackage{hyperref}\autorefAppendix A

\documentclass{article}
\usepackage{hyperref}

\begin{document}

\section{Intro}
\label{sec:intro}

See \autoref{apx:details}.

\appendix

\section{Details}
\label{apx:details}

See \autoref{sec:intro}.

\end{document}

但是,当我将文档类更改为时{revtex4-1},同一示例现在将两个\autoref命令格式化为Section

\documentclass{revtex4-1}
\usepackage{hyperref}

\begin{document}

\section{Intro}
\label{sec:intro}

See \autoref{apx:details}.

\appendix

\section{Details}
\label{apx:details}

See \autoref{sec:intro}.

\end{document}

深入研究hyperref.sty,检测附录的主要逻辑在\hyper@makecurrent命令中(特别是,这是使用的地方)。因此,我尝试通过使用在为该命令提供计数器时\hy@chapapp进行调试来诊断问题:{etoolbox}

\usepackage{etoolbox}

\makeatletter
\pretocmd{\hyper@makecurrent}{
    \message{hyper@makecurrent: #1}
}{}{}
\makeatother

对于带有 的 MWE \documentclass{article},这将提供预期的日志输出:

hyper@makecurrent: section hyper@makecurrent: section

对于具有 的 MWE \documentclass{revtex4-1},不会\hyper@makecurrent生成 的调用。这尤其违背了网络奇点,以至于包括它们的解决方案不会导致\autoref正确格式化为Appendix

是否可以在不使用的情况下修复此行为{cleveref}

相关内容