自定义环境与命令
与其他编程语言类似,latex中也可以自定义“函数”,即latex中的命令和环境。
定义新命令
定义新命令的命令主要有三个:\newcommand,\renewcommand,\providecommand,他们语法相同,都可以定义新的命令,主要区别在于\newcommand只能新建命令,如果已有重名的命令则会报错;\renewcommand相反,不能新建命令,只能修改已有的命令,如果没有同样名称的命令则会报错;\providecommand命令若没有命令则会创建新命令,若有则新定义无效。
则三个命令的语法相同,下面已\newcommand为例介绍语法。
基本语法为\newcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
命令名只能已字母开头,并且不能已\end开头。

图中是三个例子。第一个例子中,自定义的\hatedby命令输出文字#2不受#1喜欢,而输入的参数中,第一给参数是猫儿,第二个参数是萝卜,因此得到的输出如图。第二个例子中,自定义了\loves命令,输出为#2#1#3,显然输入只给出了两个参数,因此认为这两个参数分别是第二个参数和第三个参数,第一个参数使用默认值喜欢,因此得到图中结果。第三个例子中,分别给出了三个参数,只需要按照#2#1#3的顺序输出第二个、第一个、第三个参数的值即可得到结果。
定义环境
定义命令使用下面的命令
\newcommand{<环境名>}[<参数个数>][<首参数默认值>]{<环境前定义>}{<环境后定义>}
\renewcommand{<环境名>}[<参数个数>][<首参数默认值>]{<环境前定义>}{<环境后定义>}
例如下面可以定义一个摘要环境

这个例子中自定义了一个myabstract的环境。[1]表示这个环境中仅有一个参数,[摘要]表示这个参数的默认值为摘要,后面两组{}分别定义了环境前后的格式,环境前是居中small字体的参数,并开始quotation环境,环境后结束qutotation环境。这个自定义的环境相当于给quotation环境增加了一个放在前面的居中的参数。下面是引用引用命令中,没有给出参数值,因此使用默认参数摘要,因此在环境的前面居中输出摘要两个字,之后输出环境中的文字。