我正在使用 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