Ist dies die beste Möglichkeit, neue Präambelbefehle zu definieren und die bereits definierten neu zu strukturieren?

Ist dies die beste Möglichkeit, neue Präambelbefehle zu definieren und die bereits definierten neu zu strukturieren?

Ich habe eine Latex-Klasse, die die AMS-Artikelklasse erweitert amsart. Ich habe die Ränder angepasst und wollte ein paar neue Parameter im Präambelstil hinzufügen \author{Name}, wie z. B. \class{Algebra}. Danach wollte ich, dass der Name des Autors, die Klasse, das Datum und der Titel beim \maketitleAufruf wie folgt angezeigt werden. Beachten Sie, dass, falls einer dieser Werte nicht angegeben wird, ich möchte, dass das Feld fehlt undnichtein Absturz. Wenn die Präambel beispielsweise nicht vorhanden ist, \class{...}sollte das Dokument nur den Namen des Studenten und das Datum enthalten. Wenn weder der Name des Studenten noch der Name der Klasse und das Datum angegeben sind, sollte das Dokument mit einem zentrierten Titel beginnen.

Student Name
Algebra
Decembruary 3, 1947
                                Centred Title
                                       .
                                       .
                                       .

Hier ist, was ich zusammengestellt habe,

% 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

Ehrlich gesagt habe ich keine Ahnung, wie oder warum dieser Code funktioniert, denn ich habe mit etwas angefangen und es mit Versuch und Irrtum so lange versucht, bis etwas irgendwie funktionierte. Deshalb habe ich Grund zu der Annahme, dass dies möglicherweise nicht der sauberste oder beste Weg ist, um das zu erreichen, was ich will. Könnte jemand, der wirklich etwas von Latex-Programmierung versteht, einen Blick darauf werfen und mir vielleicht sagen, wie ich das besser schreiben könnte oder ob das, was ich habe, gut genug ist?

verwandte Informationen