- TeX: 排版引擎及其标记语言 Markup Language 的名称
- 排版引擎: 根据所输入的内容及命令, 将内容加以排版后输出的程序
- 输出
dvi格式文件
- 输出
- 标记语言: 将控制命令与文本内容结合起来的语言
- 排版引擎: 根据所输入的内容及命令, 将内容加以排版后输出的程序
- 编译, 排版: 从TeX源代码文件生成排版后文件的过程:
xelatex TEX_FILE - plain TeX: 基于TeX定义的再封装标记语言
- LaTeX
- Documentation Preparation System: 基于TeX的排版系统
- 再封装: LaTeX将控制命令翻译为plain TeX控制命令, 并交予TeX引擎执行
- LaTeX排版引擎 = TeX + LaTeX->TeX转换程序
- Source Code - Render -> Formatted Documentation
- tex File: Content & Format
- tex File: Content; cls File: Format
- Documentation Preparation System: 基于TeX的排版系统
- 变种排版引擎
- XeTeX: 支持UTF-8编码的再实现TeX引擎
- XeLaTeX: 基于XeTeX的支持LaTeX语言的再封装排版引擎
- XeLaTeX = XeTeX + LaTeX->TeX转换程序
- pdfTeX: 基于TeX的直接输出pdf的再封装排版引擎
- pdfTeX = TeX + dvi->pdf转换程序
- pdfLaTeX: 基于pdfTeX的支持LaTeX语言的再封装排版引擎
- pdfLaTeX = pdfTeX + LaTeX->TeX转换程序
- LuaTeX: 正在开发的TeX引擎
- TeX发行 (版), TeX系统, TeX套装: 包括TeX系统的一组可执行程序, 辅助程序, 宏包文档, 模板, 字体文件的集合
- TeX Live: TeX User Group出品的跨平台发行版
- MiKTeX
- CTeX发行: 基于MiKTeX的支持中文排版的发行 (已弃用)
- TeXworks: TeX Live 自带TeX源代码编辑器
- 在TeX系统中, 每个字符处在一个盒子中, 对盒子的排版决定了字符的排版
- TeX源代码文件:
.tex- 注意: 路径和文件名不能包含非ASCII字符 (如中文字符)
- TeX源码中的内容并不会全部输出
- 注释: 从百分号
%开始直到行尾的部分- 被编译器忽略, 不会输出, 也不会影响输出效果
- 使源代码易于人类阅读
- 标识符
- 大小写敏感
- 控制序列, 命令, 标记: 反斜杠
\, 标识符 (控制序列名), 包围在方括号[]中的可选参数列表, 包围在花括号{}中的参数列表组成:\NAME[OPTIONAL_ARGUMENT]{ARGUMENT}- 不会被作为文档内容输出
- 控制输出文档的效果 或 输出元字符
\%: 输出%本身
% !TEX program = xelatex: Specify TEX Program\documentclass[ENCODING]{DOCUMENT_CLASS}: 调用由参数指定的文档类ENCODING: 字符编码UTF8: UTF-8编码
- 文档类: TeX系统预设的或用户自定的格式的集合
- 文档类定义了内容的输出效果
DOCUMENT_CLASSarticlectexart: 通过CTeX支持中文排版
\begin{ENV}: 进入ENV环境- 总与
\end{ENV}成对出现
- 总与
\end{ENV}: 退出ENV环境- 总与
\begin{ENV}成对出现 \begin{ENV}与\end{ENV}及其之间的代码称为环境, 两控制序列的第一个必要参数ENV必须一致, 称为环境名- 次环境: 包含在环境中的环境
ENVdocument: 输出到结果文档的部分- 在
\end{document}之后的代码是无效的
- 在
- 总与
- 导言区:
\documentclass{article}与\begin{document}之间的代码- 进行全局设置的区域
- 导言区的控制序列往往决定整篇文档的格式
\title{TITLE}: 设置标题内容为TITLE\author{AUTHOR}: 设置作者为AUTHOR\date{DATE}: 设置日期为DATE\renewcommand{COMMAND}{CONTENT}: 重载命令\addtolength{VAR}{VALUE}: 在原有基础上将VAR的值增加VALUE
- 宏包, 宏集, 巨集套件: 某些常用控制序列的集合
\usepackage{PACKAGE}: 调用宏包, 即执行其中的控制序列- 相当于将宏包中的控制序列写入源代码中
- 类似于C语言中的
#include
- 使用
CTeX宏包进行中文排版, 避免使用CJK宏包xeCJK进行中文排版- 注意使用
UTF-8编码及XeLaTeX编译器 - 使用
CJK宏包进行中英文排版: 在导言区:\usepackage{xeCJK}: 调用xeCJK宏包\setCJKmainfont{SimSun}: 设置中文字体为宋体SimSun\setCJKmainfont{FONT}- 定义在
xeCJK中的控制序列, 用于设置CJK主字体 FONT: 系统字体表示名
- 定义在
- 注意使用
- 辨析:
CTeX宏包 与CTeX发行版CTeX宏包: LaTeX宏的集合, 包含若干文档类文件.cls和宏包文件.styCTeX发行版: 过时的TeX发行版
geometry宏包- 纸张长宽:
\geometry{papersize={LENGTHcm, WIDTHcm}} - 页边距:
\geometry{left=LEFTcm, right=RIGHTcm, top=TOPcm, bottom=BOTTOMcm}
fancyhdr宏包
设置页眉页脚:
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{CONTENT}
\chead{CONTENT}
\rhead{CONTENT}
\lfoot{CONTENT}
\cfoot{CONTENT}
\rfoot{CONTENT}
\renewcommand{\headrulewidth}{HEAD_RULE_WIDTH} % 设置页眉分割线宽度, E.g.: 0pt, 0.4pt
\renewcommand{\headwidth}{\textwidth} % 设置页眉宽度为正文宽度
\renewcommand{\footrulewidth}{FOOT_RULE_WIDTH} % 设置页脚分割线宽度, E.g.: 0pt, 0.4pt
\renewcommand{\footwidth}{\textwidth} % 设置页脚宽度为正文宽度CTeX宏包自动控制
setspace宏包\onespacing: 行距是字号的一倍\onehalfspacing: 行距是字号的1.5倍
\parskip: 段间距\addtolength{\parskip}{ADD}: 在原有基础上将段间距增加ADDADD- 可正可负
- E.g.:
.4em
\maketitle: 插入标题- 包括导言区中定义的标题, 作者, 日期
- 可通过
titling宏包自定义标题格式
\tableofcontents: 插入目录\textwidth: 正文宽度\thepage: 当前页码\today: 当日日期\author: 文章作者\date: 文章日期
- Bold:
\textbf{CONTENT} - Italic:
\textit{CONTENT} - Underline:
\underline{CONTENT}
\hfill: Horizonly Fill\vspace{LENGTH}: Vertical Space\,\;: 1 Space\quad: 4 Space
With package enumitem:
Unordered List:
\begin{itemize}
\item CONTENT{
\item CONTENT}
\end{itemze}Ordered List:
\begin{enumerate}
\item CONTENT{
\item CONTENT}
\end{enumerate}List can be nested
\begin{itemize}
\item CONTENT
\begin{itemize}
\item CONTENT
\end{itemize}
\end{itemize}- Part
\part{NAME}- 定义在
book,ctexbook宏包中
- 定义在
- Chapter
\chapter{NAME}- 定义在
report,ctexrep宏包中
- 定义在
- Section
\section{NAME}\subsection{NAME}\subsubsection{NAME}
- Paragraph
\paragraph{CONTENT}: 主段落,CONTENT会被加粗\subparagraph{CONTENT}: 次级段落,CONTENT会被加粗CONTENT: 段落- 段落中的换行符
- 单个换行符: 输出空格
- 连续多个换行符: 输出换行符
- 段落中的换行符
- AMS LaTeX宏包:
amsmath - 行内 Inline 公式
- 在正文内容中插入公式
- 插入行内公式
- 美元符:
$ EQUATION $ - 转义圆括号:
\( EQUATION \) -
math环境:\begin{math} EQUATION \end{math}
- 美元符:
- 行间 Display 公式
- 独立排列, 单独成行, 自动居中
- 插入无编号的行间公式:
- 转义方括号:
\[ EQUATION \] -
displaymath环境:\begin{displaymath} EQUATION \end{displaymath} -
equation*环境:\begin{equation*} EQUATION \end{equation*}-
*表示该环境中公式不编号
-
- 双美元符:
$$ EQUATION $$- 不推荐: 在LaTeX中该表示将改变默认行间距
- 转义方括号:
- 插入有编号的行间公式
-
equation环境:\begin{equation} EQUATION \end{equation}
-
- 公式中无需通过控制序列, 可以直接使用的符号:
$+ - = ! / ( ) [ ] < > | ' : *$ - 其余符号均需要通过控制序列使用
- 空格仅作为源码中标识符的分隔符, 在输出中被忽略
- 公式与标点
- 行内公式的标点应放在数学模式限定符外
- 行间公式的标点应放在数学模式限定符内
- 字符组 Group: 将花括号内的字符序列视为一个字符:
{ STRING } - 上下标
- 上标:
[BASE]^INDEX - 下标:
[BASE]_INDEX - 只作用于与
^,_相邻的字符- 通过字符组作用于多个字符
- 上标:
- 多行控制
- 使用
\\换行 - 使用
&对齐:&所标记的位置会竖直排列
- 使用
-
Space:
- 1 Letter:
$A\ B$ ,$A;B$ - 4 Letter:
$A \quad B$
- 1 Letter:
-
$\sqrt[INDEX]{BASE}$ -
$\frac{SUP}{SUB}$ - 行内公式与行间公式中的显示效果不同: 行内模式分式高度为一行, 行间模式分式高度为多行
- 强制行内模式分式:
$\dfrac{SUP}{SUB}$ - 强制行间模式分式:
$\tfrac{SUP}{SUB}$
- 强制行内模式分式:
-
xfrac宏包提供的\sfrac{SUP}{SUB} - 繁分式:
$\cfrac{SUP}{SUB}$
- 行内公式与行间公式中的显示效果不同: 行内模式分式高度为一行, 行间模式分式高度为多行
-
小型运算符:
$\pm$ ,$\times$ ,$\div$ ,$\cdot$ ,$\cap$ ,$\cup$ ,$\geq$ ,$\leq$ ,$\neq$ ,$\approx$ ,$\equiv$ ,$\to$ -
大型运算符:
$\sum$ ,$\prod$ ,$\lim$ ,$\int$ ,$\iint$ ,$\iiint$ ,$\iiiint$ ,$\idotsint$ - 上下标控制: 大型运算符的上下标在行内为非压缩模式以适应行高, 在行间为压缩模式
-
$\limits$ : 限定前一个大型运算符的上下标为压缩模式- E.g.:
$\sum \limits _{i=0}^{n}$
- E.g.:
-
$\nolimits$ : 限定前一个大型运算符的上下标为非压缩模式- E.g.:
$\sum \nolimits _{i=0}^{n}$
- E.g.:
-
- 上下标控制: 大型运算符的上下标在行内为非压缩模式以适应行高, 在行间为压缩模式
-
字面定界符:
$()$ ,$[]$ ,${}$ ,$\langle \rangle$ ,amsmath宏包$\lvert \vert \rvert$,amsmath宏包$\lVert \Vert \rVert$- 定界符大小控制:
$\big$ ,$\Big$ ,$\bigg$ ,$\Bigg$ - 控制紧随其后的定界符的大小
- 可选: 通过
\SIZEl,\SIZEr修饰左, 右定界符 - E.g.:
$\Bigg ($ ,$\Biggl ($
- 定界符大小控制:
-
省略号:
$\dots$ ,$\cdots$ ,$\vdots$ ,$\ddots$ -
$\dots$ 与$\cdots$-
$x_1, x_2, \dots x_n$ : 有下标的序列 -
$1, 2, \cdots n$ : 一般序列
-
-
-
矩阵:
amsmath宏包的pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix,smallmatrix环境- E.g.: $\begin{pmatrix} a & b \ c & d \end{pmatrix}$
-
多行公式
- 长公式
- 无对齐:
multline(有编号),multline*(无编号) 环境- E.g.: $\begin{multline} x = \ a + b \end{multline}$
- 有对齐:
aligned次环境 (必须包含在数学环境内)- E.g.: $\begin{aligned} x & = \ a & + b \end{aligned}$
- 无对齐:
- 公式组
- 无对齐:
gather(有编号),gather*(无编号) 环境 - 有对齐:
align(有编号),align*(无编号) 环境
- 无对齐:
- 分段函数:
cases次环境 (必须包含在数学环境内)- E.g.: $y = \begin{cases} -x, x \leq 0 \ x, x > 0 \end{cases}$
- 避免使用
eqnarray环境
- 长公式
-
$\int_{...}^{...}$ -
$\sum_{...}^{...}$ -
$\prod_{...}^{...}$ - Limits:$\sum\limits_{...}$
-
${...} \mapsto {...}$ -
$\mathop{}^{...}_{...}$ ${|}^{a}_{b}$
-
$\underrightarrow{...}$ -
$\overrightarrow{...}$ -
$\in$ -
$\times$ -
${$ -
$}$ -
$\forall$ -
$\exists$ -
Label:
$\overline{...}$ $\underline{...}$ $\overbrace{...}^{...}$ $\underbrace{...}_{...}$ $\vec{Vector}$ $< \le = \ge >$ $\equiv$ $\sim$ - Logic
- And:$\land$
- Or:$\lor$
- Not:$\lnot$
- Xor:$\oplus$
- Implication:$\to$,
$\rightarrow$ - Equivalent:$\leftrightarrow$
- 等值:
$\Leftrightarrow$
- 等值:
- 推出
$\Rightarrow$ $\models$ $\vdash$
- Enter and align
- Enter:$\$
- Align:$&$
$$
\begin{aligned}
&... \
&... \
\end{aligned}
$$
- Can be nested: $$ \begin{aligned} ...:\ &...\ &\begin{aligned} ... &= ... \ &= ... \ \end{aligned}\ & ... \ \end{aligned} $$
- Not:$\not$
- E.g.:$\not\equiv$
- Dot
$\cdot$ $\cdots$
$\bullet$ $\infty$ $%$ $%< Comment >$ - Set
$\cup$ $\cap$ $\oslash$
$\approx$
- 通过
graphicx宏包中的\includegraphics[width = PROPORTION\textwidth]{PIC_DIR}插入图片- 基目录为当前源代码文件的所在目录
tabular环境\begin{tabular}{\|((l|c|r)\|)+}{\|((l|c|r)\|)+}: 列控制|: 竖线- 列对齐方式: 居左
l, 居中c, 居右r
\hline: 横线&: 分列符
E.g.:
\begin{tabular}{|l|c|r|}
\hline
操作系统 & 发行版 & 编辑器 \\
\hline
Windows & MikTeX &TexMakerX \\
\hline
\end{tabular}- 浮动体 Float: 自动调整位置的环境
- 使用浮动体:
\begin{FLOAT}[POSITION],\end{FLOAT}FLOAT: 浮动体名称figure: 图片浮动体table: 表格浮动体
POSITION: 可选位置参数h,heret,topb,bottomp,page: 单独成页/栏
\contering: 使内容在浮动体中居中\caption{CAPTION}: 设置标题为CAPTION\label{LABEL}: 为浮动体设置用于引用的标识符, 同时在输出文档中进行编号LABEL: 标识符, 通常采用TYPE:NAME的形式- 在文档中必须唯一
TYPE: 浮动体类型figtable
- 必须位于
\caption之后
\ref{LABEL}: 引用浮动体编号\pageref{LABEL}: 引用浮动体所在页码~: 不换行空格 Non-Breaking Space: 确保不自动换行的空格- 通常用法:
REF_TYPE~REF_COMMAND
- 通常用法:
使用浮动体:
\begin{FLOAT}[POSITION]
\centering
CONTENT
\caption{CAPTION}
\label{LABEL}
\end{FLOAT}
% ...
\ref{LABEL}
\pageref{LABEL}- Define style and command of a document class
- Source File:
.cls \ProvidesClass{CLASS_NAME}[DESCRIPTION]: Define class name and description\LoadClass{CLASS_NAME}: Specify Base Class\RequirePackage{PACKAGE}: Use Package\[re]newcommand{COMMAND_NAME}[ARGUMENT_COUNT]{DEFINITION}DEFINITION: Command to execute when invoked- Use
#NUMBERto referenceNUMBERth argument
- Use
- E.g.:
- Definition:
\newcommand{\name}[1]{ \centerline{\Huge\scshape{#1}} \vspace{1.25ex} - Usage:
\name{Daniel}
- Definition:






