![\maketitle 的重新定义被忽略](https://linux22.com/image/462847/%5Cmaketitle%20%E7%9A%84%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%E8%A2%AB%E5%BF%BD%E7%95%A5.png)
我想更改标题页的某些元素,但又不完全创建自己的标题页环境(例如这里),因为我正在使用诸如\extratitle
和之类的命令\uppertitleback
,并且我不想重新创建它们所有。
我正在使用 KOMA 级,幸运的是,这个帖子不仅解释了在这种情况下如何重新定义\maketitle
,而且还包括了它的原始定义,因此我很容易适应。
\maketitle
但出于某种原因,在调用时,我的新定义被忽略,而使用默认定义。然而,这变得更加奇怪,因为当我调用时\makeatletter\meaning\@maketitle\makeatother
(maketitle
根据这个帖子),它产生了新的定义,在我调用之前和之后\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}