安装好LaTeX及编译器后我们就开始写LaTeX啦,在这里先介绍一些LaTeX的基础语法。
1.文档结构
文件结构
LaTeX的文件结构可以分为三类:文档类声明,序言,正文。
文档类声明用来指定文档的类型。
序言用来执行引入宏包、定义指令、设置变量等工作,序言属于可选项。
正文用来书写文档的实际内容,在指令\begin{document}与\end{document}之间。
三者的基础语法如下:
\documentclass[option]{class} %文档类声明
\usepackage[option]{package} %序言
\begin{document} %正文
...
\end{document}
文档类声明中的class分为:article、report、book,相关选项(option)如图:
需要注意的是,原生LaTeX只提供基础的功能,其他需要通过宏包(\usepackage)进行扩展,不同的宏包提供的功能各不一样。
标题、摘要、层次
一篇LaTeX文档通常需要标题、摘要等信息,之后是文章的层次结构,而正文内容则散落在各层次结构之间。
标题、作者、日期的写法:
\title{标题} %“标题”处写上文章标题
\author{作者} %“作者”处写上文章作者
\today %编译生成文章时的日期
\maketitle
注意\maketitle指令应放在最后。
摘要写法:
\begin{abstract}
...
\end{abstract}
层次结构写法:
\chapter{...}
\section{...}
\subsection{...}
\subsubsection{...}
程度递减,其中article里无chapter,report和book包含所有结构。
目录
使用\tableofcontents指令生成整个文档的目录,Latex会自动设定目录的层次,也可以通过\setcounter指令手动设定层次深度。
\tableofcontents
\setcounter{tocdepth}{2} %设置深度为2
如果不希望章节等层次结构出现在目录中,可以通过加*号避免。
\chapter*{...}
\section*{...}
值得一提的是,当章节、图表等结构发生变化后,需要执行两遍才能得到正确结构,LaTeX这样被设计据分析是因为当时的电脑内存容量有限。
2.文字排版
字符输入
LaTeX中常用字符为:普通字符、控制符、特殊符号、注音符号、预定义字符串等,对于这些字符,常见的输入模式分为:文本模式(缺省)和数学模式,行间的数学模式用$...$表示。
LaTeX中有些字符(# $ % ^ & _ { } ~ \等)是作为特殊的控制符存在的,单独使用的时候需要在前面加上“\”,而“\”本身则作为换行符,因此“\\”在LaTeX中是换行指令。
相关符号输入方式如下:
换行/页、断字
换行指令如下:
1)\\和\\*
\\[extra-space]
\\*[extra-space]
\\和\\*指令功能相同,差别只是后者在强制换行后禁止换页。可选叁数 extra-space 指明下一行开始前预留多少垂直距离(可以为负值)。
2)\newline
\newline指令只能在段落中使用,使文本新开一行。
3)\linebreak和\nonlinebreak
\linebreak[number]
\nonlinebreak[number]
这条指令让LaTeX中断当前行并将当前行己有文本拉长直至页边。如果使用了 number 可选叁数,则此指令变成了一个换行请求,由系统决定是否换行。number 的值只能从 0 到 4,值越大代表换行的意愿越强烈(\nonlinebreak与其相反)。
换页指令如下:
1)\newpage
\newpage指令结束当前页, 开始新的一页。
2)\pagebreak和\nonpagebreak
\pagebreak[number]
\nonpagebreak[number]
这条命令让 LaTeX从文本当前位置结束当前页。如果使用了 number 可选叁数,则此指令变成了一个换页请求,由系统决定是否换页。number 的值只能从 0 到 4,值越大表示换页的意愿越强烈(\nonpagebreak与其相反)。
段落(paragraph)是用一个完全空白的行结束的一段文本。空行不能出现在不允许段范开始的时机或地方,如数学状态下或分节命令的参数中等等。
段落指令如下:
1)\indent
该指令产生一块水平空白区域,其宽度等于段落的缩进距离值。
2)\par
该指令与空行的效果相同,使用它常常只是为了使文档中的命令或环境的定义更易于阅读理解。
LaTeX一般会均匀断字,但有些时候我们需要显式指定断字位置,这需要用到\hyphenation指令:
\hyphenation{hyph-en-a-tion} %显示指定断字
字样和字号
LaTeX会自动调整正文、标题、章节、上下标、脚注等的字样,我们也可以用表2.3中的指令来设置字样,用表 2.4中的指令来设置相对字号。
\emph是字样强调命令,在不同字样和装饰环境下有不同效果。比如周围文字是正体,它就是斜体,反之它就是正体。
3.常见环境
列表
LaTeX中有三种列表环境:itemize、enumerate、description,用法如下:
\documentclass{article}
\begin{document}
\begin{itemize}
\item First
\item Second
\item Third
\end{itemize}
\begin{enumerate}
\item First
\item Second
\item Third
\end{enumerate}
\begin{description}
\item{First} aaa
\item{Second} bbb
\item{Third} ccc
\end{description}
\end{document}
结果如下:
摘录
LaTeX中有三种摘录环境:quote、quotation、verse。三者区别如下:
quote:两端都缩进。
quotation:在quote的基础上增加了首行缩进
verse:比quote多了第二行起的缩进。
原文照排
一般文档中,命令和源代码通常使用等宽字样来表示,也就是原文照 排。对此 LaTeX提供了\verb命令(一般用于在正文中插入较短的命令)和 verbatim 环境。后者有带 * 的版本用来标明空格。
\begin{verbatim}
printf("Hello, world!");
\end{verbatim}
\begin{verbatim*}
printf("Hello, world!");
\end{verbatim*}
结果如下:
交叉引用
我们需要引用文档中的section、subsection、figure、table等对象的编号,这种功能叫做交叉引用。
\label{marker}:定义一个标记,marker可以是 任意字符串,但是在全文中须保持唯一。
\ref{marker}:引用标记处章节或图表的编号。
\pageref{marker}:引用标记处的页码。
\begin{equation}\label{f1}
a^2=b^2+c^2
\end{equation}
文档中新增交叉引用后,第一次执行 LaTeX或 pdfLaTeX 编译命令时会得到警告信息,第二次编译才能得到正确结果。
脚注
\footnote指定脚注
This is a sentence.\footnote{This is a footnote.}
4.长度
LaTeX中的常用长度单位如表2.5所示。