重命名 \maketitle 以包含隶属关系

重命名 \maketitle 以包含隶属关系

我以前从未使用过高级 tex 宏,所以我还很新。请不要太苛刻地评判我!

我需要修改\maketitle命令的行为。我希望能够\affiliation在其中添加一个自定义函数,这样当\maketitle执行时,\affiliation命令也会执行。以下是我的简单方法:

\newcommand{\affiliation}[1]{\parskip=-15pt
 $^1$\footnotesize{\textit{#1}}\parskip=20pt}

\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%
\@affiliation
\vskip 1em
%{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\makeatother
% ------------------------
 \title{Title}
 \author{My name}
 \affiliation{whatever}
%---------------------------

 \begin{document}
   \maketitle
 \end{document}

然而这似乎不起作用。我在“Overleaf”中遇到了编译错误Latex Error: Missing \begin{document}。有办法解决吗?非常感谢您的帮助!

答案1

根据您的代码,您可以使用以下内容。另一方面,我不知道您想用 完成什么\parskip

\documentclass{article}

\makeatletter
\newcommand{\affiliation}[1]{\edef\@affiliation{#1}}

\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%
%%%%%%%%
\parskip=-15pt
 $^1$\footnotesize{\textit{\@affiliation}}\parskip=20pt
%%%%%%%%
\vskip 1em
%{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\makeatother
% ------------------------
 \title{Title}
 \author{My name}
 \affiliation{whatever}
%---------------------------

 \begin{document}
   \maketitle
 \end{document}

相关内容