如何修改小节标题的外观而不弄乱小节引用的工作方式?

如何修改小节标题的外观而不弄乱小节引用的工作方式?

我有一个 revtex4 文档,我想更改子部分标签的显示方式:

\section{Foo}
\subsection{Bar}

目前编译为如下内容:

I. Foo
A. Bar

但我希望它显示为:

I. Foo
IA 酒吧

我可以通过添加一个新命令轻松完成此操作:
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}

但是这会弄乱文本中对章节/子章节的引用。如果我将它们标记为 sec:Foo 和 subsec:Bar,那么如果我写:

lots of stuff happens in section \ref{sec:Foo}
and specifically this interesting thing appears in \ref{subsec:Bar}  

然后编译为:

第一部分发生了很多事情,特别是第一部分IA中发生了一件有趣的事情

但我希望它显示为:

第一部分发生了很多事情,特别是这件有趣的事情发生在IA中

我觉得我想鱼与熊掌兼得,但结果并不理想。我觉得我缺少了关于章节编号/标签命令如何工作的更深层次的东西。有什么建议吗?

答案1

该类revtex4为子节的交叉引用添加了前缀,因为它使用

\def\p@subsection{\thesection\,}

因此,除了

\def\thesubsection{\thesection.\Alph{subsection}}

你还需要

\def\p@subsection{}

取消前缀:

\documentclass{revtex4}

\makeatletter
\def\thesubsection{\thesection.\Alph{subsection}}
\def\p@subsection{}
\makeatother

\begin{document}

\section{Test section}
\label{sec:testsec}
\subsection{Test subsection}
\label{sec:testsubsec}

Cross reference to the section~\ref{sec:testsec} and to the subsection~\ref{sec:testsubsec}.

\end{document}

在此处输入图片描述

由于该类对其他部分单元做了类似的事情,正如您在小节中看到的那样:

\def\thesubsubsection{\arabic{subsubsection}}
\def\p@subsubsection{\thesection\,\thesubsection\,}

那么你可能还需要添加类似

\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
\def\p@subsubsection{}

(对于下部单元,也可以使用类似的方法)如果您想让下部单元保持相同的风格。

\documentclass{revtex4}

\makeatletter
\def\thesubsection{\thesection.\Alph{subsection}}
\def\p@subsection{}
\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
\def\p@subsubsection{}
\makeatother

\begin{document}

\section{Test section}
\label{sec:testsec}
\subsection{Test subsection}
\label{sec:testsubsec}
\subsubsection{Test subsection}
\label{sec:testsubsubsec}

Cross reference to the section~\ref{sec:testsec}, to the subsection~\ref{sec:testsubsec} and to the subsubsection~\ref{sec:testsubsubsec}.

\end{document}

在此处输入图片描述

相关内容