对于我的论文中的某些章节,我想在章节标题下添加副标题(但不在目录中)。我尝试过\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}
编辑:要将默认命令更改\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 的每个默认标记都应该仍然有效。