使用 revtex4-1 的部分交叉引用格式错误

使用 revtex4-1 的部分交叉引用格式错误

我正在使用 revtex4-1 文档类制作一份文档,其中各部分应显示为例如IA1。为了实现这一点,我简单地在序言中添加了以下几行:

\renewcommand\thesubsection{\thesection.\Alph{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}

并且运行完美。现在的问题是,如果我在文本中添加对某个部分的引用,它会显示为IA IA1。我尝试了各种组合,只有当我使用 revtex4-1 文档类添加上述两行时才会出现此问题(例如,使用文章文档类)。下面是一个重现此问题的最小工作示例:

\documentclass{revtex4-1}

\renewcommand\thesubsection{\thesection.\Alph{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}

\begin{document}

\section{Intro}
\subsection{Some point}
\subsubsection{Some other point}
\label{sec:some_other_point}

\section{Outro}
As seen in Sec.~\ref{sec:some_other_point}, this reference is incorrectly shown using revtex4-1.

\end{document}

在 Ubuntu 10.04 下使用 Texmaker (texLive) 进行渲染如下。 在此处输入图片描述

答案1

revtex4-1类别在标题中使用简单数字,依靠格式来区分章节级别:章节使用罗马数字和全大写粗体,小节使用字母和粗体,小小节使用阿拉伯数字和斜体。

\p@subsection因此,它设置了一些东西,以便在引用中通过关联的宏和自动提供缺失的部分\p@subsubsection。由于您想要覆盖标准(这有点令人惊讶,因为该类通常用于提交具有预定义样式的期刊),您必须说

\makeatletter
\def\p@subsection{}
\def\p@subsubsection{}
\makeatother

在您的文件序言中。

答案2

reftex4-1使用可以使用 作为前缀的功能\p@<counter>。您需要为重新定义的计数器重置它们:

\renewcommand\thesubsection{\thesection.\Alph{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}

\makeatletter
\renewcommand*{\p@subsection}{}
\renewcommand*{\p@subsubsection}{}
\makeatother

相关内容