在类文件cls中定义一个含有3个参数的命令 (LaTeX)

含有一个参数的命令定义方法已在《 一种LaTeX类文件 (cls) 与主文件 (tex)的参数传递方法》详细讨论了。但在有些情况下,我们需要将一些意义相关的参数揉和在一起,用一个命令统一来处理,而不是分别对每个参数都定义一个命令。这就像我们日常生活会将一些类型相同的书籍归类在同一个文件夹下面一样。这样做不仅方便了cls设计者的维护工作,也方便了cls的使用者,减轻了他们的心理负担。

1 代码举例

比如,我们要定义一个命令\major,它要接收三个参数,分别为专业名称这几个字的长度 (majorlen)、中文专业名称 (major)、英文专业名称 (majoreng)。当然,本文的方法不仅仅适用于3个参数,对所有含有 2 个参数的命令,都适用。在cls中的代码如下:

%-----学科专业 (比如,计算机软件与理论)名称,含英文
\newcommand{\@majorlen}{8em}
\newcommand{\@major}{}
\newcommand{\@majoreng}{}
\newcommand{\major}[3][8em]{
  \renewcommand{\@majorlen}{#1}
  \renewcommand{\@major}{#2}
  \renewcommand{\@majoreng}{#3}
}

那么如何在cls文件中提取自己需要的参数信息呢?在《 一种LaTeX类文件 (cls) 与主文件 (tex)的参数传递方法》中已经做了详细的讲解。在此重复一下,比如,我们要使用英文专业名称,在cls中的代码可以为:

 \begin{tabular}{ll}
  Title:         & \@titleeng\\
  Major:         & \@majoreng\\
  Name:          & \@authoreng\\
  Supervisor:     & \@advisortitleeng\,\, \@advisornameeng
 \end{tabular}

2 命令\major在主文件tex中的使用举例

为了验证在cls中定义的命令\major能否达到想要的效果,在tex文件中使用该命令的例子如下:

\begin{document}
 ...
 \major[12em]{计算机软件与理论}{Computer Software and Theory}
 ...
\end{document}

运行结果为:
这里写图片描述

达到了我们预期的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值