Удалить первое слово из заголовка раздела в оглавлении

Удалить первое слово из заголовка раздела в оглавлении
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\begin{document}

\tableofcontents

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

Некоторые из моих названий разделов начинаются со специального слова. В моем примере это текст "Term: ". Конечно, это часть всего заголовка. Но я не хочу, чтобы они появлялись в ToC:

Текущее содержание:

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}

Результат:

введите описание изображения здесь

Связанный контент