Esta é a melhor maneira de definir novos comandos de preâmbulo e reestruturar os já definidos?

Esta é a melhor maneira de definir novos comandos de preâmbulo e reestruturar os já definidos?

Eu tenho uma classe de látex que estende a classe de artigos do AMS amsart. Ajustei as margens e queria adicionar alguns novos parâmetros com estilo de preâmbulo, como \author{Name}, por exemplo, \class{Algebra}. Depois de fazer isso, queria que o nome do autor, a turma, a data e o título aparecessem assim quando \maketitlefor chamado. Observe que caso um deles não seja fornecido, quero que isso resulte na falta desse campo enãoum acidente. Por exemplo, se não houver preâmbulo \class{...}, deverá constar apenas o nome do aluno e a data no documento. Se não forem fornecidos o nome do aluno, o nome da turma e a data, o documento deverá começar com um título centralizado.

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

Aqui está o que eu juntei,

% 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

Honestamente, não tenho ideia de como ou por que esse código funciona porque comecei com algo e continuei por tentativa e erro até que algo funcionou. É por isso que tenho motivos para acreditar que esta pode não ser a maneira mais limpa ou melhor de conseguir o que desejo. Alguém que realmente entende de programação em látex poderia dar uma olhada e talvez dizer como eu poderia escrever isso melhor ou o que tenho é bom o suficiente?

informação relacionada