50

Does there exist some command for subtitles in the \maketitle thing?

  • 11
    The titlepage environment can be used to create a title page with everything you need. The standard classes don't even try to provide "everything" one could need. You can look at the titling package for getting aid in designing a title. – egreg Mar 31 '12 at 12:15
41

In the standard classes: no. In the KOMA-Script classes: yes.

\documentclass{scrartcl}

\begin{document}

\title{(Title)}
\subtitle{(Subtitle)}
\author{(Author)}

\maketitle

\end{document}

enter image description here

  • 1
    How about subsubsub...title? – hhh Mar 31 '12 at 14:03
  • @hhh AFAIK, no class/package offers this. – lockstep Apr 1 '12 at 11:05
50

With the titling package one can define a \subtitle command as follows:

\documentclass[a4paper]{article}
\usepackage{titling}
\newcommand{\subtitle}[1]{%
  \posttitle{%
    \par\end{center}
    \begin{center}\large#1\end{center}
    \vskip0.5em}%
}

\begin{document}

\title{(Title)}
\subtitle{(Subtitle)}

\author{(Author)}

\maketitle

\end{document}

The trick is that titling redefines \maketitle so that it executes, among other things

<pretitle tokens> <title tokens> <posttitle tokens>

and what goes in <posttitle tokens> is set by

\posttitle{tokens}

The default, as made clear in the documentation, is

  \posttitle{\par\end{center}\vskip0.5em}

so what's needed is to insert something in between.

enter image description here

  • ...how about subsubsub...title? – hhh Mar 31 '12 at 14:18
  • @hhh What do you mean? – egreg Mar 31 '12 at 14:19
  • Like is it possible to have \subsubtitle{...}? At least with the \title{...} linebreaks do not work in title -element \title{oneLine\n newLine}. – hhh Mar 31 '12 at 14:29
  • 5
    Use \\ to force a line break. – egreg Mar 31 '12 at 14:49
  • @egreg Thanks for the helpful solution here. Unfortunately I'm running into an error when trying to include an abstract and multiple authors. I posted a separate question about the issue here: tex.stackexchange.com/questions/285711/… – Mathemanic Jan 3 '16 at 5:22
1

I was inspired by Enrico's suggestion, but didn't want to use the titling package because it's not included in BasicTeX and some other minimal TeX distributions, so I added a subtitle using etoolbox instead. This also won't clash with KOMA-Script or other classes that add their own version of \subtitle:

\documentclass{article}

\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother

\begin{document}

\title{(Title)}
\subtitle{(Subtitle)}
\author{(Author)}

\maketitle

\end{document}
  • 3
    Don't place the \usepackage{etoolbox} inside the definition of \subtitle. – Werner Jan 11 at 2:55
  • Is there a reason for that? The idea was to load etoolbox only if the command were used. – Andrew Dunning Jan 11 at 2:59
  • 2
    You call \title inside the preamble (before \begin{document}). However, without your patch, you can call \title after \begin{document}. One issue, \usepackage can only be used inside the preamble which forces \title to be used in the preamble. It's just not common practice. – Werner Jan 11 at 3:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.