欢迎使用Wiki,如果您在使用过程遇到什么问题,请联系我

基本概念

\documentclass{article}
% 这里是注释
\begin{document}
Hello, world!
\end{document}

控制序列:以反斜杠“\”开头,以第一个空格或非字母的字符结束的一串文件。它们不会被输出,但是会影响输出文档的效果。

TeX的注释以“%”开头,TeX会忽略%开始到当前行尾的所有内容,如果需要输出%,则需要在%前面加上反斜杠进行转义。

控制序列begin和end总是成对出现,这两个控制序列中间的内容被称为环境,它们之后的第一个必要参数总是一致的,被称为环境名。

宏包,就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。\usepackage{} 可以用来调用宏包。

标题与目录

\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\tableofcontents
\maketitle
\section{你好中国}
中国在East Asia.
\subsection{Hello Beijing}
北京是capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello 山东}
\paragraph{山东大学} is one of the best university in 山东。
\end{document}

控制序列maketitle能将在导言区中定义的标题、作者、日期按照预定的格式展现出来。

控制序列tableofcontents能生成目录,但是必须在maketitle后面。

中文支持

  1. 文档类从 article 变为 ctexart;
  2. 增加了文档类选项 UTF8。

数学公式

为了使用AMS-LaTeX提供的数学功能,我们需要在导言区加载amamath宏包:

\usepackage{amsmath}

LaTeX 的数学模式有两种:行内模式 (inline) 和行间模式 (display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行,并自动居中。

在行文中,使用 \$ … \$ 可以插入行内公式,使用 $\backslash$[ … $\backslash$] 可以插入行间公式,如果需要对行间公式进行编号,则可以使用 equation 环境:

\begin{equation}
...
\end{equation}

行内公式也可以使用 $\backslash$(…$\backslash$) 或者 $\backslash$begin{math} … $\backslash$end{math} 来插入,但略显麻烦。

无编号的行间公式也可以使用 $\backslash$begin{displaymath} … $\backslash$end{displaymath} 或者 $\backslash$begin{equation*} … $\backslash$end{equation*} 来插入,但略显麻烦。(equation* 中的 * 表示环境不编号)

也有 plainTeX 风格的 \$\$ … \$\$ 来插入不编号的行间公式。但是在 LaTeX 中这样做会改变行文的默认行间距,不推荐。

行内公式和行间公式对标点的要求是不同的:行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。

上下标

在数学模式中,需要表示上标,可以使用 ^ 来实现(下标则是 _)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {} 括起来

根式与分式

根式用 \sqrt{·} 来表示,分式用 \frac{·}{·} 来表示(第一个参数为分子,第二个为分母)。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\sqrt{x}$, $\frac{1}{2}$.

\[ \sqrt{x}, \]

\[ \frac{1}{2}. \]
\end{document}

效果:

$\sqrt{x}$, $\frac{1}{2}$.

\[ \sqrt{x}, \]

\[ \frac{1}{2}. \]

在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用 \dfrac, 反之可以使用 \tfrac。

在行内写分式,你可能会喜欢 xfrac 宏包提供的 \sfrac 命令的效果。
排版繁分式,你应该使用 \cfrac 命令。

运算符

序号 运算符 控制序列
1 $\approx$ $\backslash$approx
2 $\cap$ $\backslash$cap
3 $\cdot$ $\backslash$cdot
4 $\cup$ $\backslash$cup
5 $\div$ $\backslash$div
6 $\equiv$ $\backslash$equiv
7 $\exists$ $\backslash$exists
8 $\forall$ $\backslash$forall
9 $\geq$ $\backslash$geq
10 $\in$ $\backslash$in
11 $\infty$ $\backslash$infty
12 $\leq$ $\backslash$leq
13 $\lnot$ $\backslash$lnot
14 $\nabla$ $\backslash$nabla
15 $\neq$ $\backslash$neq
16 $\notin $ $\backslash$notin
17 $\partial$ $\backslash$partial
18 $\pm$ $\backslash$pm
19 $\subset$ $\backslash$subset
20 $\subseteq$ $\backslash$subseteq
21 $\times$ $\backslash$times
22 $\varnothing$ $\backslash$varnothing
一些小的运算符,可以在数学模式下直接输入


序号 运算符 控制序列 序号 运算符 控制序列 序号 运算符 控制序列 序号 运算符 控制序列
1 $\sum$ $\backslash$sum 2 $\prod$ $\backslash$prod 3 $\lim$ $\backslash$lim 4 $\int$ $\backslash$int
这些运算符的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits 和 \nolimits 来强制显式地指定是否压缩这些上下标。

多重积分 $ \iint\quad \iiint\quad \iiiint\quad \idotsint $可以使用 \iint, \iiint, \iiiint, \idotsint 等命令输入。

\[ \iint\quad \iiint\quad \iiiint\quad \idotsint \]

定界符(括号等)

各种括号用 (), [], \{\}, \langle\rangle 等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 \。因为 LaTeX 中 | 和 \| 的应用过于随意,amsmath 宏包推荐用 \lvert\rvert 和 \lVert\rVert 取而代之。

为了调整这些定界符的大小,amsmath 宏包推荐使用 \big, \Big, \bigg, \Bigg 等一系列命令放在上述括号前面调整大小。

省略号

省略号用 \dots, \cdots, \vdots, \ddots 等命令表示。\dots 和 \cdots 的纵向位置不同,前者一般用于有下标的序列。

\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots \]

