Mac 編輯器 Latexian 內建了使用latex+dvips
、pdflatex
和進行編譯的方法xelatex
。此外,它分別假設bibtex
和makeindex
處理參考書目和索引。
如何自訂要使用的 Latexian,例如用於編譯的 LuaTeX 或用於參考書目的 Biber?
答案1
Latexian 的編寫方式,內建方法不能根據任何使用者偏好進行更改。在我看來,這是一個嚴重的設計缺陷,但為這個限制創建一個解決方法並不難。
這個解決方法有兩個組成部分:一個腳本,該腳本放置在本地資料夾中,並替換(從 Latexian 的角度來看)Latexian 所了解的三個 TeX 引擎中的一個或多個。該腳本繞過這些引擎,而是使用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
建立到該腳本的符號連結。pdflatex
然後建立到真實latex
and的符號連結dvips
(否則 Latexian 在使用這個時總是會回傳錯誤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 Distribution 的資料夾。預設情況下,此設定為/Library/TeX/texbin
(/usr/texbin/
在較舊的 MacTeX 發行版中),但我們現在希望 Latexian 使用我們建立的本機資料夾。使用瀏覽按鈕選擇latexian-bin
資料夾。如果您的操作正確,您應該會看到以下內容:
您的實際路徑將有所不同,/Users/alan/latexian-bin
但看起來應該相似。不要擔心其他一些二進位檔案被刪除並顯示“未找到”。這其實並不重要。
現在,您已經將 LaTeXian 指向其自己的本機二進位資料夾,現在不再使用pdflatex
您進行編譯,而是使用arara
.現在,對於每個文檔,您需要arara
在文件頂部提供正確的行,以指示該文件使用哪些二進位。
對於基本pdflatex
文件,您應該使用:
% arara: pdflatex: { synctex: yes }
為了xelatex
% arara: xelatex: { synctex: yes }
為了lualatex
% arara: lualatex: { synctex: yes }
也可以使用 add 編譯檔bibtex
:
% arara: bibtex
要使用 add 來代替編譯biber
:
% arara: biber
這就是您需要做的全部。
實施注意事項
使用此方法,您不需要使用 Latexian 首選項來指定編譯數量或附屬程式bibtex
和makeglossaries
或makeindex
;這些都可以通過arara
.
如果您不想用於arara
所有編譯,則只需將pdflatex
或xelatex
命令連結到arara
腳本,將另一個命令連結到/Library/TeX/texbin
.然後,您可以使用 Latexian 的 GetInfo 選單項目為每個檔案選擇一個或另一個。如果您大部分時間主要使用一個引擎,這可能是最實用的解決方案,因為使用arara
會比直接使用引擎稍微慢一些。