我在使用 REVTeX 向目录添加未编号部分时遇到了问题。以下是一个小示例:
\documentclass[]{revtex4-1}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\newpage
\section{Numbered section}
\lipsum
\section*{Unnumbered section}
\lipsum
\end{document}
输出以下内容:
目录页: 正文:
这是错误吗?我的安装有问题吗?
如果我使用不同的文档类别(例如文章),则不存在未编号的部分。
答案1
这是类的设计选择;您可以通过重新定义(或修补\@ssect@ltx
)来更改它。
重新定义后:
\documentclass[]{revtex4-1}
\makeatletter
\def\@ssect@ltx#1#2#3#4#5#6[#7]#8{%
\def\H@svsec{\phantomsection}%
\@tempskipa #5\relax
\@ifdim{\@tempskipa>\z@}{%
\begingroup
\interlinepenalty \@M
#6{%
\@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}%
{\hskip#3\relax\H@svsec}{#8}%
}%
\@@par
\endgroup
\@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
%\addcontentsline{toc}{#1}{\protect\numberline{}#8}%
}{%
\def\@svsechd{%
#6{%
\@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}%
{\hskip#3\relax\H@svsec}{#8}%
}%
\@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
\addcontentsline{toc}{#1}{\protect\numberline{}#8}%
}%
}%
\@xsect{#5}%
}%
\makeatother
\begin{document}
\tableofcontents
\section{Numbered section}
\section*{Unnumbered section}
\end{document}
使用补丁:
\documentclass[]{revtex4-1}
\usepackage{xpatch}
\makeatletter
\patchcmd{\@ssect@ltx}
{\addcontentsline{toc}{#1}{\protect\numberline{}#8}}
{}
{}
{}
\makeatother
\begin{document}
\tableofcontents
\section{Numbered section}
\section*{Unnumbered section}
\end{document}