\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots \]

希腊字母

字母 控制序列 字母 控制序列
$\alpha$ $\backslash$alpha $\beta$ $\backslash$beta
$\gamma$ $\backslash$gamma $\delta$ $\backslash$delta
$\epsilon$ $\backslash$epsilon $\zeta$ $\backslash$zeta
$\eta$ $\backslash$eta $\theta$ $\backslash$theta
$\iota$ $\backslash$iota $\kappa$ $\backslash$kappa
$\lambda$ $\backslash$lambda $\mu$ $\backslash$mu
$\nu$ $\backslash$nu $\xi$ $\backslash$xi
$\pi$ $\backslash$pi $\rho$ $\backslash$rho
$\sigma$ $\backslash$sigma $\tau$ $\backslash$tau
$\upsilon$ $\backslash$upsilon $\phi$ $\backslash$phi
$\chi$ $\backslash$chi $\psi$ $\backslash$psi
$\omega$ $\backslash$omega
  • 若需要大写希腊字母,将命令首字母大写即可。
    • \Gamma呈现为$\Gamma$
  • 若需要斜体希腊字母,将命令前加上var前缀即可。
    • \varGamma呈现为$\varGamma$

矩阵

amsmath 的 pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix 等环境可以在矩阵两边加上各种分隔符。

\[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad
\begin{bmatrix} a&b\\c&d \end{bmatrix} \quad
\begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad
\begin{vmatrix} a&b\\c&d \end{vmatrix} \quad
\begin{Vmatrix} a&b\\c&d \end{Vmatrix} \]

效果图:

\[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad \begin{bmatrix} a&b\\c&d \end{bmatrix} \quad \begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad \begin{vmatrix} a&b\\c&d \end{vmatrix} \quad \begin{Vmatrix} a&b\\c&d \end{Vmatrix} \]

使用 smallmatrix 环境,可以生成行内公式的小矩阵。

Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.

效果图: Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.

多行公式

有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。

长公式

不对齐

无须对齐的长公式可以使用 multline 环境。

\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

效果:

\begin{multline} x = a+b+c+{} \\ d+e+f+g \end{multline}

对齐

需要对齐的公式,可以使用 aligned 次环境来实现,它必须包含在数学环境之内。

\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

效果:

\[\begin{aligned} x ={}& a+b+c+{} \\ &d+e+f+g \end{aligned}\]

公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带星花的版本。

\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

效果:

分段函数

分段函数可以用cases次环境来实现,它必须包含在数学环境之内。

\[ y= \begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases} \]

效果:

\[ y= \begin{cases} -x,\quad x\leq 0 \\ x,\quad x>0 \end{cases} \]

矢量

\vec a呈现为$\vec a$

\overrightarrow{xy}呈现为$\overrightarrow{xy}$

特殊函数

\函数名

举例:\sin x,\ln x,\max(A,B,C)呈现为$\sin x$,$\ln x$,$\max(A,B,C)$

空格

LaTeX语法本身会忽略空格的存在

小空格:a\ b呈现为$a\ b$

4格空格:a\quad b呈现为$a\quad b$

注意:a\; b呈现为$a\; b$,中间的空格是无法选中的。

图片与表格

图片

