\maketitle 的重新定义被忽略

\maketitle 的重新定义被忽略

我想更改标题页的某些元素,但又不完全创建自己的标题页环境(例如这里),因为我正在使用诸如\extratitle和之类的命令\uppertitleback,并且我不想重新创建它们所有。

我正在使用 KOMA 级,幸运的是,这个帖子不仅解释了在这种情况下如何重新定义\maketitle,而且还包括了它的原始定义,因此我很容易适应。

\maketitle但出于某种原因,在调用时,我的新定义被忽略,而使用默认定义。然而,这变得更加奇怪,因为当我调用时\makeatletter\meaning\@maketitle\makeatothermaketitle根据这个帖子),它产生了新的定义,在我调用之前和之后\maketitle。这里发生了什么?

另外,当我以这种方式创建一个全新的命令时,例如\makecustomtitle,编译器说它不知道它:Undefined control sequence.

梅威瑟:

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

相关内容