我正在使用 revtex4 包,想将所有级别的章节编号更改为阿拉伯语。此外,我希望章节显示为 1.2.(而不是仅显示 2.)。
我仅使用章节和小节,因此我执行了以下操作:
\def\thesection{\arabic{section}}
\def\thesubsection{\thesection.\arabic{subsection}}
现在,章节和子章节已按我想要的方式显示。但是,引用子章节现在已损坏。它显示如下(编辑示例):
\documentclass[twocolumn,pre,floats,aps,amsmath,amssymb,a4,floatfix]{revtex4}
\usepackage{acronym}
\usepackage[english]{babel}
\setcounter{secnumdepth}{3}
\pagenumbering{arabic}
\def\thesection {\arabic{section}}
\def\thesubsection {\thesection.\arabic{subsection}}
\begin{document}
\section{First Section}
\subsection{A Subsection}
\label{sub:example}
And then some text.
\section{Second Section}
Let's ref Section \ref{sub:example}.
\end{document}
... 代替1.1
。
我看到了两个解决方案,但不知道如何实施:
以更智能的方式更改部分的显示数量,或者
更改 \ref 的显示内容(以便在引用子节时仅显示该子节。
我怎样才能实现这些目标,或者还有其他方法吗?
答案1
\label
某些计数器的Asubsection
通常构造为\p@subsection\thesubsection
。在大多数情况下,“前缀”命令\p@...
不会排版任何内容,因此结果与 产生的结果相同\the...
。此类“前缀”命令仅由标准类用于构造引用,例如枚举中的 1.a,其中的项目已标记1
并且子项a
。
revtex4.cls
但是,这些命令 \p@...
也用于航向计数器:
\def\thesection {\Roman{section}}
\def\p@section {}
\def\thesubsection {\Alph{subsection}}
\def\p@subsection {\thesection\,}
\def\thesubsubsection {\arabic{subsubsection}}
\def\p@subsubsection {\thesection\,\thesubsection\,}
因此,如果你\thesubsection
按照之前的方式进行更改,最终会得到以下结果:
\thesection\,\thesection.\arabic{subsection}
换句话说,您还需要将所有相应的\p@...
命令更改为不展开。我在文档序言中写道:
\makeatletter
\def\p@subsection{}
\makeatother