[Tex/LaTex] How to add a subtitle to some chapters

chapterssectioningtable of contents

For some of the chapters of my thesis I want to add a subtitle under the chapter title(but not in the table of content).
I have tried \chapter{Title \\ \large{subtitle}}, which almost works, but the hyperref package doesn't like the \\ command, and as a result my subtitle shows up very close under the title. Also this adds the subtitle into the table of content, which I don't want. Making the title italic makes it look a little better, but I still don't how to suppress it in the table of contents.

I have also tried \chapter{title}{subtitle} with
\newcommand\Chapter[2]{
\chapter[#1: {\itshape#2}]{#1\\[2ex]\Large\itshape#2}}

as discussed in How can I get extra subtitles for chapter titles that also appear in the ToC?
But that didn't seem to work for me, as the subtitle just appears as regular text in the body of the chapter in this case.

Best Answer

You can use

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

This is for long titles that should show up shortened in the toc.

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

should work fine. \\[1ex] creates an additional vertical space of 1ex, i.e., the height of the letter x. Or create a macro for it:

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

Usage: \Chapter{title}{subtitle}

MWE:

\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


edit: For changing the default command \chapter with lower case c, one could do the following:

\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}

I hope I have taken care of every case. That way, every default markup for latex should still work.