但对于一般人而言,你不需要通过学习 Vim 来达到高效编辑 LaTeX 的方式。而是通过一些比较容易实现的方式,使得你能够在原来的基础上更加高效得使用 LaTeX,并达到以思考的速度输入 LaTeX 的方式。
在第一部分,我会首先介绍高效编辑 LaTeX 文档的几种方式,这能够让你在短时间内迅速提高你的 LaTeX 输入速度。
而第二部分,则是将输入 LaTeX 中遇到的常见问题进行一个总结,例如输入数学字母、自定义定理类环境、参考文献的设置等等。尽管网络上已经有各种各样的教程教你如何使用这些特殊的环境,但搜索时依然能搜索到很多没有用的方案。这是因为你用的 TeX 版本可能跟作者不同,或者是作者所说的方案已经过时但网站没有及时更新等等。我在这里给出我对这些基本环境的一个使用,并会经常进行更新。
我用的 TeX 编译器主要是 TeXPadTeX,这是一款支持实时编译的 TeX 编译器,而不需要手动进行编译。而在 TeXPadTeX 无法处理的文档时,我会选择使用 TeX Live。TeXPadTeX 基本兼容 TeX Live,在使用上没有太大的区别。而对于 CTeX,我由于没有安装 CTeX,所以无法测试。
目录
-
高效编辑 LaTeX 文档的几种方式
-
数学字母
-
自定义定理类环境
-
插入图片
-
参考文献
1 高效编辑 LaTeX 文档的几种方式
1.1 实时预览
用 LaTeX 写文档很好,但它也有一个很明显的缺点,那就是用 LaTeX 写出来的文档,并不是所见即所得。不论是正文还是数学公式或者是参考文献,都需要将其写入 TeX 文件,并进行编译以后才能生成 PDF。而在预览 PDF 文件时,如果你发现有些地方存在书写错误,你就需要更改相应的 TeX 文件,并再次进行编译才能够生成新的 PDF 进行预览。
非所见即所得的 LaTeX 造成了很多困扰,这表示你必须编译以后才能看到内容上的错误,而修改内容又需要重新编译,这是一个重复性操作。另一方面,你只有在编译时,才能够发现 TeX 代码中的错误,这在后期调试时十分不方便。
尽管现在已经有越来越多的编辑器支持「实时预览」,也就是所见即所得。但不论是在功能上,还是体验上,都比不上 TeXPad 这款软件。TeXPad 的一个特色就是左侧编辑右侧预览,几乎无任何延时,并且在报错上也是十分灵敏,方便你在编写的过程中找到错误。
实时预览与实时报错演示
TeXPad 对新手十分友好,通过实时预览和实时报错,能够在入门 LaTeX 时节省很多的时间在调整细节和纠错上。有许多 LaTeX 老手并不喜欢这样的模式,认为再复杂的式子他也可以快速输入。我曾一度也如此认为,直至有一次要输入以下公式:
输入复杂的公式
这个公式的复杂,让我深切体会到 TeXPad 实时编译实时预览的好处。向量需要加粗,括号需要变大,上标需要加上小括号等等。如果没有实时预览,只要有一处没有考虑到就需要重新修改重新编译重新预览,反复如此。而有了实时预览之后,就可以一次性将这个公式打出来。
1.2 文本扩展
在 LaTeX 中插入一张图片或者一个表格并不容易。对于插入图片而言,要定义 figure 环境,设置图片位置、图片的文件名,图片标题等等。对于插入表格而言,需要定义 table 环境,设置表头、对齐方式、表格具体内容等等。插入图片和表格的代码相对比较复杂,不容易记忆。
好在插入图片或者插入表格都有固定的规律可循。比如,插入图片时,我们通常使用类似这样的代码:
\begin{figure}[ht] \centering \includegraphics[width=0.8\textwidth]{x2} \\[0mm] \caption{$y=x^2$} \label{fig:x2} \end{figure}
这样,对于每一张图片,只需这三个大括号中依次填入: 图片名称、图片标题、标签即可。通过 Keyboard Maestro 或 Text Expander 等等软件能够十分方便得通过这三条信息来生成一段插入图片的 LaTeX 代码。例如我设置通过输入 ffig
来插入一张图片,此时会弹出一个对话框,这个对话框就要求我输入这三条信息,输入完成后点击 OK,即可在当前应用程序中生成一段插入指定图片的 LaTeX 代码。
快速插入一张图片
这样的场景在 LaTeX 中十分常见,例如 align
环境、itemize
环境、array
环境、section
环境等等都可以通过这样的方式来自动插入 LaTeX 代码。
使用文本扩展不仅仅意味着你可以少输入很多字母,它更深刻的用处是在你不需要去记忆任何环境的代码规则。在一台新的电脑上,我无法在不查找资料的情况下在 LaTeX 中插入一张图片,但在我自己的电脑上,我很轻松的通过 Keyboard Maestro 来插入一张图片。
1.3 设置缩写
在 LaTeX 中,可以给常用的命令设置缩写。例如在公式中需要对向量 x
进行加粗,但每次都采用 \bm{x}
来进行加粗会比较麻烦。这时我们可以通过 \def
来指定缩写,例如 \def\bx{\bm{x}}
,此时 \bx
与 \bm{x}
完全等价。