![重命名 \maketitle 以包含隶属关系](https://linux22.com/image/444339/%E9%87%8D%E5%91%BD%E5%90%8D%20%5Cmaketitle%20%E4%BB%A5%E5%8C%85%E5%90%AB%E9%9A%B6%E5%B1%9E%E5%85%B3%E7%B3%BB.png)
我以前从未使用过高级 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}