Mac 编辑器 Latexian 内置了使用latex+dvips
、pdflatex
和进行编译的方法xelatex
。此外,它还假设bibtex
和makeindex
分别处理参考书目和索引。
我如何定制 Latexian 的使用,例如使用 LuaTeX 进行编译或使用 Biber 进行参考书目?
答案1
Latexian 的编写方式使得内置方法无法根据用户偏好进行更改。在我看来,这是一个严重的设计缺陷,但创建一种解决方案来弥补这一缺陷并不难。
解决方法有两个组件:一个放在本地文件夹中的脚本,它会替换 Latexian 所知道的三个 TeX 引擎中的一个或多个(从 Latexian 的角度来看)。该脚本会绕过这些引擎,而是使用自动化工具arara
来控制所有编译。通过使用,arara
您可以非常精细地控制每个文档所需的确切编译链。
arara简介
为了理解它的工作原理,您首先需要了解arara
。 arara
允许您向文档添加注释,告诉它如何编译该文档。一个简单的用法如下:
% arara: pdflatex
这将告诉arara
用 处理文档pdflatex
。一个稍微复杂一点的例子(但概念上同样简单)是:
% arara: pdflatex
% arara: bibtex
% arara: pdflatex
% arara: pdflatex
这将编译一个文档,运行bibtex
,然后再编译两次以解析引用。
从这些小例子中,应该清楚的是全部MacTeX 中可用的二进制文件将可供arara
,这意味着如果我们可以使用 Latexian,arara
我们就可以让 Latexian 使用任何 TeX 二进制文件。我们接下来转向这项任务。
让 Latexian 使用 arara
首先,我们创建一个本地文件夹,并将 Latexian 指向该文件夹。您可以使用 Finder 或终端执行此操作。在此示例中,我们将该文件夹命名为latexian-bin
。
mkdir ~/latexian-bin
在文本编辑器中,创建以下文件:
#!/bin/bash
export PATH=/Library/TeX/texbin:/usr/local/bin:${PATH}
arara -v "${@:$#}"
将其保存为文件夹arara
中的以下内容latexian-bin
。您必须使文件可执行,因此在终端窗口中输入:
cd ~/latexian-bin
chmod +x arara
最后,为Latexian 知道的xelatex
和二进制文件创建指向此脚本的符号链接。然后为真正的和创建符号链接(否则 Latexian 在使用此 时将始终返回错误。)pdflatex
latex
dvips
latex+dvips
ln -s arara pdflatex
ln -s arara xelatex
ln -s /Library/TeX/texbin/latex latex
ln -s /Library/TeX/texbin/dvips dvips
ln -s /Library/TeX/texbin/synctex synctex
现在在 Latexian 中,转到“首选项”并选择“预览”。在此首选项中,您可以选择 TeX 发行版的文件夹。默认情况下,它设置为/Library/TeX/texbin
(/usr/texbin/
在较旧的 MacTeX 发行版中),但我们现在希望 Latexian 使用我们创建的本地文件夹。使用“浏览”按钮选择文件latexian-bin
夹。如果您操作正确,您应该会看到以下内容:
您的实际路径将有所不同,/Users/alan/latexian-bin
但看起来应该相似。不要担心其他一些二进制文件被划掉并显示“未找到”。这实际上并不重要。
pdflatex
现在,您已将 LaTeXian 指向其自己的本地二进制文件夹,现在您将使用而不是 进行编译。现在,对于每个文档,您需要在文件顶部arara
提供正确的行,以指示它要为该文件使用哪些二进制文件。arara
对于基本pdflatex
文件您应该使用:
% arara: pdflatex: { synctex: yes }
为了xelatex
% arara: xelatex: { synctex: yes }
为了lualatex
% arara: lualatex: { synctex: yes }
还可以使用以下方法编译文件bibtex
:
% arara: bibtex
要编译,请biber
添加:
% arara: biber
这就是您需要做的全部事情。
实施说明
使用这种方法您不需要使用 Latexian 偏好设置来指定编译数量或附属程序bibtex
和makeglossaries
或makeindex
;这些都可以通过来完成arara
。
如果您不想arara
对所有编译都使用,只需将pdflatex
或xelatex
命令链接到arara
脚本,将另一个命令链接到 中的正常二进制文件/Library/TeX/texbin
。然后,您可以使用 Latexian 的 GetInfo 菜单项为每个文件选择其中一个。如果您大多数时间主要使用一个引擎,这可能是最实用的解决方案,因为使用arara
会比直接使用引擎稍慢。