从目录中的章节标题中删除第一个单词

从目录中的章节标题中删除第一个单词
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\begin{document}

\tableofcontents

\chapter{MyChapter}
\section{Term: Foo}
\section{foobar}
\section{Term: Bar}
\end{document}

我的一些章节标题以特殊单词开头。在我的示例中,它是文本“Term:”。当然,这是整个标题的一部分。但我希望它们不出现在目录中:

当前目录:

1 MyChapter               3
  1.1 Term: Foo ..........3
  1.2 foobar .............3
  1.3 Term: Bar ..........3

预期目录:

1 MyChapter               3
  1.1 Foo ................3
  1.2 foobar .............3
  1.3 Bar ................3

当然,反过来也行得通:如果有一种解决方案可以在我的章节标题后面添加“Term: ”前缀,那么这种方法也可以行得通。但在这种情况下,需要确保只有少数章节标题需要扩展。

答案1

你可以简单地这样做:

\section*{Term: Foo}                  % suppresses output in TOC
\addcontentsline{toc}{section}{Foo}   % add custom line to TOC

编辑:上面的代码还隐藏了编号,这可能是您不想要的。因此,这里还有另一个建议,即使用一个命令完成所有操作:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\newcommand{\customsec}[1]{\section[#1]{Term: #1}}

\begin{document}

\tableofcontents

\chapter{MyChapter}
\customsec{Foo}
\section{foobar}
\customsec{Bar}
\end{document}

目录 内容

答案2

您可以在命令中使用短标题作为可选参数\section。这样可以保留编号。MWE:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\begin{document}

\tableofcontents

\chapter{MyChapter}
\section[Foo]{Term: Foo}
\section{foobar}
\section[Bar]{Term: Bar}
\end{document}

结果:

在此处输入图片描述

相关内容