LaTeX入门

1. 什么是LaTeX

1)百度百科

LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
链接LaTeX

2)维基百科

LaTeX is a document preparation system.When writing, the writer uses plain text as opposed to the formatted text found in “What You See Is What You Get” word processors like Microsoft Word, LibreOffice Writer and Apple Pages. The writer uses markup tagging conventions to define the general structure of a document (such as article, book, and letter), to stylise text throughout a document (such as bold and italics), and to add citations and cross-references. A TeX distribution such as TeX Live or MikTeX is used to produce an output file (such as PDF or DVI) suitable for printing or digital distribution.
链接LaTeX

3)官方介绍

LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.
链接LaTeX

4)通俗介绍

LaTeX是一种排版系统,相比于我们平时常用的办公软件(如Microsoft Office Word等)更适用于学术的研究。

2.LaTeX优缺点

本质上,LaTeX与以Microsoft Office Word 为代表的“所见即所得”(What You See Is What You Get)字处理工具之间的对比是没有意义的,毕竟LaTeX是排版引擎TeX的封装,而Word是一种字处理工具。两者的设计目标以及适用范围是完全不同的,因此也不具有可比性。

不过,这里依然总结LaTeX的一些优点[3]:

  • 具有专业的排版输出能力,产生的文档看上去就像“印刷品”一样。
  • 具有方便而强大的数学公式排版能力,无出其右者。
  • 绝大多数时候,用户只需专注于一些组织文档结构的基础命令,无需(或很少)操心文档的版面设计。
  • 很容易生成复杂的专业排版元素,如脚注、交叉引用、参考文献、目录等。
  • 能够促使用户写出结构良好的文档——而这也是LaTeX 存在的初衷。

而LaTex的缺点也是显而易见的:

  • 入门门槛高。由于LaTeX的排版依靠代码实现,因此具有较高的入门门槛,很多人都会花很长时间最终实现LaTeX的从入门到精(放)通(弃)的过程。
  • 不容易排查错误。LATEX 作为一个依靠编写代码工作的排版工具,其使用的宏语言比C++或Python 等程序设计语言在错误排查方面困难得多。它虽然能够提示错误,但不提供调试的机制,有时错误提示还很难理解。
  • 不容易定制样式。LATEX 提供了一个基本上良好的样式,为了让用户不去关注样式而专注于文档结构。但如果想要改进LATEX 生成的文档样式则是十分困难。
  • 相比“所见即所得”的模式有一些不便,为了查看生成文档的效果,用户总要不停地编译。
  • 不易更改。一般情况下由LaTeX生成的文本为PDF格式,因此每次需要对文本进行修改的时候,都需要花时间对整篇文本重新进行编译。

3、使用LaTeX完成一篇论文的基本排版

1)第一次使用LaTeX

在大家顺利完成安装、环境配置等工作的前提下,我们便可以开始尝试使用LaTeX敲代码了。首先附上一段我们最熟悉的代码示例。

\documentclass{article}
\begin{document}
	Hello world!
\end{document}

完成后点击上方编辑器提供的“编译”按钮或者直接按下F6便可完成编译。和学习C++等其他语言的过程一样,当看到“Hello World!”出现时,就代表我们正式开始学习LaTeX了。至于代码的细节,我们会在后续小节的学习中慢慢学习。

2)LaTeX文件结构

一个标准的LaTeX文件分为两个部分:导言区和正文区。其中,在\begin{document}\end{document}之间的内容为文档的正文区。在\begin{document}之前的命令为文档的导言,通常用于进行全局设置,如定义文档的格式、语言以及调用各种宏包等。如在以下LaTeX文档中便可以以此进行划分:

%------------------------------------------------------------------
%                              导言区

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{ctex}
\usepackage{mathtools}
\usepackage{comment} 

% Title
\title{My First Document}
\author{QQ邮箱提醒}
\date{\today}

