我正在使用一个模板,该模板\maketitle
除了作者和标题外还定义了日期。我找不到定义它的文件,但.tex
我正在修改的模板中有以下注释:
\maketitle % Use the \author, \title and \date info
我想重新定义命令以仅包含\author
和\title
信息。关于如何做到这一点有什么建议吗?
我想\maketitle
在我的.tex
文件中重新定义。原始定义可能位于我可能使用的任何包中。
答案1
正如您所说,您不知道您的\maketitle
定义在哪里。让我们使用 TeX 来找出定义:
代替
\maketitle % Use the \author, \title and \date info
和
\meaning\maketitle
\maketitle
此行将为您提供当前有效的定义。这很可能会导致一些簿记操作,然后调用另一个宏,通常称为\@maketitle
或类似于 WChargin 的答案。因此,我们必须找出它\@maketitle
(或无论它叫什么)的作用。所以添加
\makeatletter\meaning\@maketitle\makeatother
-pair\makeatletter ... \makeatother
是使 LaTeX 能够处理 中所必需@
的\@maketitle
。
有了这些信息,您就可以按照 WChargin 的回答进行操作。假设您获得了 WChargin 发布的定义,您可以按如下方式进行修改(\makeatletter ... \makeatother
由于 而再次添加@
)
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
%{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\makeatother
您会发现,这与 WChargin 所写的完全一样。
答案2
最简单的方法是
\date{}
这将使用一个空日期。但会有一个额外的空格。
我没有您的样式文件,因此我将使用它article
作为示例。要查找 的定义\maketitle
,您可以\show\maketitle
从交互式 TeX 运行中执行,也可以在包文件中查找(类的扩展名为 .cls,样式的扩展名为 .sty)。后者可能更好,因为您可以获得更好的格式和缩进。
要获取包的路径,例如 class article.cls,请kpsewhich article.cls
在终端运行。
此后,从article.cls
(第 213 行):
\newcommand\maketitle{\par
\begingroup
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hb@[email protected]{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
从这里我们可以看出,这是\@maketitle
执行实际排版的命令。它在下一行定义。
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\fi
因此,您只需重新定义它,删除您不想要的行,就完成了。
平均能量损失
\documentclass{article}
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
%\vskip 1em%
%{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\fi
\makeatother
\title{MWE}
\author{You}
\date{Today}
\begin{document}
\maketitle
Hello, world!
\end{document}