我有一个 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}