三.Latex语法基础:命令与环境
前面我们已经做好了开始编写Latex的一切准备工作,从这章开始,我们将开始讲解Latex语法
本章将讲解Latex语法的基础: 命令与环境
1.命令与环境
命令
什么是命令
不同于其他编程语言(C/C++, Python等)会使用关键词,函数和类来实现程序,Latex语法中大多以命令的形式存在
而每一个命令都会有具体的功能,如标题制作,目录制作,或者是设置文档的编码格式等等
命令的格式
Latex中的命令具体有以下三种形式
-
无参数
\commad
command就是具体的命令,例如制作标题的命令,具体如何使用在后后面进行讲解
\maketitle
-
有n个必须参数
\command{参数1}{参数2}...{参数n}
-
有n个可选参数
\command[可选参数1]...[可选参数n]
大多数的命令都是具有可选参数的命令
接下来我们看看刚才那个例子中所有的命令(注意,%
开头的表示是注释,并不会参与到编译)
%===============文章体裁:论文================
\documentclass[UTF8]{article}
%=================导言部分===================
%导入包
\usepackage{ctex}
\usepackage{authblk}
%标题制作
\title{论文示例}
\author{鸿神,\ Jack\ Wang}
\affil{School of Computer Science, XJTU}
\date{\today}
%=================正式开始书写===============
\begin{document}
\maketitle
\section{摘要}
这是一个LaTex 论文示例,由编写
\end{document}
最后显示的结果如下
其中所有的命令有
\documentclass[]{}
\usepackage{}
\usepackage{}
\title{}
\author{}
\affil{}
\date{}
\today
\begin{}
\maketitle
\section{}
\end{}
每个命令都有不同的功能,在后面我们将会进行讲解
环境
什么是环境
我们编写的文档内容为了避免代码和我们书写的正文内容混杂,我们从夹杂代码和正文内容的纯文本的连续上下文中划分出部分空间,这部分空间将作为独立的整体,我们可以将正文内容写在这些空出来的部分中
对于这些空间,我们可以提前使用一些命令,设定好这些空间的环境,即设定好这些空间的环境,即编译好之后最终的展示格式,因此环境其实就是我们为特定部分的正文设定的格式,这个特定部分可以是后面的全文,也可以是正文的部分,例如一段话,一张图片等等
例如下面的例子(\\表示换行)
%===============文章体裁:论文================
\documentclass[UTF8]{article}
\usepackage{ctex}
\begin{document}
这是一个有article,ctex,document环境的语句\\
%下面的this具有article,ctex,documnet和textbf环境
{\textbf {this}}\\
这句话也只有documentclass和document环境,没有this环境
\end{document}
编译后得到的结果如下
正如代码中提到的,我们的命令其实可以分为两种,第一种是产生效果的命令,例如制作标题的\maketitle
,另外一种就是对后文添加环境的命令
环境的作用和作用域
就像诸多编程语言中变量具有作用域,我们的环境其实也具有作用域,具体来说就是环境可以影响的正文的范围
有的环境的作用域是全文,例如上面例子中一开始的\documentclass[UTF8]{article}
就规定了文章的体裁是论文,使用的编码方式是UTF-8,其作用域就是全文
接下来的\usepackage{ctex}
指明我们将使用ctex
这个包/宏包. 包/宏包类似于编程语言的库,库中有很多写好的函数给我们使用,宏包中也有很多能够产生各种效果的命令.这里使用的ctex宏包的一个功能就是提供中文的显示和排版.所以\usepackage{ctex}
这个命令的作用域也是全文
\begin
和\end
命令用于开始和结束特定的环境,我们这里使用的\begin{document}
和\end{document}
就是开始和结束名为document
的环境,两个命令之间的内容都将受到环境document
的作用. document的作用就是展示文档, 在document环境的作用域范围内的内容在编译后都将会展示出来.
在document环境内的内容才会被展示, 而在document环境外的内容不会被展示
而通常我们会在
\begin{document}
前的非展示区进行全文的环境设置,这一部分称为导言区(Preamble)
例如在前几章的小论文的例子我们在导言区进行导包, 设定标题等内容
2.隔离上下文
接下来我们继续向下看刚才的例子,我们用上面的例子引出 隔离上下文
我们编写了这样一句话{\textbf {this}}
,命令\textbf的作用是加粗处于其作用域的文字.
我们首先看下\textbf的作用域
我们能够发现第一句仅加粗了t,而第二句加粗了整句话,而从\textbf
这句话本身来看,其作用域就是其后紧接着的一个字符(注意由于其只能作用一个字符,因此如果我们加粗的第一个字符是中文的话就会报错,因此中文汉字作为第一个字符就会报错,如下图)
但是我们发现第12行的话并没有报错,这是因为=={ }
在Latex中不仅能够作为命令的参数,还能够起到隔离上下文的作用==
由=={ }
包裹起来的话(包含其中的代码)将被视为一个字符==,因此我们第12行的一句中文能够被成功加粗
所以对于上面的第一个字符是中文字符的报错,我们使用{ }
将其括起来就行
发现报错消失,成功通过编译产生效果.
此外,我们还能够使用{ }
来隔离带有代码的文本,其中的具有作用域的命令的作用域将被限制在{ }
中
这样做的好处是方便管理环境,在正式编写的时候,我们通常将不同的段落放在不同的{ }
中来管理环境,例如(空行表示另起一段)
总结
本章讲解了什么是命令,命令的基本格式,什么是环境,以及如何隔离上下文等内容
在其中我们夹杂讲解了一些命令的作用,在接下来的文章中我们会对这些命令进行详细的讲解