如何使 \ref 仅显示子节

如何使 \ref 仅显示子节

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

我看到了两个解决方案,但不知道如何实施:

  1. 以更智能的方式更改部分的显示数量,或者

  2. 更改 \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

相关内容