我想根据文章类为需要修改标题页的学生家庭作业编写一个新类。
是否可以创建可以在修改后的 \maketitle 代码(例如 \tutor{} 和 \dueDate{})中使用新的宏(例如 \title{} 和 \author{}),而无需编辑 latex.ltx 文件?
在问题中如何创建类似于 \author 的新命令我正在尝试修改 article.cls,而处理的类是 memoir.cls。此外,给出的最佳解决方案是向 \author 宏添加新信息,而不是如何在序言中添加随时可用的新宏。
答案1
在 中latex.ltx
,有两行与 相关的内容\author
:
\def\author#1{\gdef\@author{#1}}
\def\@author{\@latex@warning@no@line{No \noexpand\author given}}
那么你总是可以拥有
\documentclass{article}
\makeatletter
\def\tutor#1{\gdef\@tutor{#1}}
\def\@tutor{\@latex@warning@no@line{No \noexpand\tutor given}}
\makeatother
\begin{document}
\tutor{Al Fh}
\makeatletter\@tutor\makeatother
\end{document}
现在\maketitle
使用此命令自\@tutor
定义您的
\documentclass{article}
\usepackage{array}
\makeatletter
\def\tutor#1{\gdef\@tutor{#1}}
\def\@tutor{\@latex@warning@no@line{No \noexpand\tutor given}}
\renewcommand\maketitle{%
\begin{center}
\textbf{\Huge\@title}\\[2em]
{\large\begin{tabular}{>{\bfseries}ll}
Author: & \@author\\
Tutor: & \@tutor\\
Date: & \@date
\end{tabular}}
\end{center}\par\vspace{2em}}
\usepackage{lipsum}
\begin{document}
\title{My document}
\author{Your student}
\tutor{Al Fh}
\date{\today}
\maketitle
\lipsum[1]
\end{document}