最近想要用命令行去編譯 latex 文件镀脂。
最簡單的命令,輸入
xelatex a.tex
我隨便寫了一個報錯,看看 Overleaf, Online LaTeX Editor 這個平臺的表現如何名惩。
因為這個項目是開源的泌绣,好奇心的驅使下钮追,讓我想看看他背后用什么命令去編譯的。
從源碼可以看到阿迈,他是使用 latexmk + xelatex 命令編譯的元媚。
如果你還不了解 Latexmk 是什么東東,這里簡單的介紹一下:LaTeX 要生成最終的 PDF 文檔苗沧,如果含有交叉引用刊棕、BibTeX、術語表等等待逞,通常需要多次編譯才行甥角。而使用 Latexmk 則只需運行一次,它會自動幫你做好其它所有事情识樱。通常情況下嗤无,你安裝的 LaTeX 發(fā)行版已經包含了 Latexmk震束,我們并不需要手動安裝它。
一般來說当犯,你可能已經在你的計算機上安裝了它垢村,因為它是 MacTeX 和 MikTeX 它與許多l(xiāng)inux發(fā)行版捆綁在一起。
在最簡單的情況下嚎卫,你只需要輸入
latexmk
如果你想.pdf
文件作為輸出嘉栓,只需輸入:
latexmk -pdf
如果你只想編譯一個特定的.tex
文件在當前目錄中,只需提供文件名:
latexmk myfile.tex
如果要預覽結果拓诸,只需使用
latexmk -pv
如果希望 Latexmk 連續(xù)檢查所有輸入文件中的更改侵佃,并在需要時編譯整個過程并始終顯示結果,請鍵入
latexmk -pvc
使用 xelatex 引擎編譯
latexmk -pvc -xelatex file.tex
Latexmk 有文件監(jiān)測的機制恰响。
它應該可以做到只需運行一次趣钱,然后每次文件保存動作后,自動重新編譯胚宦。
當然首有,選項可以組合在一起,例如枢劝。
latexmk -pdf -pv myfile.tex
運行LaTeX之后井联,當前目錄被大量臨時文件污染;您可以使用這個命令清理
latexmk -c
這不會刪除.pdf
/.ps
/.dvi
如果你想刪除這些文件您旁,使用
latexmk -C
更多的命令烙常,只需要輸入
latexmk -help
更詳細的可以看官網:Latexmk
他上面有詳解。
xelatex 命令行
最簡單的命令
xelatex a.tex
但這個命令遇到錯誤不會停止鹤盒,你必須不斷的按回車鍵才行蚕脏。
以下是幾個比較常用的命令
- -halt-on-error 和 -interaction=nonstopmode 參數 使編譯遇到錯誤時立即停止
- -file-line-error 使報錯輸出文件和行號
- -synctex=1 則開啟 synctex 的功能
更多的命令
xelatex -help
latexmk 結合 xelatex 編譯
比如
latexmk -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -synctex=1 a.tex
參考資料: