これは、新しいプリアンブル コマンドを定義し、既に定義されているコマンドを再構築する最良の方法でしょうか?

これは、新しいプリアンブル コマンドを定義し、既に定義されているコマンドを再構築する最良の方法でしょうか?

AMS 記事クラスを拡張する LaTeX クラスがありますamsart。マージンを調整し、 などの新しいプリアンブル スタイルのパラメータをいくつか追加したいと考えました\author{Name}\class{Algebra}その後、 が呼び出されたときに、著者名、クラス、日付、タイトルが次のように表示されるようにしたいと考えました\maketitle。これらのうちの 1 つが提供されていない場合は、そのフィールドが欠落し、ないクラッシュ。たとえば、前文がない場合\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 でのプログラミングを理解している方がいらっしゃいましたら、これを見て、これをもっとうまく書く方法や、これで十分かどうか教えていただけませんか?

関連情報