如何在 revTex 中隐藏目录 (TOC) 中子部分的页码?

如何在 revTex 中隐藏目录 (TOC) 中子部分的页码?

我想仅在 revTex 中显示章节目录中的页码。请看这里,这是一个最小的工作环境:

\documentclass[aps]{revtex4-1}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc} 

\begin{document}

\section{First section}
\subsection{First subsection of first section}
\subsection{Second subsection of first section}

\section{Second section}
\subsection{First subsection of second section}
\subsection{Second subsection of second section}

\tableofcontents

\end{document} 

即只应显示第一部分和第二部分的页码。如能提供任何帮助,我们将不胜感激。

谢谢,

哈特穆特

答案1

revtex4-1 类对目录中的每一行使用相同的格式,只是更改了缩进。您可以使用 etools 减少混乱,但最终效果是一样的。

\documentclass[aps]{revtex4-1}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc} 

\makeatletter
\def\l@@sections#1#2#3#4{%
 \begingroup
  \everypar{}%
  \set@tocdim@pagenum\@tempboxa{#4}%
  \def\testA{subsection}\def\testB{#2}\ifx\testA\testB \set@tocdim@pagenum\@tempboxa{}\fi% one line patch
  \global\@tempdima\csname tocdim@#2\endcsname
  \leftskip\csname tocleft@#2\endcsname\relax
  \dimen@\csname tocleft@#1\endcsname\relax
  \parindent-\leftskip\advance\parindent\dimen@
  \rightskip\tocleft@pagenum plus 1fil\relax
  \skip@\parfillskip\parfillskip\z@
  \let\numberline\numberline@@sections
  \@nameuse{l@f@#2}%
  \ignorespaces#3\unskip\nobreak\hskip\skip@
  \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
  \expandafter\par
  \expandafter\aftergroup\csname tocdim@#2%
  \expandafter\endcsname
  \expandafter\endgroup
              \the\@tempdima\relax
}%
\makeatother

\begin{document}

\section{First section}
\subsection{First subsection of first section}
\subsection{Second subsection of first section}

\section{Second section}
\subsection{First subsection of second section}
\subsection{Second subsection of second section}

\tableofcontents

\end{document} 

演示

相关内容