博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
latex 中括号_LaTeX中级教程:定义新命令
阅读量:6513 次
发布时间:2019-06-24

本文共 2553 字,大约阅读时间需要 8 分钟。

af12c2008387ac2ef878229e69da4191.png

作者:Daniel

LaTeX中级教程:自定义新命令

LaTeX最令人兴奋的地方是它允许用户自定义新命令。这样,我们可以创造性地、高效率地完成一些令人感到繁琐、乏味的、重复的键盘输入工作。

这样说或者有点抽象,让我来举个简单的例子:

Daniel正在编辑一本小册子,里面有很多地方需要画一些水平的横线——就像单行作业簿里的那样:

画四条长9cm的横线,横线之间增加0.5em的竖直距离可以用4个重复的\underline{9cm}\vskip 0.5em

\underline{9cm}\vskip 0.5em \underline{9cm}\vskip 0.5em \underline{9cm}\vskip 0.5em \underline{9cm}

每次都这样输入就太无趣了,而且还有可能敲错代码!快速、准确的输入这些代码是定义一个新命令,名字就叫做\fourlines, 注意每个LaTeX命令都必须以\开头。

有了这个新命令,每次需要画4条水平线的时候,只要输入这个新命令\fourlines就可以搞定了,是不是很简单!不过我们得先定义它才行,否则,编译时就会报错:

! Undefined control sequence.

定义新命令的语法是:

\newcommand{\com_name}[narg][opt]{def}

解释一下括号里面的说明:

  • \com_name是新命令的名字,必须与已有的LaTeX命令不同;
  • narg是1~9之间的数字,用以说明新命令包含几个参数;
  • opt是可选参数的默认值;
  • def部分是新命令的定义。

看起来是不是有点复杂?没关系,我们从简单的开始,先看没有参数的新命令。

不带参数的新命令

例1 上面的例子中\fourlines可以如下定义:

\newcommand{\fourlines}{
\underline{9cm}\vskip 0.5em \underline{9cm}\vskip 0.5em \underline{9cm}\vskip 0.5em \underline{9cm} }

这个新命令\fourlines没有参数,它的作用就是代替def中的部分,这几行代码一般放在导言区,就是\documentclass{}\begin{document}之间。

定义好了以后, LaTeX每次遇到命令\fourlines时,就执行def里面的四个画线命令。

简单地说,这种新命令就像数学中的换元法,用简单的字符串代替复杂的字符串。

带一个参数的新命令

Daniel在出数学试卷时,会遇到填空题,需要在题目后面画一条给定长度的短横线——比如3cm,并在横线后面加一个句点,他可以这样写:\underline{\hspace{3cm}}.但这样做的缺点是,每个题目后面需要输入一次,很繁琐。我们可以像例1中一样定义一个新命令\blank来完成。

可是,有时候我们需要这条横线的长度具有弹性,可以适应需要填写的内容的长度,即内容较长时,画一条较长的线,这时我们可以定义一个带参数的新命令——\blank{},这样可以在大括号里面指定横线的长度。

例2 定义一个带参数的命令\blank{n}用来画一条长度为n厘米的横线,并在末尾加一个数学的句点。

\newcommand{\blank}[1]{\underline{\hspace{#1 cm}}.}

我们说说例2与例1的区别:

  • 例2中在{\com_name}{def}之间多了一个[1],在命令的def里面多了一个#1
  • [1]指明这个新命令有一个参数,使用这个命令时, 要在大括号里指明参数的值,这样\blank{4}就是画一条长为4cm的横线,并加一个句点;
  • def里面的#1是一个变量,只执行命令\blank{4}时,LaTex会将4赋予#1

带可选参数的新命令

大多数情况下,填空题后面的短横线可以设定一个默认长度,比方说2cm, 少数情况下需要指定另外一个值。这时,我们可以修改例2中的命令的定义,使它变得更加灵活好用。方法是增加一个可选参数opt,我们要用\newcommand{\com_name}[narg][opt]{def}这个完整的形式。opt指定参数#1的默认值,这里设为2。

例3 定义一个新命令\blank,用来画一条短横线,末尾加一个句点,使得没有给参数时,横线默认长度为2cm,给定参数为n时,横线长度为ncm。

\newcommand{\blank}[1][2]{\underline{\hspace{#1 cm}}.}

这里有两个中括号,说明命令\blank带有一个可选参数,第一个中括号里的1指明这个命令只有一个参数,第二个中括号里的数字2说明参数的默认值是2, 不需要带单位cm, 是因为定义里面已经有单位了。

这样,我们若需要画2cm的横线,就使用\blank就可以了,因为2是默认参数的值,若要画一条3cm的横线,则要用\blank[3], 注意这里的参数必须用中括号,而不是大括号,因为这是指定可选参数,而不是普通参数。

通过上面三个例子,你学会了自定义新命令了吗?下面的两个练习可以帮你学以致用:

练习

(1) 定义过一个新命令\xvec,用来输入向量: ;

(2) 定义一个带一个参数的命令\avec,用来输入向量:,

带几个参数的新命令

上面的例子都是一个参数的简单情形,其实新命令也可以有多个参数的,这样使得命令更具有灵活性。

例4 修改上面练习中的命令\avec,使得它可以输入更一般的向量:,。

\newcommand{\avec}[3]{(#1_{#2},\cdots,#1_{#3})}

这样,输入命令\avec{\alpha}{s}{t}就得到:了。

586246e3e75f197d38497dd20b46b8b9.png

 LATEX 初级篇                      

不可不知的22个 WinEdt 使用技巧

论文的结构和tex源文件的结构

无编号数学公式的输入

array 环境和矩阵、行列式、表格

矩阵、行列式的输入

LaTeX公式编号及引用

LaTeX初级教程:列表

LaTeX表格的编制

LaTeX初级教程:插入图片

LaTeX初级教程:参考文献的编写(上)

LaTeX初级教程:参考文献的批量添加及引用(下)

6802aad29d9ac835da12ea7523c0cfe5.png

转载地址:http://avifo.baihongyu.com/

你可能感兴趣的文章
使用Spring Cloud和Docker构建微服务
查看>>
九州云实战人员为您揭秘成功部署OpenStack几大要点
查看>>
医疗卫生系统被爆漏洞,7亿公民信息泄露……
查看>>
CloudCC:智能CRM究竟能否成为下一个行业风口?
查看>>
追求绿色数据中心
查看>>
Web开发初学指南
查看>>
探寻光存储没落的真正原因
查看>>
高通64位ARMv8系列服务器芯片商标命名:Centriq
查看>>
中国人工智能学会通讯——融合经济学原理的个性化推荐 1.1 互联网经济系统的基本问题...
查看>>
戴尔为保护数据安全 推出新款服务器PowerEdge T30
查看>>
今年以来硅晶圆涨幅约达40%
查看>>
构建智能的新一代网络——专访Mellanox市场部副总裁 Gilad Shainer
查看>>
《数字视频和高清:算法和接口》一导读
查看>>
《中国人工智能学会通讯》——6.6 实体消歧技术研究
查看>>
如何在Windows查看端口占用情况及查杀进程
查看>>
云存储应用Upthere获7700万美元股权债务融资
查看>>
国家互联网应急中心何世平博士主题演讲
查看>>
洗茶,你误会了多少年?
查看>>
贵阳高新区力争打造“千亿级大数据园区”
查看>>
安防众筹不止于卖产品 思维拓展刺激消费
查看>>