购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 延伸学习

学习了LATEX文档的基本内容之后,读者应该具有LATEX文档编辑的能力了。本节在此基础上,扩展一些LATEX相关的高级使用方法:用户可以自定义命令和环境,定制个性化宏包。在文档编辑过程中,可能会遇到很多错误和警告,本节归纳了一些常见错误及警告的处理方法,供读者参考。

1.3.1 命令和环境

前面提到 LATEX 文本放在 document 环境中才能打印出来,并且介绍了其他的环境,比如quote环境。环境是放在\begin{}...\end{}里面的,有开始也有结束,这是环境的基本结构。

环境的一般格式如下。其中参数name表示环境的名称,参数arg表示可添加的其他信息,可选参数sarg表示附加信息(我们声明本文{}中的变量为参数,[]中的参数为可选参数,一个命令或环境可以有一个或多个参数和可选参数)。

例如表1.1就是在tabular环境中建立的,tabular是表格环境,可以装载很多的列表项。可以说 tabular 环境是独立于其他文本之外的部分,是一个单独的盒子,我们可以在盒子中盛放很多东西(盒子中的东西应该符合环境预定义的类型,不同环境能够装载的内容不同,如表格环境中装载的内容与文本环境中的内容不同)。

什么是命令?LATEX的语法规定,以\符号开头的一串符号可以称为命令,它具有一定的含义,能够指挥LATEX执行某些指令。例如\begin和\end就是两个命令,\begin标识一个环境的开始,\end标识一个环境的结束。到目前为止,我们已经见过诸如\title、\author、\maketitle、\newpage等命令。

在LATEX系统中预定义了非常多的命令和环境,当预定义命令和环境不能满足需求时,用户还可以进行自定义。自定义命令和环境的一般形式如下。

\newcommand和\renewcommand分别表示自定义命令和重定义命令。参数cmd为新定义的命令,可选项num表示新命令中带有的参数个数,可选项default表示默认的参数值,参数definition表示定义的内容。类似地,\newenvironment和\renewenvironment分别表示自定义环境和重定义环境。参数 name 表示新环境的名称,可选项 narg 表示参数个数,可选项default表示参数默认值,参数begdef表示开始定义的内容,参数enddef表示结束定义的内容。

自定义\emphxy命令和Abstract环境。

上述LATEX命令打印效果如下:

摘要

这是本文的 摘要部分 ,请简要概述本文内容及主要贡献,但摘要部分内容不要超过五百字。

这部分内容属于延伸学习内容,是掌握了LATEX基本使用方式方法之后的扩展。关于自定义命令和环境的详细介绍,请参考第7章,解读上述案例的命令语句。

1.3.2 错误调试

学习LATEX文档编辑很像学习某种编程语言,其中有很多命令和语法,所以在文档编辑过程中难免发生错误。本节将列举几个常出现的错误或问题,希望读者能够注意。

Undefined control sequence. 出现这个错误,很可能是因为宏包没有引入。在使用某个命令的时候,没有引入该命令支持的宏包,就不能正常编译(如果是因为引入宏包的时候拼写错误,就有些闹心了)。

Missing...inserted. 报告缺少插入某部分内容的错误,常出现在花括号不匹配的问题上。特别是在数学公式、命令定义、环境定义等使用括号较多的地方,容易出现括号嵌套却不匹配的情形。

Missing $ inserted. 这是典型的需要数学环境支持的问题。

I can't find file... LATEX找不到目标文件,可能是因为在插入外部文件的时候,没有写入正确的文件路径。

\ begin...on input line...ended by \ end... 一般是因为环境首尾不一致导致了这种错误,即环境开始\begin{name1}与结束的\end{name2}不一致。

Can be used only in preamble. 这是在提示用户,该命令只能放在导言区。

Command...already defined. \newcommand命令有检测功能,如果命令已经被定义,就会出现这样的错误提示。

Environment...undefined. 环境未定义,不能使用。

\ verb ended by end of line. 提示\verb 命令没有被定义,可能是因为\verb 配对的符号不完整导致的。

Overfull \ hbox...in... 这是水平方向上文本超出页面范围导致的警告,它不是错误,不会影响编译,但行末超出部分的文字影响美观。

Overfull \ vbox...has occurred... 这是垂直方向上文本超出页面范围导致的警告,也不是错误,但是超出的部分可能被遮盖。

There are multiply-defined labels. 文档中的标签被重复定义所致。在使用\label命令设置标签的时候,尽量不要重复命名,在编译完成之后,可以在日志 log 中查看是否有被重复定义的标签。

以上只列举了部分常见的错误或警告,相信读者在使用的时候,还会出现更多错误或者警告类型,请大家不要担心,这是正常现象。在调试错误或警告的时候,可以借助syntonly等宏包工具,也可以借助编辑器的调试功能,还可以在网络上寻找答案。

没有错误,就没有进步,相信读者能够克服所有困难,学会LATEX的使用技巧。 AYIqXAg4pqfaRyGlbFx7qdFHB0uVJ+3fUCFtymV9m0IAPCOs81woXYGz/0PNo4MK

点击中间区域
呼出菜单
上一章
目录
下一章
×