如何给某些章节添加副标题?

如何给某些章节添加副标题?

对于我的论文中的某些章节,我想在章节标题下添加副标题(但不在目录中)。我尝试过\chapter{Title \\ \large{subtitle}},这几乎可行,但 hyperref 包不喜欢该\\命令,结果我的副标题显示在标题下方非常近的位置。此外,这会将副标题添加到目录中,而这并不是我想要的。将标题设为斜体会使其看起来更好一些,但我仍然不知道如何在目录中隐藏它。

我也 尝试\chapter{title}{subtitle}\newcommand\Chapter[2]{ \chapter[#1: {\itshape#2}]{#1\\[2ex]\Large\itshape#2}}如何获取目录中出现的章节标题的额外字幕? 但这对我来说似乎不起作用,因为在这种情况下,副标题只是作为常规文本出现在章节正文中。

答案1

您可以使用

\chapter[short title for toc]{long title}`

这是针对应在目录中缩短显示的长标题。

\chapter[Title]{Title \\[1ex]\large{subtitle}}

应该可以正常工作。\\[1ex]创建一个额外的垂直空间1ex,即字母的高度x。或者为其创建一个宏:

\newcommand\Chapter[2]{\chapter[#1]{#1\\[1ex]\large#2}}

用法:\Chapter{title}{subtitle}

梅威瑟:

\documentclass{book}
\newcommand{\Chapter}[2]{\chapter[#1]{#1\\[1ex]\large#2}}

\begin{document}
\tableofcontents
\chapter[Title]{Title\\[1ex]\large{subtitle}}
\Chapter{Title}{subtitle}
\end{document}

result
result result


编辑:要将默认命令更改\chapter为小写c,可以执行以下操作:

\documentclass{book}

\makeatletter % makes @ available for macro names
\let\oldchapter\chapter % save the old macro for chapter
\renewcommand{\chapter}{% redefine it
  \@ifstar{\oldchapter*}% if it's \chapter*, use the old command
  {\@ifnextchar[ \oldchapter \@Chapter}}% if it's \chapter[..] use old, else new command
\def\@Chapter#1{% the new command
  \@ifnextchar[ {\@sChapter{#1}} {\oldchapter{#1}}}% if there's a subtitle call \@sChapter, else the old \chapter
\def\@sChapter#1[#2]{\oldchapter[#1]{#1\\[1ex]\large#2}}% the subtitle macro
\makeatother % return to normal

\begin{document}
  \tableofcontents
  \chapter{Title}
  \chapter{Title}[subtitle]

  % unchanged behaviour with traditional syntax:
  \chapter[title in toc]{Title}
\end{document}

我希望我已经处理了所有情况。这样,LaTeX 的每个默认标记都应该仍然有效。

相关内容