%------------------------------------------------------------------
%                              正文区
\begin{document}	

	\begin{titlepage}
		\maketitle
	\end{titlepage}
	
	\begin{abstract}
		This is a simple paragraph at the beginning of the document
		A brief introduction about the main subject.
	\end{abstract}
	
	Hello World!
	
	% Comments 
	\begin{comment}
		This text won't show up in the compiled pdf
		this is just a multi-line comment.
	\end{comment}
	
\end{document} 
%---------------------------------------------------

到现在,我们已经明白了怎么划分LaTeX文件的导言和正文,接下来,我们就将进行较为详细的介绍。

3)导言部分命令介绍

(1)设置文档类型

LaTeX 源代码的开头须用 \documentclass指定文档类:

\documentclass[keyvals]{class}

其中class参数为文档类的名称,如如LaTeX 提供的article, book, report,在其基础上派生的一些文档类如支持中文排版的ctexart/ctexbook/ctexrep,或者有其它功能的一些文档类,如moderncv/beamer 等LaTeX 提供的基础文档类见表1,其中前三个习惯上称为“标准文档类”。

表1 LaTeX提供的基础文档类
classintroduce
article文章格式的文档类,广泛用于科技论文、报告、说明文档等。
report长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单的书籍等。
book书籍文档类,包含章节结构和前言、正文、后记等结构。
proc基于article 文档类的一个简单的学术文档模板。
slides幻灯格式的文档类,使用无衬线字体。
minimal一个极其精简的文档类,只设定了纸张大小和基本字号,用作代码测试的最小工作示例(Minimal Working Example)。

可选参数keyvals用于为文档类指定选项,以全局地规定一些排版的参数,如字号、纸张大小、单双面等等。比如调用article 文档类排版文章,指定纸张为A4 大小,基本字号为12pt,双面排版:

\documentclass[12pt,twoside,a4paper]{article}

LaTeX 的三个标准文档类可指定的选项包括:

表2 文档格式修正项
keyvalsintroduce
10pt, 11pt, 12pt指定文档的基本字号。默认为10pt。
a4paper, letterpaper, …指定纸张大小,默认为美式信纸letterpaper (8.5×11英寸),可指定选项还包括a5paper,b5paper,executivepaper 和legalpaper。
twoside, oneside指定单面/双面排版。双面排版时,奇偶页的页眉页脚、页边距不同。article和report 默认为oneside,book 默认为twoside。
onecolumn, twocolumn指定单栏/双栏排版。默认为onecolumn。
openright, openany指定新的一章\chapter 是在奇数页(右侧)开始,还是直接紧跟着上一页开始。report 默认为openany,book 默认为openright。对article 无效。
landscape指定横向排版。默认为纵向。
titlepage, notitlepage指定标题命令\maketitle 是否生成单独的标题页。article 默认为notitlepage,report 和book 默认为titlepage。
fleqn令行间公式左对齐。默认为居中对齐。
leqno将公式编号放在左边。默认为右边。
draft, final指定草稿/终稿模式。草稿模式下,断行不良的地方会在行尾添加一个黑色方块。默认为final。

(2)调用宏包

在使用LaTeX 时,时常需要依赖一些扩展来增强或补充LATEX 的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等等。这些扩展称为宏包。\usepackage就是用来调用宏包,格式为:

\usepackage{package}

例如:

\usepackage{graphicx}

当然\usepackage指令也可以一次性调用多个宏包,宏包之间用逗号隔开,如:

\usepackage{tabularx, makecell, multirow}

(3)封面格式

\title{Document Title}
\author{auther's names}
\date{Date}

在导言区设置所要生成的文档封面的标题、作者以及日期等。后两项的值可以忽略,若需要忽略其中一项,只需要将大括号中的参数设置为空即可。
另外,在此处仅仅只是设置了封面的格式,而实际生成封面的指令为正文区的\maketitle

4)LaTeX中的字符

(1)空格和分段

LaTeX 源代码中,空格键和Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。
行末的回车视为一个空格;但连续两个回车,也就是空行,会将文字分段。多个空行被视为一个空行。也可以在行末使用\par命令分段。

