我正在为LaTeX编写一个文档类,我希望它是通用的.在这个文档类中,我重新定义了\maketitle显示自定义标题页面的命令,在这里我想显示一些信息,如标题,作者等,还有一些其他信息.这是我显示标题的方式:
{\LARGE{\bf \@title}}\\
我想创建一个与之类似的新命令,\title或者\author我该怎么做?
Tho*_*mas 20
如果你看一下latex.ltx你可以看到\title定义如下:
\def\title#1{\gdef\@title{#1}}
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
这些是低级TeX命令.\title是一个重新定义\@title扩展到给出的参数的命令\title.在更现代的LaTeX命令中,您自己的定义可能如下所示:
\newcommand\foo[1]{\renewcommand\@foo{#1}}
\newcommand\@foo{\@latex@error{No \noexpand\foo given}\@ehc}
最好使用\PackageError或\ClassError显示错误消息.或者,如果您想要\foo是可选的并且默认为空:
\newcommand\foo[1]{\renewcommand\@foo{#1}}
\newcommand\@foo{}
如果这不在包装内,你必须把它放在它之间\makeatletter,\makeatother因为有@迹象.
这是我在thesis.cls班上使用的示例命令.它定义了一个新命令\university,该命令作为\title或\author命令使用,默认值等于"no university".如果我\university在前导中不使用该命令,则将使用默认值.
\def\@university{no university}
\newcommand{\university}[1]{
  \def\@university{#1}
}
然后,在\maketitle命令中你可以有类似的东西:
\newcommand{\maketitle}{
  {\LARGE{\bf \@title}}\\
  {\small{\@university}}\\
}
| 归档时间: | 
 | 
| 查看次数: | 11046 次 | 
| 最近记录: |