使用@编写自定义命令

使用@编写自定义命令

我正在尝试制作我的第一个 LaTeX 课程,以便更轻松地制作实验报告,我决定重新定义,\maketitle以便我可以放入我需要的信息。我的目标是实现这样的目标:

目标

为了实现这一点,我\maketitle这样重新定义:

\renewcommand{\maketitle}{
  \begin{flushright}
    \textbf{\large\@author}
  \end{flushright}

  \begin{center}
    \textbf{\Huge \@title}
  \end{center}
}

但我无法在作者下添加学生 ID。因此,我想知道如何创建一个命令,例如,\title我可以在序言中定义该命令,并使用类似于\@title但带有学生 ID 的命令来访问其内容。

编辑:

谢谢https://tex.stackexchange.com/users/226564/jairo-a-del-rio我的问题解决了,最后结果就是这样。

\newcommand{\studentid}[1]{\def\@studentid{#1}}

\renewcommand{\maketitle}{
  \begin{center}
    \textbf{\@encabezado}
  \end{center}\vspace{0.5em}
  \begin{flushright}
    \textbf{\large\@author}\\
    {\large \@studentid}
  \end{flushright}

这样,我就可以\studentid在序言中定义并在我的\maketitle定义中使用它。

答案1

我会做以下事情:

\def\studentID#1{\def\@studentID{#1}}

或者,如果你想要一些更 LaTeX 风格的东西(我以此latex.ltx为参考),你可以这样做

\DeclareRobustCommand*\studentID[1]{\gdef\@studentID{#1}}
\def\@studentID{\@latex@warning@no@line{No \noexpand\studentID given}}

\studentID当尚未初始化时,这会触发警告。

相关内容