0

I would like to change some elements of my title page, but without completely creating my own titlepage environment (as e.g. demonstrated here), because I am using commands like \extratitle and \uppertitleback and I'd rather not recreate them all.

I am using a KOMA-class and luckily, this post not only explains how to redefine \maketitle in such a case, but also includes the original definition of it, so it is easy for me to adapt.

But for some reason, my new definition is ignored when \maketitle is called, and the default one is used instead. It gets even stranger however, because when I call \makeatletter\meaning\@maketitle\makeatother (which should show me the current definition of maketitle according to this post), it produces the new definition, both before and after I call \maketitle. What's going on here?

Also, when I create an entirely new command that way, e.g. \makecustomtitle, the compiler says it doesn't know it: Undefined control sequence.

MWE:

\documentclass{scrbook}


\makeatletter
\renewcommand*{\@maketitle}{%
% \newcommand*{\@makecustomtitle}{%
%   \global\@topnum=\z@
%   \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
%   \ifx\@titlehead\@empty \else
%     \begin{minipage}[t]{\textwidth}
%       \usekomafont{titlehead}{\@titlehead\par}%
%     \end{minipage}\par
%   \fi
%   \null
%   \vskip 2em%
% %  \begin{center}%
%     \ifx\@subject\@empty \else
%       {\usekomafont{subject}{\@subject \par}}%
%       \vskip 1.5em
%     \fi
%     {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
%     \vskip .5em
%     {\usekomafont{title}{\huge \@title \par}}%
%     \vskip 1em
%     {%
%       \usekomafont{author}{%
%         \lineskip .5em%
%         \begin{tabular}[t]{@{}l}
%           \@author
%         \end{tabular}\par
%       }%
%     }%
%     \vskip 1em%
%     {\usekomafont{date}{\@date \par}}%
%     \vskip \z@ \@plus 1em
%     {\usekomafont{publishers}{\@publishers \par}}%
%     \ifx\@dedication\@empty \else
%       \vskip 2em
%       {\usekomafont{dedication}{\@dedication \par}}%
%     \fi
% %  \end{center}%
%   \par
%   \vskip 2em
}%
\makeatother

\begin{document}

\subtitle{This is a subtitle}
\title{This is a title}
\author{Author Name}
\date{\today}

\makeatletter\meaning\@maketitle\makeatother
\maketitle
\makeatletter\meaning\@maketitle\makeatother

% \makecustomtitle

\end{document}
6
  • 1
    scrbook is not the same as scrartcl though. Maybe you'll have to resort to reading the source code of \maketitle in this document class to see what the definition is and adapt
    – user202729
    Mar 27, 2023 at 16:08
  • 1
    You are not redefining \maketitle but \@maketitle, which is AFAIK only used for on page title heads (option titlepage=false), but not for title pages (option titlepage=true, which is default with scrbook).
    – cabohah
    Mar 27, 2023 at 16:14
  • 1
    BTW: Package uni-titlepage is AFAIK more or less compatible with KOMA-Script classes. So you could load the KOMA-Script style of that package and change only the first title page by redefining \makemaintitle.
    – cabohah
    Mar 27, 2023 at 16:18
  • @user202729 that's true. I'll have a look.
    – mapf
    Mar 27, 2023 at 16:21
  • @cabohah ah thank you. I thought the @ had to do with the \makeatletter commands. I didn't realize they are actually different commands. The uni-titlepage may be a good option. Apparently it's from the KOMA author.
    – mapf
    Mar 27, 2023 at 16:29

0

You must log in to answer this question.

Browse other questions tagged .