
У меня есть класс latex, который расширяет класс статьи AMS amsart
. Я отрегулировал поля и хотел добавить несколько новых параметров в стиле преамбулы \author{Name}
, например, \class{Algebra}
. После этого я хотел, чтобы имя автора, класс, дата и заголовок отображались так, когда \maketitle
вызывается. Обратите внимание, что в случае, если один из них не указан, я хочу, чтобы это привело к отсутствию этого поля инетсбой. Например, если преамбула отсутствует, \class{...}
то в документе должно быть только имя студента и дата. Если не указано ни имя студента, ни название класса, ни дата, то документ должен начинаться с центрированного заголовка.
Student Name
Algebra
Decembruary 3, 1947
Centred Title
.
.
.
Вот что я собрал,
% this handles the info tags at the beginning
\makeatletter
% defining new variables
\gdef\@class{\empty}
\def\author#1{\gdef\@author{#1\\}}
\def\class#1{\gdef\@class{#1\\}}
\renewcommand{\maketitle} {
\bgroup
\setlength{\parindent}{0em}
\begin{flushleft}
\ifx\@author\empty \else \@author\fi
\ifx\@class\empty \else \@class\fi
\@date
\end{flushleft}
\egroup
\begin{center}
\textbf{\@title} \\
\end{center}
\bigskip
}
\makeatother
Честно говоря, я понятия не имею, как или почему этот код работает, потому что я начал с чего-то и продолжал методом проб и ошибок, пока что-то не заработало. Вот почему у меня есть основания полагать, что это может быть не самым чистым или лучшим способом добиться того, чего я хочу. Может ли кто-то, кто действительно понимает программирование в latex, взглянуть и, возможно, сказать, как я мог бы написать это лучше или то, что у меня есть, достаточно хорошо?