中文乱码问题
Windows 下的 TeX 开发软件 MiKTeX 并不提供原生的中文支持,所以不能直接使用 MiKTex 编写含有汉字的文档。CTeX 通过向 MikTex 中添加中文格式和字体解决了汉字编排问题。
但有些时候,即使使用 CTeX 编写汉字文档,也会出现乱码并终止编译过程。这个时候就要检查文档的编码格式了。LaTex 源代码可以使用不同的字符编码格式保存。对于简体中文而言,最常见的编码格式有 GBK(GB2312) 和 UTF-8. 只有代码的编码格式和 LaTex 编译器接受的格式一致时,文档才可以正确编译。也就是说,避免出现乱码的方法有两种:
- 源代码和编译器设定都使用 GBK 编码
- 源代码和编译器设定都使用 UTF-8 编码
默认的 CTeX 环境优先支持 GBK,Windows 系统的默认编码格式也是 GBK (至少 XP 是这样)。如果源代码使用了 GBK 之外的格式,可以通过 Notepad++ 等文本编辑器转为 GBK 格式。
不过,使用 UTF-8 编码依旧是大势所趋,在 CTeX 中启用 UTF8 选项即可读取 UTF-8 格式的文本。启用该选项的方法很简单,找到文档的初始位置
1 | \documentclass{article} |
改为
1 | \documentclass[UTF8]{article} |
或者直接使用 ctexart, 即"ctex article"
1 | \documentclass{ctexart} |
如果你还嫌麻烦,可以一个字都不改,直接使用 xelatex 引擎编译。
类似地,把方括号中的 UTF8 换成 CJK 可以强制使用 GBK 编码格式。
喜欢使用 Sublime Text 的同学不要错过 ConvertToUTF8 这款插件,它可以实现 GBK 和 UTF-8 文件的读取和转换。
段落与换行
在源代码中空一行以另起一段,使用\\
标记可以在此处另起一行。这两种用法的区别在英文文档中不是很明显。在中文文档中,如果设置了首行缩进,另起一段会缩进随后的文字,而另起一行就没有缩进的效果。
内联公式
使用两个美元符$...$
括起来的部分是内联公式,里面的内容将按照数字模式而不是段落模式的规则处理。与其他诸多特殊符号一样,要在文档中输入一个美元符,请使用反斜杠作为转义字符\$
。
内联公式最大的特点是不能添加公式号。也不建议使用它书写多行公式,在有限的行距内很难看清。
对齐数学公式
当遇到长篇幅的公式推导时,我们希望公式的每一行可以相互对齐,而不会显得乱糟糟。数学模式依旧使用\\
线为公式换行,但需要手动指定公式的对齐方法。
例如,当公式中出现多个等号的时候,通常指定所有的等号上下对齐,这可以通过在等号前或等号后加上&
制表标记来实现。为了美观,我们选用 amsmath 扩展包下的 align 环境编写多行公式
1 | \begin{align} |
式中的\
号用于增大间隙,并没有实际意义。数学模式下其他可以用来增大间距的符号有\,
, \:
, \;
, \quad
和 \qquad
。
隐藏公式的标号
当使用 align, eqnarry, equation 等环境编写非内联数学公式时,LaTex 引擎会自动给公式附加一个标号。如果不想给该公式编号,把环境名称修改为 align*, eqnarry*, equation* 即可。
在数学模式下编写多行公式时,由\\
分开的每一行都会有一个公式标号。如果要隐藏某一行的标号,可以在\\
之前使用\nonumber
标记
1 | \begin{align} |
在上面的例子里,只有最后一行会显示公式的标号。
子公式的拆分
有时一个公式组由几个相关的公式组成,每个子公式需要单独编号,这时可以使用 amsmath 包中的 subequations 环境。回到之前的例子
1 | \begin{subequations} \label{eq:3.3} |
整个公式组为公式(3.3), 第一行是公式(3.3a), 第二行是公式(3.3b). subequations 环境中的\label
标签引用了整个公式,而 align 环境中的\label
标签则引用单个子公式。
公式的引用
amsmath 中的 \eqref
标记通过引用预先设定的\label
标签引用公式。它会在生成的文档中显示公式号,并创建一个指向公式的链接。
1 | 公式\eqref{eq:3.3}是线性随机系统的状态方程。 |
会被编译成
1 | 公式(3-3)是线性随机系统的状态方程。 |
\label
标签可以使用任何数字字符或标点符号,例如把上面公式中的\label{eq:3.3}
替换成\label{3-linear-sto-sys}
, 在引用时使用\eqref{3-linear-sto-sys}
就会得到相同的结果。只要它是第三章的第3个公式,就会被编译成(3-3)
或者类似的格式。