实时预览

用 LaTeX 写文档很好,但它也有一个很明显的缺点,那就是用 LaTeX 写出来的文档,并不是所见即所得。不论是正文还是数学公式或者是参考文献,都需要将其写入 TeX 文件,并进行编译以后才能生成 PDF。而在预览 PDF 文件时,如果你发现有些地方存在书写错误,你就需要更改相应的 TeX 文件,并再次进行编译才能够生成新的 PDF 进行预览。

非所见即所得的 LaTeX 造成了很多困扰,这表示你必须编译以后才能看到内容上的错误,而修改内容又需要重新编译,这是一个重复性操作。另一方面,你只有在编译时,才能够发现 TeX 代码中的错误,这在后期调试时十分不方便。

尽管现在已经有越来越多的编辑器支持「实时预览」,也就是所见即所得。但不论是在功能上,还是体验上,都比不上 TeXPad 这款软件。TeXPad 的一个特色就是左侧编辑右侧预览,几乎无任何延时,并且在报错上也是十分灵敏,方便你在编写的过程中找到错误。

实时预览与实时报错演示

实时预览与实时报错演示

TeXPad 对新手十分友好,通过实时预览和实时报错,能够在入门 LaTeX 时节省很多的时间在调整细节和纠错上。有许多 LaTeX 老手并不喜欢这样的模式,认为再复杂的式子他也可以快速输入。我曾一度也如此认为,直至有一次要输入以下公式:

输入复杂的公式

输入复杂的公式

这个公式的复杂,让我深切体会到 TeXPad 实时编译实时预览的好处。向量需要加粗,括号需要变大,上标需要加上小括号等等。如果没有实时预览,只要有一处没有考虑到就需要重新修改重新编译重新预览,反复如此。而有了实时预览之后,就可以一次性将这个公式打出来。

文本扩展

在 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 来插入一张图片。

设置缩写

在 LaTeX 中,可以给常用的命令设置缩写。例如在公式中需要对向量 x 进行加粗,但每次都采用 \\bm{x} 来进行加粗会比较麻烦。这时我们可以通过 \\def 来指定缩写,例如 \\def\\bx{\\bm{x}},此时 \\bx\\bm{x} 完全等价。

设置缩写

设置缩写

通过设置缩写,可以将 LaTeX 中较长的代码直接通过一个小命令来使用,这在编写 TeX 文档时可以节省不少时间。