这是定义新的前导命令和重组已定义的前导命令的最佳方法吗?

这是定义新的前导命令和重组已定义的前导命令的最佳方法吗?

我有一个扩展 AMS 文章类的 latex 类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

老实说,我不知道这段代码是如何或为什么会起作用的,因为我从一些东西开始,然后不断尝试,直到有一些东西起作用。这就是为什么我有理由相信这可能不是实现我想要的最干净或最好的方法。有没有人真正了解乳胶编程,可以看看,也许可以告诉我如何写得更好,或者我所拥有的已经足够好了?

相关内容