大致介绍一下 LaTeX怎么用。
LaTeX简介
LaTeX是一种排版工具,与word不同,LaTeX的排版并不是“所见即所得”,而是依靠编码描述(类似于打代码),只有在最终生成时才可以看到效果。关于LaTeX的历史,我在此不赘述。
选择LaTeX的理由很简单:公式。Word对数学公式的支持不好,而LaTeX对公式的处理则优雅得多。
安装
为了确保我的伙伴与我使用的环境相同,我还是详细写一下我的安装方法。我使用的是 TexLive 包,先下载https://pan.baidu.com/s/1chu4I3DQhOTtVFcES2VVUg(提取码:t9io),下载完后,跟着这里说的做:https://liam.page/texlive
关于为什么用 TexLive,首先它支持Windows,Linux,Mac OS X,其次它支持中文,再其次它现在依然在维护,最后它安装方便。
基本
Hello, world!
打开 TexLive 自带的编辑软件 TexWorks editor,它的界面和记事本差不多,各个按钮都有中文解释,在此就不多说。
在界面中输入如下内容(即图片中的内容):
1 |
|
然后按左上的三角形按钮,就会生成 pdf 并在右边显示。
看起来也不是很难嘛(和编程差不多)。下面说说各语句的意思:
-
以反斜杠“ \ ”开头的那串东西是 LaTeX 的控制序列(也称命令/标记),用于控制输出效果。
-
控制序列中间不能有空格;
-
控制序列的必要参数用 { } 包围,可选参数用 [ ] 包围;
-
LaTeX对控制序列的大小写敏感;
-
-
注释前面用%,%后面的文字会被忽略
- 要正常输入%,需要输入\%,这个和 python 的转义字符相同
\documentclass[arg1,arg2,...]{arg}
用于指定该文档的布局。- 必要参数用于指定文档类型,可选:
article
:用于学术期刊、编程文档等单篇文章proc
:基于article的一种类型minimal
:最小的类型,只规定了页面大小和字体book
:用于真实的书slide
:幻灯片memoir
:基于book的一种类型letter
:用于信件beamer
:用于presentations
- 非必要参数之间用 “ , ” 隔开,可有:
- 纸张大小:
letterpaper
,``legalpaper,
a4paper,
a5paper,
b5paper` - 字体:
12pt
(数字可变) - 将每页分为两边显示:
twocolumn
- 纸张大小:
- 必要参数用于指定文档类型,可选:
-
\documentclass{}
到\begin{document}
之间的区域为导言区,用于对整篇文档进行设置。上面并没导言区,但我们很快就要用到。 -
只有
\begin{document}
和\end{document}
之间的内容才会输出到文档中,并且\end{document}
后的内容和控制序列都是无效的。(即\end{document
)是文档的结束标志) -
还有其他
\begin{...}
,\end{...}
,这类东西我们称之为环境 -
值得注意的是,在 LaTeX 中,单个回车符相当于空格,要换行必须用两个回车符,即
1
2
3
4
5
6\begin{document} Hello, world! from Todd \end{document} %显示 %Hello, world! from Todd
1
2
3
4
5
6
7
8\begin{document} Hello, world! from Todd \end{document} %显示 %Hello, world! %from Todd
输出中文
TeX 本身不支持中文,而 XeLaTeX 支持 Unicode,所以只需加载中文宏包即可。宏包指的是:
所谓宏包,就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。
\usepackage{}
可以用来调用宏包。
重新输入下面的内容,以 UTF-8 编码保存,使用 XeLaTeX 编译:
1 |
|
在这个例子中,我们用 ctexart
代替了 article
,并增加了 UTF8
的参数。注意:UTF8
参数对于 ctexart
是必不可少的,否则将出现乱码。
你可能说,F**K,都没用到 \usepackage{}
,都没用到宏包,骗人哦~ 上面的只是简化的写法,复杂的写法如下:
1 |
|
\setCJKmainfont{}
用于指定中文字体,你可以打开 C:\Windows\Fonts 查看当前系统可用的中文字体,并填入中文或对应英文(右键属性查看)
注:如果想要查看宏包的具体使用方法,打开 Tex Live command-line,输入
texdoc 宏包名
即可查看宏包的文档
组织文章内容
作者、标题、日期
1 |
|
上面的控制序列都很容易懂,\maketitle
可以将标题、作者、日期按一定格式显示出来,至于如何修改这个格式,需要 titling 宏包,在此不作赘述。
值得一提的是,如果不写日期,只写标题和作者,则 \maketitle 会显示编译的日期,要想不显示日期,只需将 \date{} 括号中置空即可。
章节层次
在 article 和 ctexart 中,有五个控制序列来调整文章结构,从浅到深分别为(后面数字为深度):
\section{...}
:比如 “1 行列式”——1\subsection{...}
:比如 “1.1 n阶行列式的定义”——2\subsubsection{...}
:比如”1.1.1 二阶行列式与三阶行列式”——3\paragraph{...}
:段落——4\subparagraph{...}
:向右缩进的小段落——5
输入下面内容实践一下:
1 |
|
在 report 和 ctexrep 中,还有 \chapter{...}
—— 0;在 book和ctexbook中,还有 \part{...}
—— -1。
目录
在 \maketitle
下面插入 \tableofcontents
,编译两次,就能看到带页码的目录。这种目录只占据一小块区域。
如果在\maketitle
上面插入 \tableofcontents
,则目录占据一整页。
如果要指定显示的深度,可以用:\setcounter{tocdepth}{2}
,只显示深度小于等于2的章节层次。
字体
下面是一些常用的字体设置:
- 英语加粗/中文黑体:
\textbf{...}
(只对括号内有效);\mdseries
(对后面都有效)(下同) - 英语斜体/中文楷体:
\textit{...}
;\itshape
- 字号:(相对于设定的normalsize)从小到大分别为:
\tiny{...}
、\scriptsize{...}
、\footnotesize{...}
、\small{...}
、\nolmalsize{...}
、\large{...}
、\Large{...}
、\LARGE{...}
、\huge{...}
、\Huge{...}
- 下划线:
\underline{...}
- 其他线:
\usepackage{ulem}
\uline{...}
下划线\uuline{...}
双下划线\uwave{...}
波浪线\sout{...}
删除线\xout{...}
斜删除线
只用于英文的设置:
- 罗马字体/花体:
\textrm{...}
;\rmfamily
- 无衬线字体:
\textsf{...}
;\sffamily
- 打字机字体/等宽字体:
\texttt{...}
;ttfamily
只用于中文的字体设置:
- 字体:
\songti{...}
、\heiti{...}
、\fangsong{...}
、\kaishu{...}
- 字号:
\zihao{0}
初号、\zihao{1}
一号、zihao{-1}
小一,以此类推
如果某些字体设置组合比较常用,可以定义一个自己的命令比如:\newcommand{\myfont}[1]{\textit{\textbf{#1}}}
,然后可以直接用\myfont{...}
。关于\newcommand{}[]{}
的更多用法,请看详解newcommand的参数和默认值。
行距
默认使用单倍行距,若要修改,可以用:
1 |
|
引用
在 LaTeX 中,可以在对象(章、节、图、表)后面设置标签,然后在其他位置引用标签来引用对象的页码或编号。
1 |
|
文档中新增标签后,要编译两次才能显示正确的结果。
数学公式
数学公式可是LaTeX最有价值的部分之一。首先,我们需要在导言区加载 amsmath 宏包:
1 |
|
数学模式
LaTeX 的数学模式有两种:行内模式 ( inline ) 和 行内模式 ( display )。顾名思义,就是一个在正文中插入数学公式,另一个单独成行,并自动居中。用法如下:
1 |
|
还有其他控制序列用于插入公式,但太麻烦了,不推荐,仅列举作为参考:
1 |
|
国标以及对应的输入方法
国标“ GB 3102.11 物理科学和技术中使用的数学符号 ”中定义了一系列的符号和输入方法。下面选取其中比较重要的部分。
变量、函数、点、线、弧
变量(x, y)、函数(f, g)、点(A)、线段(AB)、弧(CD)用斜体表示,在 LaTeX 中输入的字母默认就是斜体。
有定义的函数、数学常数、算子
有定义的函数(sin, log)、数学常数(pi, e)、算子(d, div)用正体表示,在 LaTeX 中的输入方法如下:
1 |
|
对于常用有定义的函数,LaTeX中有对应的命令,如:
1 |
|
还有,建议在开头加上 \newcommand{\dif}{\mathop{}\!\mathrm{d}}
,这样就可以直接用 \dif
表示微分 d
括号及间隙
函数的自变量写在后面的括号中,函数和括号之间不留空格;如果自变量不含 +, -, ×, ÷ 等运算符,则可以省略括号,并且函数和自变量之前留一空格;特别的,如果有可能混淆,如 cos x + y,应该加括号,写成:cos(x) + y 或 (cos x) + y
几何、集合、逻辑、运算等符号
参考 Markdown LaTeX 数学符号速查表 ,有一些常用符号在下面列出。
基本元素
希腊字母
|
|||
---|---|---|---|
特征 | 语法 | 效果 | 注释/外部链接 |
|
\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta\Theta |
|
|
\Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi |
|
||
\Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi\Omega |
|
||
|
\alpha \beta \gamma \delta \epsilon \zeta \eta\theta |
||
\iota \kappa\varkappa \lambda \mu \nu \xi \omicron\pi |
|||
\rho \sigma \tau \upsilon \phi \chi \psi\omega |
|||
|
\Epsilon\epsilon\varepsilon |
||
\Theta\theta\vartheta |
|||
\Kappa\kappa\varkappa |
|||
\Pi\pi\varpi |
|||
\Rho\rho\varrho |
|||
\Sigma\sigma\varsigma |
|||
\Phi\phi\varphi |
|||
|
\digamma |
|
上下标
上标用 ^
,下标用 _
。它们只作用于后一个字符,如果要作用于多个字符,则要将字符用 { }
括起来。比如:
1 |
|
分数/分式
\frac{分子}{分母}
用于输入分数/分式,其字号大小取决于模式,在行内模式下会小一点,在行间模式下会大一点,我们也可以用 \dfrac{}{}
(行内)或 \tfarc{}{}
(行间)指定其大小。如:
1 |
|
根号/根式
\sqrt[次数]{开根数}
用于输入根号/根式,次数不写的话就是平方根,如:
1 |
|
运算符
键盘上有的运算符可以直接输入,没有的需要特殊命令:
1 |
|
1 |
|
括号
由于 LaTeX 中 { }
有特殊用途,故要输入必须在前面加\
,如:
1 |
|
括号的写法如下:
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
省略号
1 |
|
空格
LaTeX中的空格只起到分割命令的作用,要输入空格必须使用如下命令:
1 |
|
块状元素
矩阵
使用 pmatrix、bmatrix、Bmatrix、vmatrix、Vmatrix 环境来写不同括号的矩阵,矩阵中用 &
来分隔不同列,用 \\
分隔不同行。
1 |
|
行内的小矩阵可以用 smallmatrix:
1 |
|
对于复杂的矩阵,可以用 array ,它可以设置对齐模式:外部对齐:t 居顶、c 居中(默认)、b 居底;列对齐:l 居左、c 居中、r 居右。矩阵中用 &
来分隔不同列,用 \\
分隔不同行。
1 |
|
1 |
|
长公式
无需对齐的长公式用 multline 环境,要对齐的长公式用 split 环境。用 \\
分行,用 &
对齐。若要不带编号,用 multline*
1 |
|
1 |
|
公式组
不需要对齐的公式组用 gather 环境,需要对齐的公式组用 align 环境。用 \\
分行,用 &
对齐。若要不带编号,用 gather*,align*
1 |
|
1 |
|
分支公式
分段函数等分支公式可以用 cases 环境。
1 |
|
一些有用的宏集
blindtext 测试文字
\usepackage{blindtext}
用法如下
1 |
|
circuitikz 画电路图
\usepackage{circuitikz}
用法见官方wiki circuitikz0.8.3版教程
1 |
|
参考
维基百科:数学公式:http://zh.wikipedia.org/wiki/Help:MATH
一份其实很短的LaTeX入门文档:https://liam.page/2014/09/08/latex-introduction/
LaTeX排版系统简介:http://www.dralpha.com/zh/tech/Inotes2.pdf
油管上的LaTex Tutoial