当在下面的 MWE 中使用\documentclass{article}
和时,该命令正确地将引用格式化为。\usepackage{hyperref}
\autoref
Appendix 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}
?