在 LaTeX 中插入图片,有很多种方式。最好用的应当属利用 graphicx 宏包提供的 \includegraphics 命令。比如你在你的 TeX 源文件同目录下,有名为 a.jpg 的图片,你可以用这样的方式将它插入到输出文档中:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{a.jpg}
\end{document}

图片可能很大,超过了输出文件的纸张大小,或者干脆就是你自己觉得输出的效果不爽。这时候你可以用 \includegraphics 控制序列的可选参数来控制。比如

\includegraphics[width = .8\textwidth]{a.jpg}

这样图片的宽度会被缩放至页面宽度的百分之八十,图片的总高度会按比例缩放。

\includegraphics 控制序列还有若干其他的可选参数可供使用,一般并用不到。感兴趣的话,可以去查看该宏包的文档

表格

tabular 环境提供了最简单的表格功能。它用 \hline 命令表示横线,在列格式中用 | 表示竖线;用 & 来分列,用
来换行;每列可以采用居左、居中、居右等横向对齐方式,分别用 l、c、r 来表示。

\documentclass[UTF8]{ctexart}
\begin{document}
\begin{tabular}{|l|c|r|}
 \hline
操作系统& 发行版& 编辑器\\
 \hline
Windows & MikTeX & TexMakerX \\
 \hline
Unix/Linux & teTeX & Kile \\
 \hline
Mac OS & MacTeX & TeXShop \\
 \hline
通用& TeX Live & TeXworks \\
 \hline
\end{tabular}
\end{document}

效果:

操作系统 发行版 编辑器
Windows MikTeX TexMakerX
Unix/Linux teTeX Kile
Mac OS MacTeX TeXShop
通用 TeX Live TeXworks

浮动体

插图和表格通常需要占据大块空间,所以在文字处理软件中我们经常需要调整他们的位置。figure 和 table 环境可以自动完成这样的任务;这种自动调整位置的环境称作浮动体(float)。我们以 figure 为例。

\begin{figure}[htbp]
\centering
\includegraphics{a.jpg}
\caption{有图有真相}
\label{fig:myphoto}
\end{figure}

htbp 选项用来指定插图的理想位置,这几个字母分别代表 here, top, bottom, float page,也就是就这里、页顶、页尾、浮动页(专门放浮动体的单独页面或分栏)。\centering 用来使插图居中;\caption 命令设置插图标题,LaTeX 会自动给浮动体的标题加上编号。注意 \label 应该放在标题命令之后。

版面设置

页边距

设置页边距,推荐使用 geometry 宏包。可以在这里查看它的说明文档。

比如我希望,将纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm,可以在导言区加上这样几行:

\usepackage{geometry}
\geometry{papersize={20cm,15cm}}
\geometry{left=1cm,right=2cm,top=3cm,bottom=4cm}

页边距

设置页眉页脚,推荐使用 fancyhdr 宏包。可以在这里查看它的说明文档。

比如我希望,在页眉左边写上我的名字,中间写上今天的日期,右边写上我的电话;页脚的正中写上页码;页眉和正文之间有一道宽为 0.4pt 的横线分割,可以在导言区加上如下几行:

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\date}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}

首行缩进

CTeX 宏集已经处理好了首行缩进的问题(自然段前空两格汉字宽度)。因此,使用 CTeX 宏集进行中西文混合排版时,我们不需要关注首行缩进的问题。

如果你因为某些原因选择不适用 CTeX 宏集(不推荐)进行中文支持和版式设置,则你需要做额外的一些工作。
* 调用 indentfirst 宏包。具体来说,中文习惯于每个自然段的段首都空出两个中文汉字的长度作为首行缩进,但西文行文习惯于不在逻辑节(\section 等)之后缩进。使用改宏包可使 LaTeX 在每个自然段都首行缩进。
* 设置首行缩进长度 \setlength{\parindent}{2\ccwd}。其中 \ccwd 是 xeCJK 定义的宏,它表示当前字号中一个中文汉字的宽度。

行间距

我们可以通过 setspace 宏包提供的命令来调整行间距。比如在导言区添加如下内容,可以将行距设置为字号的 1.5 倍:

\usepackage{setspace}
\onehalfspacing

段间距

我们可以通过修改长度 \parskip 的值来调整段间距。例如在导言区添加以下内容

\addtolength{\parskip}{.4em}

则可以在原有的基础上,增加段间距 0.4em。如果需要减小段间距,只需将该数值改为负值即可。

打印/导出