(2)注释

LaTeX 用%字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,行末的回车也不引入空格。

(3)特殊字符

以下字符在LaTeX 里有特殊用途,如%表示注释,$^_等用于排版数学公式,&用于排版表格,等等。直接输入这些字符得不到对应的符号,还往往会出错:

#  $  %  &  {  }  _  ^  ~  \

如果想要输入以上符号,需要使用以下带反斜线的形式输入:

\#   \$   \%   \&   \{   \}   \_  \^{}   \~{}   \textbackslash

事实上这些带反斜线的形式就是LaTeX 命令。\^\~两个命令是需要带参数的,如果不加一对花括号(空参数),就将后面的字符作为参数,形成重音效果。\\被直接定义成了手动换行的命令,输入反斜杠就只好用\textbackslash

(4)标点符号

中文的标点符号(绝大多数为非ASCII 字符)使用中文输入法输入即可,一般不需要过多留意。而在英文标点符号上,有许多需要留意的地方。

引号

LaTeX的单引号‘ ’用 ` 和 '输入;双引号“ ”用 ``和 ''输入(虽然" 也能表示双引号,
但没有合适的单个符号用来表示前双引号,所以不常用在正文)。

连字号和破折号

LATEX 中有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash)。它们分别有不同的用途:连字号 -用来组成复合词;短破折号 用来连接数字表示范围;长破折号 用来连接单词,与中文语境中的破折号用法类似。

省略号

LATEX 提供了命令\ldots来生成省略号,相对于直接输入三个点的方式更为合理。\ldots\dots是两个等效的命令。

(5)断行与断页

LaTeX 将文字段落在合适的位置进行断行,尽可能做到每行的宽度一致,并且单词间距匀称。文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面。在绝大多数时候,我们无需自己操心断行和断页。但偶尔会遇到需要手工调整的地方。

单词间距和断行

在西文排版实践中,断行的位置尽可能选取在两个单词之间,也就是用户在源文件中输入的“空格”。这个“空格”通常生成一个间距,它会根据行宽和上下文自动调整,文字密一些的地方,单词间距就略窄,反之略宽。
我们可以使用字符~在合适的位置插入一个不会断行的空格,通常用在英文人名、图表名称等场景。

手动断行与断页

如果我们确实需要手动断行,可使用如下命令:

\\[⟨length⟩]
\newline

它们有两点区别:一是\\可以带可选参数⟨length⟩,用于在换行处向下增加垂直间距,而\newline不带可选参数;二是\\也在表格、公式等地方用于分行,而\newline只用于文本段落中。
断页的命令有两个:

\newpage or \clearpage

通常情况下两个命令都能起到另起一页的作用,但有一些区别:一是在双栏排版中\newpage只起到另起一栏的作用;二是涉及到浮动体的排版上行为不同。

5)文档元素

(1)章节和目录

章节标题

一篇结构化的、条理清晰文档一定是层次分明的,通过不同的命令分割为章、节、小节。三个标准文档类article、report 和book提供了划分章节的命令:

\chapter{⟨title⟩}  \section{⟨title⟩}  \subsection{⟨title⟩}  \subsubsection{⟨title⟩}  \paragraph{⟨title⟩}  \subparagraph{⟨title⟩}

其中\chapter只在book 和report文档类有定义。这些命令生成章节标题,并能够自动编号。除此之外LaTeX还提供了\part命令,用来将整个文档分割为大的分块,但不影响\chapter\section等的编号。

目录

再合适的地方使用\tableofcontents命令可以自动生成文档的目录。

(2)封面

使用\maketitle命令可以成功生成在导言区设置完格式的的文档封面。article文档类的标题默认不单独成页,而report和book默认单独成页。可在\documentclass命令调用文档类时指定titlepage/ notitlepage选项以修改默认的行为。

(3)设置页码

默认情况下,页码从第一页开始(通常是包含标题页的)并且以阿拉伯数字形式显示(例如:1,2,3 …)。我们可以使用

\pagenumbering{digit type}

来改变页码的显示风格。LaTeX中页码风格包含以下五类:

  • arabic- 阿拉伯数字
  • roman- 小写的罗马数字
  • Roman- 大写的罗马数字
  • alph- 小写的字符形式
  • Alph-大写的字符形式

如果要手动设置某一页的页码,可以使用

\setcounter{page}{number}

如果想让当前页不标注页码,可以使用

\thispagestyle{empty}

想让后续所有页都不标注页码,可以使用

\pagestyle{empty}

(4)交叉引用

交叉引用是LaTeX 强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公式、图表、定理等位置使用\label命令:

\label{⟨label-name⟩}

之后可以在别处使用\ref\pageref命令,分别生成交叉引用的编号和页码:

\ref{⟨label-name⟩}  
\pageref{⟨label-name⟩}

\label命令可用于记录各种类型的交叉引用,使用位置分别为:

  • 章节标题在章节标题命令\section等之后紧接着使用。
  • 行间公式单行公式在公式内任意位置使用;多行公式在每一行公式的任意位置使用。
  • 有序列表enumerate环境的每个\item命令之后、下一个\item命令之前任意位置使用。
  • 图表标题在图表标题命令\caption之后紧接着使用。
  • 定理环境在定理环境内部任意位置使用。

(5)特殊环境

列表

LATEX 提供了基本的有序和无序列表环境enumerateitemize,两者的用法很类似,都用\item标明每个列表项。enumerate环境会自动对列表项编号。

\begin{enumerate}
\item …
\end{enumerate}

其中\item可带一个可选参数,将有序列表的计数或者无序列表的符号替换成自定义的符号。列表可以嵌套使用,最多嵌套四层。

对齐环境

centerflushleftflushright环境分别用于生成居中、左对齐和右对齐的文本环境。

\begin{center} … \end{center}
\begin{flushleft} … \end{flushleft}
\begin{flushright} … \end{flushright}

除此之外,还可以用以下命令直接改变文字的对齐方式:

\centering   \raggedright   \raggedleft

三个命令和对应的环境经常被误用,有一点可以将两者区分开来:center等环境
会在上下文产生一个额外间距,而\centering等命令不产生,只是改变对齐方式。比如在浮动体环境tablefigure内实现居中对齐,用\centering命令即可,没必要再用center环境。

引用环境

LaTeX提供了两种引用的环境:quote用于引用较短的文字,首行不缩进;quotation用于引用若干段文字,首行缩进。引用环境较一般文字有额外的左右缩进。
verse用于排版诗歌,与quotation恰好相反,verse是首行悬挂缩进的。

摘要环境

摘要环境abstract默认只在标准文档类中的article和report文档类可用,一般用于紧跟\maketitle命令之后介绍文档的摘要。如果文档类指定了titlepage选项,则单独成页;反之,单栏排版时相当于一个居中的小标题加一个quotation环境,双栏排版时相当于\section*定义的一节。

代码环境

有时我们需要将一段代码原样转义输出,这就要用到代码环境verbatim,它以等宽字体排版代码,回车和空格也分别起到换行和空位的作用。
要排版简短的代码或关键字,可使用\verb命令:

\verb⟨delim⟩⟨code⟩⟨delim⟩

⟨delim⟩标明代码的分界位置,前后必须一致,除字母、空格或星号外,可任意选择使得不与代码本身冲突,习惯上使用|符号。

(6)表格

LaTeX 里排版表格不如Word等所见即所得的工具简便和自由,不过对于不太复杂的表格来讲,完全能够胜任。
排版表格最基本的tabular环境用法为:

\begin{tabular}{⟨column-spec⟩}
⟨item1⟩ & ⟨item2⟩ & … \\\\
\hline
⟨item1⟩ & ⟨item2⟩ & … \\\\
\end{tabular}

其中⟨column-spec⟩是列格式标记;&用来分隔单元格;\\用来换
行;\hline用来在行与行之间绘制横线。
直接使用tabular环境的话,会和周围的文字混排。tabular环境可带一个可选参数控制垂直对齐(默认是垂直居中)。但是通常情况下我们不这么用,tabular环境一般会放置在table 浮动体环境中,并用\caption命令加标题。
tabular环境使用⟨column-spec⟩参数指定表格的列数以及每列的格式。基本的列格式如下

列格式说明
l/c/r单元格内容左对齐/居中/右对齐,不折行
p{⟨width⟩}单元格宽度固定为⟨width⟩,可自动折行
|绘制竖线

如以下代码编译后的结果为

\begin{tabular}{| l || c | c | c | r |}
	\hline
	姓名 & 语文 & 数学 & 英语 & 备注 \\
	\hline \hline
	张三 & 80 & 82 & 93 & 优秀 \\
	\hline
	李四 & 58 & 52 & 44 & 不及格 \\
	\hline
\end{tabular}

编译结果

(7)图片

LaTeX 本身不支持插图功能,需要由graphicx宏包辅助支持。在调用了graphicx宏包以后,就可以使用\includegraphics命令加载图片了:

\includegraphics[⟨options⟩]{⟨filename⟩}

其中⟨filename⟩为图片文件名,与使用\include命令类似,文件名有时需要使用相对路径或绝对路径。图片文件的扩展名可写可不写。另外graphicx宏包还提供了\graphicspath命令,用于声明一个或多个图片文件存放的目录,使用这些目录里的图片时可不用写路径:

\graphicspath{{figures/}{logo/}}   %主要的图片放在figures子目录下,标志放在logo子目录下

\includegraphics命令的可选参数⟨options⟩支持⟨key⟩=⟨value⟩形式赋值,常用的参数如下:

参数含义
width=⟨width⟩将图片缩放到宽度为⟨width⟩
height=⟨height⟩将图片缩放到高度为⟨height⟩
scale=⟨scale⟩将图片相对于原尺寸缩放⟨scale⟩
angle=⟨angle⟩令图片逆时针旋转⟨angle⟩

(8)浮动体

内容丰富的文章或者书籍往往包含许多图片和表格等内容。这些内容的尺寸往往太大,导致分页困难。LaTeX 为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置。
LATEX 预定义了两类浮动体环境figuretable。习惯上figure里放图片,table里放表格,但并没有严格限制,可以在任何一个浮动体里放置文字、公式、表格、图片等等任意内容。
table环境的用法举例,figure同理:

\begin{table}[⟨placement⟩]
…
\end{table}

⟨placement⟩参数提供了一些符号用来表示浮动体允许排版的位置,如hbp允许浮动体排版在当前位置、底部或者单独成页。table 和figure 浮动体的默认设置为tbp

参数含义
h当前位置(代码所处的上下文)
t顶部
b底部
p单独成页
!在决定位置时忽视限制

浮动体的位置选取受到先后顺序的限制。如果某个浮动体由于参数限制、空间限制等原因在当前页无法放置,就要推迟到之后处理,并使得之后的同类浮动体一并推迟。\clearpage命令会在另起一页之前,先将所有推迟处理的浮动体排版成页,此时htbp等位置限制被完全忽略。

6)排版数学公式

若文档中需要出现数学公式,那么一般会在导言区导入amsmathamssymb等宏包。

(1)公式排版基础

数学公式有两种排版方式:其一是与文字混排,称为行内公式;其二是单独列为一行排版,称为行间公式
行内公式由一对$号包裹:

$a^2 + b^2 = c^2$

单独成行的行间公式在LATEX 里由equation环境包裹。equation环境为公式自动生成一个编号,这个编号可以用\label和```ref生成交叉引用,amsmath\eqref`命令甚至为引用自动加上圆括号;还可以用\tag命令手动修改公式的编号,或者用\notag命令取消为公式编号(与之基本等效的命令是\nonumber
如果需要直接使用不带编号的行间公式,则将公式用命令\[\]包裹,与之等效的是displaymath环境。有的人更喜欢equation*环境,体现了带星号和不带星号的环境之间的区别。

(2)数学模式

当你使用$开启行内公式输入,或是使用\[命令、equation环境时,LaTeX 就进入了数学模式。数学模式相比于文本模式有以下特点:

  1. 数学模式中输入的空格被忽略。数学符号的间距默认由符号的性质(关系符号、运算符等)决定。需要人为引入间距时,使用\quad\qquad等命令。
  2. 不允许有空行(分段)。行间公式中也无法用\\命令手动换行。排版多行公式需要用到接下来要介绍的各种环境。
  3. 所有的字母被当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词之间的空格。如果想在数学公式中输入正体的文本,简单情况下可用\mathrm命令。或者用amsmath提供的\text命令。

(3)数学符号

希腊字母符号的名称就是其英文名称,如 α \alpha α(\alpha)、 β \beta β(\beta) 等等。大写的希腊字母为首字母大写的命令,如 Γ \Gamma Γ (\Gamma)、 Δ \Delta Δ(\Delta) 等等。无穷大符号为 ∞ \infty (\infty)。
省略号有...(\dots) 和···(\cdots) 两种形式。
\ldots\dots是完全等效的,它们既能用在公式中,也用来在文本里作为省略号除此之外,在矩阵中可能会用到竖排的 ⋮ \vdots (\vdots) 和斜排的 ⋱ \ddots (\ddots)。

指数、上下标和导数

在LATEX 中用^_标明上下标。注意上下标的内容(子公式)一般需要用花括号{}包裹,否则上下标只对后面的一个符号起作用。
导数符号'是一类特殊的上标,可以适当连用表示多阶导数,也可以在其后连用上标:

$f ’ ’ ^ {x} (2)$

分式和根式

分式使用\frac{分子}{分母}来书写。分式的大小在行间公式中是正常大小,而在行内被极度压缩。
一般的根式使用\sqrt{...};表示n次方根时写成\sqrt[n]{...}
特殊的分式形式,如二项式结构,由amsmath宏包的\binom命令生成。

关系符

LATEX 常见的关系符号除了可以直接输入的=><,其它符号用命令输入,常用的有不等 ≠ \ne =(\ne)、大于等于号 ≥ \ge (\ge) 和小于等于号 ≤ \le (\le)、约等号 ≈ \approx (\approx)、等价 ≡ \equiv (\equiv)、正比 ∝ \propto (\propto)、相似 ∼ \sim (\sim) 等等。
LATEX 还提供了自定义二元关系符的命令\stackrel,用于将一个符号叠加在原有的二元关系符之上。

其他符号

其余常见的符号可见[3]。

(4)多行公式

长公式折行

通常来讲应当避免写出超过一行而需要折行的长公式。如果一定要折行的话,习惯上优先在等号之前折行,其次在加号、减号之前,再次在乘号、除号之前。其它位置应当避免折行。amsmath宏包的multline环境提供了书写折行长公式的方便环境。它允许用\\折行,将公式编号放在最后一行。多行公式的首行左对齐,末行右对齐,其余行居中。

多行公式

更多的情况是,我们需要罗列一系列公式,并令其按照等号对齐。目前最常用的是align环境,它将公式用&隔为两部分并对齐。分隔符通常放在等号左边:

\begin{align}
	x &= t + \cos t +1 \\
	y &= 2\sin{t+1}
\end{align}

在这里插入图片描述
align环境会给每行公式都编号。我们仍然可以用\notag去掉某行的编号,或者用align*生成不带编号的公式。
align还能够对齐多组公式,除等号前的&之外,公式之间也用&分隔:

\begin{align*}
	x &=t & x &= \cos t & x &=t \\
	y &= 2t & y &= \sin(t+1) & y &= \sin t
\end{align*}

在这里插入图片描述
当然,如果我们不需要按等号对齐,只需罗列数个公式,gather将是一个很好用的环境。

(5)数组和矩阵

为了排版二维数组,LaTeX提供了array环境,用法与tabular环境极为类似,也需要定义列格式,并用\\换行。
我们当然也可以用array环境排版各种矩阵。amsmath宏包还直接提供了多种排版矩阵的环境,包括不带定界符的matrix,以及带各种定界符的矩阵pmatrix ( ( (),bmatrix [ [ [),Bmatrix { \{ {)、vmatrix ∣ | )、Vmatrix ∣ ∣ || )。使用这些环境时,无需给定列格式:

(6)公式中的间距

除了\quadqquad在公式中我们可能用到的间距包括\,\:\;以及负间距\!,其中\quad\qquad\,在文本和数学环境中可用,后三个命令只用于数学环境。
在这里插入图片描述

7)排版样式设定

(1)字体和字号

字体样式

LaTeX 提供了两组修改字体的命令,其中诸如\bfseries形式的命令将会影响之
后所有的字符,如果想要让它在局部生效,需要用花括号分组,也就是写成{\bfseries⟨some text⟩}这样的形式;对应的\textbf形式带一个参数,只改变参数内部的字体,更为常用。
在公式中,直接使用\textbf等命令不会起效,甚至报错。
以下是一些常见的命令:

模块命令含义命令含义命令含义命令含义
字体族设置\textrm罗马字体\textsf无衬线字体\texttt打字机字体
字体系列设置\textmd中等宽度\textbf黑体
字体形状\textup直立\textit斜体\textsl伪斜体
中文字体\songti宋体\heiti黑体\fangsong仿宋\kaishu楷书
字号

字号命令实际大小依赖于所使用的文档类及其选项。下表列出了这些命令在标准文档类中的绝对大小,单位为pt。使用字号命令的时候,通常也需要用花括号进行分组,如同\rmfamily那样。
在这里插入图片描述

(2)段落格式和间距

行距

在导言区中,我们可以使用\linespread命令对行距进行设置。

\linespread{⟨factor⟩}

其中⟨factor⟩作用于基础行距而不是字号。缺省的基础行距是1.2 倍字号大小,因此使用\linespread{1.5}意味着最终行距为1.8 倍的字号大小。
如果不是在导言区全局修改,而想要局部地改变某个段落的行距,需要用\selectfont命令使\linespread命令的改动立即生效。

水平间距

LaTeX 默认为将单词之间的“空格”转化为水平间距。如果需要在文中手动插入额外的水平间距,可使用\hspace命令,如

This \hspace{1.5cm} is a space of 1.5 cm.

在这里插入图片描述
\hspace命令生成的水平间距如果位于一行的开头或末尾,则有可能因为断行而被“吞掉”。可使用\hspace*命令代替\hspace命令得到不会因断行而消失的水平间距。

垂直间距

在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是LaTeX 预设的。如果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用\vspace命令:

A paragraph.
\vspace{2ex}
Another paragraph.

在这里插入图片描述

在段落内的两行之间增加垂直间距,一般通过给断行命令\\加可选参数,如\\[6pt]\\*[6pt]\vspace也可以在段落内使用,区别在于\vspace只引入垂直间距而不断行。

(3)页眉页脚

LaTeX中提供了命令\pagestyle来修改页眉页脚的样式:

\pagestyle{⟨page-style⟩}

命令\thispagestyle只影响当页的页眉页脚样式:

\thispagestyle{⟨page-style⟩}

⟨page-style⟩参数为样式的名称,在LaTeX 里预定义了四类样式。

  • empty页眉页脚为空
  • plain页眉为空,页脚为页码。(article和report 文档类默认;book文档类 的每章第一页也为plain格式)
  • headings页眉为章节标题和页码,页脚为空。(book文档类默认)
  • myheadings页眉为页码及\markboth\markright命令手动指定的内容,页脚为空。

8)参考文献和引用

LaTeX提供了最基本的\cite命令用于在正文中引用参考文献:

\cite{⟨citation⟩}

⟨citation⟩为引用的参考文献的标签,类似\ref里的参数。
参考文献由thebibliography环境包裹。每条参考文献由\bibitem开头,其后是参考文献本身的内容:

\begin{thebibliography}{⟨widest label⟩}
\bibitem[⟨item number⟩]{⟨citation⟩} ...
\end{thebibliography}

其中⟨citation⟩\cite使用的文献标签,⟨item number⟩自定义参考文献的序号,如果省略,则按自然排序给定序号。⟨widest label⟩用以限制参考文献序号的宽度,如99意味着不超过两位数字。通常设定为与参考文献的数目一致。
thebibliography环境自动生成不带编号的一节(article 文档类)或一章(report / book 文档类)。在article文档类的节标题默认为“Reference”,而在report/book文档类的章标题默认为“Bibliography”。
当然,也可以使用BIBTEX对参考文献进行管理,这里不讲,可以去网上寻找相关资料。

9)使用颜色

原始的LaTeX 不支持使用各种颜色。color宏包或者xcolor宏包提供了对颜色的支持,给PDF输出生成颜色的特殊指令。调用colorxcolor宏包后,我们就可以用如下命令切换颜色:

\color[⟨color-mode⟩]{⟨code⟩}
\color{⟨color-name⟩}

颜色的表达方式有两种。其一是使用色彩模型和色彩代码,代码用0 ~ 1 的数字代表成分的比例。color宏包支持rgb、cmyk和gray模型,xcolor支持更多的模型如hsb等。其二是直接使用名称代表颜色,前提是已经定义了颜色名称(没定义的话会报错)。color 宏包仅定义了8 种颜色名称,xcolor补充了一些,总共有19 种,如下所示:
在这里插入图片描述

10)自定义命令和环境

(1)定义新命令

使用如下命令可以定义你自己的命令:

\newcommand{\⟨name⟩}[⟨num⟩]{⟨definition⟩}

基本上,这个命令有两个参数,第一个⟨name⟩是你想要建立的命令的名称(带反斜杠),第二个⟨definition⟩是命令的定义。方括号里的参数⟨num⟩是可选的,用于指定新命令所需的参数数目(最多9 个)。如果缺省可选参数,默认就是0,也就是新建的命令不带任何参数。

\newcommand\degree{^\circ}

这个例子中定义了一个不带参数的命令\degree,之后便可以在文档多次使用。
接下来子演示如何定义一个带参数的命令。在命令的定义中,标记#1代表指定的参数。
如果想使用多个参数,可以依次使用#2、……、#9等标记,如

\newcommand\love[2]{#1 love #2}

在文档其他位置便可使用类似于\love{I}{You}的命令来生成I love You.
LaTeX不允许你定义一个与现有命令重名的命令。如果需要修改命令定义的话,使用\renewcommand命令。它使用与命令\newcommand相同的语法。在命令不存在时,它相当于\newcommand;在命令已经存在时,仍沿用存在的定义。

(2)定义新环境

\newcommand命令类似,有一个命令用于定义新的环境。这个命令是\newenvironment,它的语法如下所示:

\newenvironment{⟨name⟩}[⟨num⟩]{⟨before⟩}{⟨after⟩}

同样地,\newenvironment命令有一个可选的参数。在⟨before⟩中的内容将在此环境包含的文本之前处理,而在⟨after⟩中的内容将在遇到\end{⟨name⟩}命令时处理。如

\newenvironment{myabstract}[1][摘要]
{\small
	\begin{center}\bfseries #1\end{center}
	\begin{quotation}}
	{\end{quotation}}
	
\begin{myabstract}[我的摘要]
		这是一段自定义的摘要。
\end{myabstract}

编译结果如下
在这里插入图片描述

当然LaTeX中还有很多很多命令,宏包以及符号等,不妨在我们使用的过程中再慢慢进行探索。

参考文献

[1]https://en.wikipedia.org/wiki/LaTeX
[2]https://www.latex-project.org/
[3]《一份不太简短的LaTeX2e介绍》
[4]https://blog.csdn.net/cocoonyang/article/details/78036326

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值