[Tex/LaTex] Change the title size in scrartcl

fontsizekoma-scripttitles

I'd like to use a smaller title. I'm using the scrartcl documentclass from the KOMA-Script bundle. I can change it's color font but not it's size.

\setkomafont{title}{\normalfont\bfseries\small}

Everything works exept the size.

Best Answer

The documentation (scrguien) says about the title (I highlighted the relevant part):

The title is output with a very large font size. Besides the change of size, the settings for the element title also take effect. By default these settings are identical to the settings for the element disposition (see table 3.2, page 51). The default settings may be changed using the commands \setkomafont and \addtokomafont (see section 3.6, page 51). The font size is, however, not affected (see table 3.2, page 59).

The reason why the change of font size performed with \setkomafont won't have effect is because scrartcl.cls uses

\titlefont\huge \@title\par

so any modification to the font size made with \setkomafont (applied through \titlefont) will be overwritten by the \ḩuge command after \titlefont.

Here's a possible solution using the etoolbox package to patch the internal command \@maketitle to change the default \huge (instead of \small use the desired size):

\documentclass{scrartcl}
\usepackage{etoolbox}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\patchcmd{\@maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

enter image description here

As lockstep mentions, the above solution will produce the desired solution if the titlepage option is false (which is the default). If the titlepage option is set to true, one can patch \maketitle with the help of the xpatch package:

\documentclass[titlepage]{scrartcl}
\usepackage{xpatch}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\xpatchcmd{\maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

Here's some code that will work whether titlepage is set to true or false:

\documentclass{scrartcl}
\usepackage{xpatch}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\xpatchcmd{\maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\xpatchcmd{\@maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

Another option (mentioned by Andrew Swann in a comment), but I am not sure if this will have undesired side effects, is to use the font size switch directly in the argument of \title:

\documentclass{scrartcl}

\setkomafont{title}{\normalfont\bfseries}

\title{\small The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}