文档类书籍的标题中有短标题,但不是目录

文档类书籍的标题中有短标题,但不是目录

我希望在标题中使用章节和节的简短标题,但在目录中应该出现长标题。

我正在使用book文档类和包fancyhdr\section[short title]{long title}为我提供了我想要的标题,但简称也放在了目录中。

就我的情况来说,这并没有奏效:目录中未显示的短标题 {hyperref}

答案1

以下内容更新了在课程中设置章节和部分标题时使用标记的方式book

在此处输入图片描述

\documentclass{book}

\usepackage{fancyhdr,lipsum}

\makeatletter

% Update how \chapter is added to the ToC/header
\let\oldchaptermark\chaptermark
\renewcommand{\chaptermark}[1]{\oldchaptermark{\@chaptermark}}% Used stored chapter mark
\let\old@chapter\@chapter
\def\@chapter[#1]#2{%
  \def\@chaptermark{#1}% Store chapter mark
  \old@chapter[#2]{#2}%
}

% Update how \section and \subsection is added to the ToC/header
\let\oldsectionmark\sectionmark
\renewcommand{\sectionmark}[1]{\oldsectionmark{\@sectionmark}}% Used stored section mark
\let\oldsubsectionmark\subsectionmark
\renewcommand{\subsectionmark}[1]{\oldsubsectionmark{\@subsectionmark}}% Used stored subsection mark
\let\old@sect\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \@namedef{@#1mark}{#7}% Store sectional mark
  \old@sect{#1}{#2}{#3}{#4}{#5}{#6}[#8]{#8}% 
}

\makeatother

\begin{document}

\tableofcontents

\sloppy % Just for this example
\chapter[Chapter short title]{Chapter long title}
\lipsum[1-50]

\section[Section short title]{Section long title}
\lipsum[1-50]

\end{document}

答案2

如果您愿意更改为该类memoir(包含该类book和该包的等效项fancyhdr),那么:

\chapter[<toc-title>][<head-title>]{<title>}
\section[<toc-title>][<head-title>]{<title>}

放入<toc-title>目录、<head-title>页眉和<title>文档正文中。同样,相同的构造也适用于\subsection\subsubsection等。

相关内容