LaTeX教学2.7定制

在LaTeX中,很多命令和环境都不能满足我们的需求,所以我们需要自己设计一些简单的命令和环境来方便我们的编写,自定义的命令和环境会更好的为我们服务。

首先给出自定义命令的命令:\ new command { }[& lt;参数个数>][& lt;默认值>]{ & lt;定义内容> }。

它允许作者定义新的命令。该命令的必要和可选参数描述如下。new命令两端的花括号可以省略,但不建议省略。

新命令是声明性命令,通常放在引言中,这样就可以在全文中使用。如果放在文本中,只能在命令声明的内容中使用,或者在环境和组合中使用,即在环境中定义的命令不能在环境外使用,在花括号中定义的命令不能在花括号中使用,如{ \ new command { \cmdA } { a } \ CmdA } \ CmdA,花括号中的\ CmdA会正常输出a,而花括号外的\ CmdA会报错。此外,自定义命令的参数不得包含转录命令\动词或逐字转录环境。

自定义命令,以便它可以生成您自己的名称。

但是,似乎又出现了一些新的问题。就像我们在指挥一节说的,中昊孙后面的空位又少了。原因应该很明显。自定义命令后的空格被视为命令结束的标志,使得Sun和之间的空格丢失。那我们为什么不在自定义命令中主动添加一个空格呢?这也没有好处,因为如果你这样做,第二句话中的'之前就会多一个空格。如何解决这个问题?xspace宏包解决了这个问题。调用宏包\usepackage{xspace}并将上面的定义更改为

中昊太阳\ x空间

是的,命令\xspace可以自动生成一个空格,除非它后面跟有标点符号。再试一次,自定义命令完成。

在上面的例子中,新命令\myname \被定义为您自己的名字。每次使用该命令时,都可以生成一个名称。对于纸张排版中出现的大量文字,可以简化成自定义命令,提高输入效率,防止出错。

自定义一个带参数的命令,将一些文本转换成相应的中文字体。

在上面的自定义命令中,定义了一个必要的参数:font,用来选择需要的字体。以下是可选参数和必要参数的示例:

使用可选参数可以简化命令,使其更加灵活,但是可选参数也更容易忘记。这里我们只选择改变字体的命令作为例子,也可以自己尝试其他命令。

带星号的自定义命令:如果将自定义命令改为\newcommand*,区别在于命令中的各种参数不能超过一行,即命令不能包含换行符或\par,否则会出错。

系统仍然提供一个命令来防止同名冲突:\ provide command { }[& lt;参数个数>][& lt;默认值>]{ & lt;Define content > },这样定义的新命令会检查被调用的宏包是否提供了同名命令,定义的内容会一直保存,直到提供同名命令的宏包被取消。另外,如果你想用可选的子参数定制命令,可以调用keycommand宏包,使用命令\newkeycommand。具体用法可以查看宏包文档。

如果我们对一个命令或系统内定义的命令的排版效果不满意,可以修改:

这个命令只能用来修改已有的命令,重新定义已有的命令并不容易,因为原来的意思可能隐藏了你需要但还没注意到的东西。如果真的需要重新定义,应该先搞清楚现有命令的定义,然后再修改。类似地,修改命令也有相应的星号形式\renewcommand*

如果我们没有找到自己满意的环境,那么我们也可以自定义一个环境,就像自定义命令一样,如下。

然后,您可以使用这个新环境:

新环境定义命令中各种参数的用途如下

自定义定理环境的示例:

\quad在定义中是一种长度设置命令,我们会在数学公式一章中更详细的介绍。开始定义和结束定义中的\par都需要开始一个新段落。如果我们需要在它们后面添加一些定理的名称,我们可以使用带有可选参数的自定义环境,如下例所示。

我们看已完成的论文中的定理和定义都是有序号的,如何把这个序号加到定理中会在下一节计数器中介绍。

与修改现有命令一样,该命令是:

类似地,修改现有环境和定义新环境的命令也有编号形式\renewenvironment*和\newenvironment*,它们与修改现有命令的格式相同。

使用自定义命令或环境时,可能会生成不必要的空格。如果你想消除空格,你可以在定义内容或定义新环境时分别使用以下命令:

自定义两个参考环境,第二个使用忽略空格命令比较两者的排版效果。

还会有自定义的情况,比如自定义计数器,会在相应章节介绍。