latex命令对大小写敏感
环境命令为一对 \begin 和 \end:
其中 ⟨environment name⟩ 为环境名,\begin 和 \end 中填写的环境名应当一致。类似命令, {⟨mandatory arguments⟩} 和 [⟨optional arguments⟩] 为环境所需的必选和可选参数。LATEX 环境可能需要一个或多个必选/可选参数,也可能完全不需要参数。部分环境允许嵌套使用。
\begin{⟨environment name⟩}[⟨optional arguments⟩]{⟨mandatory arguments⟩}
...
\end{⟨environment name⟩}
LATEX 使用一对花括号 { 和 } 作为分组,在分组中使用的命令被限制在分组内,不会影 响到分组外的内容
LATEX 源代码以一个 \documentclass 命令作为开头,它指定了文档使用的文档类
导言区:\documentclass 和 \begin{document} 之间的位置,通常在导言区用\usepacket 调用宏包。
\documentclass[⟨options⟩]{⟨class-name⟩}
⟨class-name⟩ 为文档类的名称 一般为article/ctexart
可选参数 ⟨options⟩ 为文档类指定选项:指定字号、纸张大小、 单双面
通常包括:表格、插入图片、增加颜色甚至超链接,一般在导言区使用
\usepackage 可以一次性调用多个宏包,在 ⟨package-name⟩ 中用逗号隔开。这种用法一般
\usepackage{⟨package-name1⟩,⟨package-name2⟩,⟨package-name3⟩}
查看宏包的文档
%命令行输入
texdoc pkg-name
.sty 宏包文件。宏包的名称与文件名一致。
.cls 文档类文件。文档类名称与文件名一致。
.log 排版引擎生成的日志文件,供排查错误使用。
.aux LATEX 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。
.toc LATEX 生成的目录记录文件。
.lof LATEX 生成的图片目录记录文件。
.lot LATEX 生成的表格目录记录文件。
.idx LATEX 生成的供 makeindex 处理的索引记录文件。
.ind makeindex 处理 .idx 生成的用于排版的格式化索引文件。
.ilg makeindex 生成的日志文件。
.out hyperref 宏包生成的 PDF 书签记录文件。
当编写长篇文档时,例如当编写书籍、毕业论文时,单个源文件会使修改、校对变得十分困难。将源文件分割成若干个文件,例如将每章内容单独写在一个文件中,会大大简化修改和校对的工作。
\include{⟨filename⟩} %会导致另起一页
\input{⟨filename⟩} %直接插入
⟨filename⟩ 为文件名(不带 .tex 扩展名),如果和要编译的主文件不在一个目录中,则要加上相对或绝对路径
\include{chapters/file} % 相对路径
\include{/home/Bob/file} % *nix(包含 Linux、macOS)绝对路径
\include{D:/file} % Windows 绝对路径,用正斜线
当导言区内容较多时,常常将其单独放置在一个 .tex 文件中,再用 \input 命令插入。复 杂的图、表、代码等也会用类似的手段处理。
工具宏包 syntonly。在导言区使用 \syntaxonly 命令后,LATEX 编译不生成 DVI 或者 PDF 文档,只排查错误,可以提高编译速度
\usepackage{syntonly}
\syntaxonly %如果想生成文档,则用%注释掉该行命令即可。
ctex宏包封装了其他的中文宏包,我们可以直接使用ctex的文档类。
或者使用ctex包
\documentclass{ctexart}
\usepackage{ctex}
若干个空格视为一个空格。
空行或者\par 可以将文字分段
\qquad
用%为注释
\dots
\\ : 断行处向下增加垂直间距
\newline 只用于文本段落中
\newpage %如果是双栏排版,则另起一栏
\clearpage
断行或断页位置(一般不要乱用)
\linebreak[⟨n⟩] \nolinebreak[⟨n⟩]
\pagebreak[⟨n⟩] \nopagebreak[⟨n⟩]
以上命令都带一个可选参数,用数字 ⟨n⟩ 代表适合/不适合的程度,取值范围为 0–4,不带可选参数时,缺省为 4。
\linebreak 或者 \linebreak[4] 意味着此处需要强行断行;
\nopagebreak 或 \nopagebreak[4] 意味着禁止在此处断页。
章节
\section{}
\subsection{}
\subsubsection{}
使章节左对齐
%在导言区加入
\CTEXsetup[format={\Large\bfseries}]{section}
段落
\paragraph{}
\subparagraph{}
article 文档类带编号的层级为 \section \subsection \subsubsection 三级;
report / book 文档类带编号的层级为 \chapter \section \subsection 三级。
\tableofcontents
属性:
\title{⟨title⟩}
\author{⟨author ⟩}
\date{⟨date⟩} :默认使用 \today
在属性后面用\maketitle命令生成简单的标题页
\footnote{}
%在表格环境或者盒子内,需要分两步进行
%先使用 \footnotemark 为脚注计数,再在合适的位置用 \footnotetext 生成 脚注。
\marginpar[⟨left-margin⟩]{⟨right-margin⟩}
如果只给定了 ⟨right-margin⟩,那么边注在奇偶数页文字相同;如果同时给定了 ⟨left-margin⟩,则 偶数页使用 ⟨left-margin⟩ 的文字。
环境一般为\begin{}. \end{}
在环境里面的变量受环境配置的影响
列表可以嵌套使用,最多嵌套四层。
有序列表enumerate
无序列表itemize
\begin{enumerate}
\item[自定义字符] ...
\end{enumerate}
%方法1
\begin{center} ... \end{center}
\begin{flushleft} ... \end{flushleft}
\begin{flushright} ... \end{flushright}
%方法2
\centering \raggedright \raggedleft
\centering
文字
center 等环境会在上下文产生一个额外间距,
而 \centering 等命令不产生,只是改变对齐方式。比如在浮动体环境 table 或 figure 内实现居中对齐,用 \centering 命令即可
quote 用于引用较短的文字,首行不缩进;quotation 用于 引用若干段文字,首行缩进。引用环境较一般文字有额外的左右缩进。
\begin{quote}
···
\end{quote}
摘要环境 abstract 默认只在标准文档类中的 article 和 report 文档类可用,一般用于紧跟 \maketitle 命令之后介绍文档的摘要。
\begin{abstract}
···
\end{abstract}
摘要间隔太长
%修改
\renewcommand{\abstractname}{\vspace{-1cm}\textbf{\zihao{3}摘\quad 要}}
\begin{verbatim}
···
\end{verbatim}
\begin{tabular}[⟨align⟩]{⟨column-spec⟩}
⟨item1⟩ & ⟨item2⟩ & ... \\
\hline
⟨item1⟩ & ⟨item2⟩ & ... \\
\end{tabular}
其中 ⟨column-spec⟩ 是列格式标记;
& 用来分隔单元格;
\\ 用来换行;
\hline 用来在行与行之间绘制横线。
可选参数 ⟨align⟩ 控制垂 直对齐:t 和 b 分别表示按表格顶部、底部对齐,默认居中对齐。
tabular 环境使用 ⟨column-spec⟩ 参数指定表格的列数以及每列的格式。
列格式 | 说明 |
---|---|
l/c/r. | 单元格内容左对齐/居中/ 右对齐,不自动折行 |
p{⟨width⟩} : | 单元格宽度固定为 ⟨width⟩,可自动折行 |
| : | 绘制竖线 |
@{⟨string⟩}: | 自定义内容 ⟨string⟩ |
%两种写法
\begin{tabular}{|c|c|c|c|c|p{4em}|p{4em}|}
\begin{tabular}{|*{5}{c|}*{2}{p{4em}|}} %*号起连接作用
表格中每行的单元格数目不能多于列格式里 l/c/r/p 的总数(可以少于这个总数),否则出错。
@ 格式可在单元格前后插入任意的文本,但同时它也消除了单元格前后额外添加的间距。
@ 格式可以适当使用以充当“竖线”。特别地,@{} 可直接用来消除单元格前后的间距
tabularx宏包
它引入了一个 X 列格式,类似 p 列格式,不过 会根据表格宽度自动计算列宽,多个 X 列格式平均分配列宽。X 列格式也可以用 array 里的辅助 格式修饰对齐方式。
% \usepackage{array,tabularx}
\begin{tabularx}{14em}%
{|*{4}{>{\centering\arraybackslash}X|}}
\hline
A & B & C & D \\ \hline
a & b & c & d \\ \hline
\end{tabularx}
一整条:\hline
选择性的:\cline{⟨i⟩-⟨j⟩}(建议看原文档)
\begin{tabular}{|c|c|c|}
\hline
4 & 9 & 2 \\ \cline{2-3}
3 & 5 & 7 \\ \cline{1-1}
8 & 1 & 6 \\ \hline
\end{tabular}
三线表由 booktabs 宏包支持,
它提供了 \toprule、\midrule 和 \bottomrule 分别代表上中下三条线
以及和 \cline 对应的 \cmidrule。
最好单独使用
\multicolumn{⟨n⟩}{⟨column-spec⟩}{⟨item⟩}
其中 ⟨n⟩ 为要合并的列数,⟨column-spec⟩ 为合并单元格后的列格式,只允许出现一个 l/c/r 或
p 格式。如果合并前的单元格前后带表格线 |,合并后的列格式也要带 | 以使得表格的竖线一致。
纵向合并单元格需要用到 multirow 宏包提供的 \multirow 命令
\multirow{⟨n⟩}{⟨width⟩}{⟨item⟩}
⟨width⟩ 为合并后单元格的宽度,可以填 * 以使用自然宽度。
拆分的单元格需要划线:用 \multicolumn 命令配合 @{} 来 嵌套表格
拆分的单元格不需要划线:makecell 宏包提供 的 \makecell 命令
\makecell{d1 \\ d2} 可将d1d2上下叠放在单元格中。
方法1: 使用参数\arraystretch
方法2:换行命令 \ 添加可选参数,在这一行下面加额外的间距,适合用于在行间不加横线的表格。
LATEX 本身不支持插图功能,需要由 graphicx 宏包辅助支持。
使用 latex + dvipdfmx 编译命令时,调用 graphicx 宏包时要指定 dvipdfmx 选项;而使用 pdflatex 或 xelatex 命令编译时不需要。
xelatex支持 pdf eps jpg png bmp 格式的图片
\usepackage{graphicx}
\includegraphics[⟨options⟩]{⟨filename⟩}
其中 ⟨filename⟩ 为图片文件名,与 \include 命令的用法类似,文件名可能需要用相对路径或绝对路径表示.
在 \includegraphics 命令的可选参数 ⟨options⟩ 中可以使用 ⟨key⟩=⟨value⟩ 的形式
参数 | 含义 |
---|---|
width=⟨width⟩ | 将图片缩放到宽度为 ⟨width⟩ |
height=⟨height⟩ | 将图片缩放到高度为 ⟨height⟩ |
scale=⟨scale⟩ | 将图片相对于原尺寸缩放 ⟨scale⟩ 倍 |
angle=⟨angle⟩ | 将图片逆时针旋转 ⟨angle⟩ 度 |
graphicx 宏包还提供了 \graphicspath 命令,用于声明一个或多个图片文件存放的目录,使用这些目录里的图片时可不用写路径
\mbox{...}
\makebox[⟨width⟩][⟨align⟩]{...}
\fbox{...}
\framebox[⟨width⟩][⟨align⟩]{...}
\fbox 和 \framebox 让我们可以为水平盒子添加边框。使用的语法与 \mbox 和 \makebox.
可以通过 \setlength 命令调节边框的宽度 \fboxrule 和内边距 \fboxsep:
%方法1
\parbox[⟨align⟩][⟨height⟩][⟨inner-align⟩]{⟨width⟩}{...}
%方法2
\begin{minipage}[⟨align⟩][⟨height⟩][⟨inner-align⟩]{⟨width⟩}
...
\end{minipage}
⟨align⟩ 为盒子和周围文字的对齐情况
⟨height⟩ 和 ⟨inner-align⟩ 设置盒子的高度和内容的对齐方式,类似水平盒子 \makebox 的设置。
⟨inner-align⟩ 接受的 参数是顶部 t、底部 b、居中 c 和分散对齐 s。
在 \parbox 里无法正常使用 \footnote 命令,只能在盒子里使用 \footnotemark,在盒子外使用 \footnotetext。
\rule 命令用来画一个实心的矩形盒子,也可以用来画线
\rule[⟨raise⟩]{⟨width⟩}{⟨height⟩}
LATEX 预定义了两类浮动体环境 figure 和 table。习惯上 figure 里放图片,table 里放表格,但并没有严格限制,可以在任何一个浮动体里放置文字、公式、表格、图片等等任意内容。
\begin{table}[⟨placement⟩]
...
\end{table}
⟨placement⟩ 参数提供了一些符号用来表示浮动体允许排版的位置,如 hbp 允许浮动体排版 在当前位置、底部或者单独成页。table 和 figure 浮动体的默认设置为 tbp。
参数 | 含义 |
---|---|
h | 当前位置(代码所处的上下文) |
t | 顶部 |
b | 底部 |
p | 单独成页 |
! | 在决定位置时忽视限制 |
注 1:排版位置的选取与参数里符号的顺序无关,LATEX 总是以 h-t-b-p 的优先级顺序决定浮动体位置。
注 2:限制包括浮动体个数(除单独成页外,默认每页不超过 3 个浮动体,其中顶部不超过 2 个,底部不超过 1 个)以及浮动体空间占页面的百分比(默认顶部不超过 70%,底部不超过 30%)。
在双栏排版中,用 table* 和 figure*,但placement 参数只能用tp两个位置。
浮动体的标题
\caption{...}
table 和 figure 两种浮动体分别有各自的生成目录的命令(类似于 \tableofcontents 生成单独的章节。):
\listoftables
\listoffigures
浮动图表的目的使用浮动的位置来避免糟糕的分页,但如果不在乎因为图表太大而产生的分页,而要求有确定的位置,即要求不使用「浮动」环境。
float 宏包为标准的浮动环境提供了一个新的 H
位置选项用来产生没有浮动效果的图表环境,它的使用和一般的浮动环境没有什么区别。
% 导言区
\usepackage{float}
% ……
\begin{figure}[H]
\centering
\includegraphics[height=1cm]{picture}
\caption{不浮动的图片}
\end{figure}
表格太大
\resizebox{宽度}{高度}{对象}
\resizebox{\linewidth}{!}{ #此处!表示根据根据宽高比进行自适应缩放
\begin{tabular}...
....
....
\end{tabular}
} # 注意加的位置在\begin{tabular}和\end{tabular}前后
与上文距离过大
\vspace{-10cm} % 调整图片与上文的垂直距离
\begin{figure}[ht]
\centering
\begin{minipage}{0.49\linewidth}
\centering
\includegraphics[width=0.9\linewidth]{文件}
\caption{题目}
\end{minipage}
\begin{minipage}{0.49\linewidth}
\centering
\includegraphics[width=0.9\linewidth]{文件}
\caption{题目}
\end{minipage}
\end{figure}
数学公式有两种排版方式:其一是与文字混排,称为行内公式;其二是单独列为一行排版, 称为行间公式。
equation:一般用作单行公式。
align:将公式用&符号分为两部分,并对齐。分隔符通常放在等号左边。
gather:罗列公式,不需要固定的位置对齐,将所有公式居中
环境后面加入星号,即不带编号的环境,如align与align*。
\tag 手动修改公式编号
\notag 取消为公式编号
输入空格应该用 \quad \qquad
输入文本需要使用\text{}
省略号 \dots
上下标 ^_ ,标注的内容需要用花括号包裹。
分式:\frac{分子}{分母}. (在行内公式可以用\dfrac)
根式: \sqrt[n]{}
建议使用在线公式编辑器,或者Axmath。
https://www.latexlive.com/
\fontsize 用于设定任意大小的字号:
%在导言区使用,全局设置
\fontsize{⟨size⟩}{⟨base line-skip⟩}
%⟨size⟩ 为字号,⟨base line-skip⟩ 为基础行距,通常用pt
%单独在段落修改
{\fontsize{⟨size⟩}{⟨base line-skip⟩}\selectfont
文本
}
\setCJKmainfont{⟨font name⟩}[⟨font features⟩]
%其中font name 可以指定在tex所在文件夹下的ttf文件,xxx.ttf
%⟨font name}设置中文样式,⟨font features⟩ 里多用其他字体来配置
\underline{}:加下划线
\textbf{}:加粗