目录中的完整章节标题

目录中的完整章节标题

我有以下部分标题:

\subsection[Einfluss auf das Standardfranz.]{Einfluss auf das Standardfranzösisch}\label{standardFranz}

[...] 之间的文本较短,因为我需要页面标题中较短的标题。

这很好,但我需要将完整的章节标题放在目录中。我该如何实现?目前,它需要目录的 [...] 之间的文本,但我希望它需要 {...} 之间的文本。

答案1

您可以暂时避免\section设置通常设置\sectionmark,然后在该部分之后手动进行设置:

在此处输入图片描述

\documentclass{article}

\usepackage{lipsum}
\pagestyle{headings}
\newcommand{\gobble}[1]{}% Similar to \@gobble

\begin{document}

\tableofcontents

\lipsum[1-7]

{\let\sectionmark\gobble% Avoid setting \sectionmark
\section{A section}}% Set \section
\sectionmark{A different sectional heading}% Set actual mark
\lipsum[1-20]

\end{document}

我们将 的放置\section\gobble的组合在一起\sectionmark

答案2

这是标准类的缺陷之一:在我看来,短标题(分段命令的可选参数)应该只用于页眉,而不是目录。

这是标准类(articlereportbook)的一组补丁。其他类(例如memoir或 KOMA)有自己的方法来解决问题。

\documentclass{book}
\usepackage{etoolbox}
\usepackage{lipsum} % just for the example

\makeatletter
% the following three lines only if the class is report or book
\patchcmd{\@chapter}{#1}{#2}{}{} % #1 is the optional argument
\patchcmd{\@chapter}{#1}{#2}{}{} % #2 is the mandatory argument
\patchcmd{\@chapter}{#1}{#2}{}{}
%%%
\patchcmd{\@sect}{\fi#7}{\fi#8}{}{} % #7 is the optional argument
\patchcmd{\@sect}{\fi#7}{\fi#8}{}{} % #8 is the mandatory argument
\makeatother

\begin{document}

\tableofcontents

\chapter[Short chapter title]{A long long chapter title}

\section[Short title]{A long long section title}

\lipsum[1-20]

\end{document}

以下是目录的图片:

在此处输入图片描述

以下是标题的图片:

在此处输入图片描述

相关内容