我想\maketitle
通过添加两个新字段来定制:\department
和\school
。
我想在自定义中添加它们\def\@maketitle{%
。我天真地尝试了这个:
\providecommand{\school}[1]{\newcommand{\@school}[1]{\school}}
答案1
LaTeX 定义\author
为
\DeclareRobustCommand*\author[1]{\gdef\@author{#1}}
您可以用同样的方式定义\school
和:\department
\DeclareRobustCommand*\School[1]{\gdef\@School{#1}}
\DeclareRobustCommand*\Department[1]{\gdef\@Department{#1}}
@
可能不会出现在用户级别的宏名称中,因此您必须将定义括在\makeatletter
和之间\makeatother
(并将命令放入前言中),或者将它们放入文件中mydefs.sty
并使用在前言中加载该文件\usepackage{mydefs}
。
创建新\maketitle
命令的最简单方法可能是保留旧命令并在定义中使用它。
\DeclareRobustCommand*\Author[1]{\gdef\@Author{#1}}
\newcommand\Maketitle{%
\author{\@Author\\\@School, \@Department}%
\maketitle
}
请注意,我们需要一个新\author
命令,因为我们需要原始命令将学校和部门与作者结合起来。
\documentclass{article}
\makeatletter
\DeclareRobustCommand*\School[1]{\gdef\@School{#1}}
\DeclareRobustCommand*\Department[1]{\gdef\@Department{#1}}
\DeclareRobustCommand*\Author[1]{\gdef\@Author{#1}}
\newcommand\Maketitle{%
\author{\@Author\\\@School, \@Department}%
\maketitle
}
\makeatother
\begin{document}
\title{My Article}
\Author{It's me}
\School{my school}
\Department{my department}
\Maketitle
\end{document}