xelatex 以及 latexmk 命令行編譯

最近想要用命令行去編譯 latex 文件。html

最簡單的命令,輸入linux

xelatex a.tex

我隨便寫了一個報錯,看看 Overleaf, Online LaTeX Editor 這個平臺的表現如何。git

由於這個項目是開源的,好奇心的驅使下,讓我想看看他背後用什麼命令去編譯的。github

源碼文件地址:https://github.com/overleaf/clsi/blob/a883084bba5491ced188db7b32e64c988ffe73ca/app/js/LatexRunner.js#L188app

從源碼能夠看到,他是使用 latexmk + xelatex 命令編譯的。.net

若是你還不瞭解 Latexmk 是什麼東東,這裏簡單的介紹一下:LaTeX 要生成最終的 PDF 文檔,若是含有交叉引用、BibTeX、術語表等等,一般須要屢次編譯才行。而使用 Latexmk 則只需運行一次,它會自動幫你作好其它全部事情。一般狀況下,你安裝的 LaTeX 發行版已經包含了 Latexmk,咱們並不須要手動安裝它。命令行

通常來講,你可能已經在你的計算機上安裝了它,由於它是 MacTeX 和 MikTeX 它與許多linux發行版捆綁在一塊兒。code

在最簡單的狀況下,你只須要輸入htm

latexmk

若是你想.pdf文件做爲輸出,只需輸入:文檔

latexmk -pdf

若是你只想編譯一個特定的.tex文件在當前目錄中,只需提供文件名:

latexmk myfile.tex

若是要預覽結果,只需使用

latexmk -pv

若是但願 Latexmk 連續檢查全部輸入文件中的更改,並在須要時編譯整個過程並始終顯示結果,請鍵入

latexmk -pvc

使用 xelatex 引擎編譯

latexmk -pvc -xelatex file.tex

Latexmk 有文件監測的機制。

它應該能夠作到只需運行一次,而後每次文件保存動做後,自動從新編譯。
固然,選項能夠組合在一塊兒,例如。

latexmk -pdf -pv myfile.tex

運行LaTeX以後,當前目錄被大量臨時文件污染;您能夠使用這個命令清理

latexmk -c

這不會刪除.pdf /.ps /.dvi若是你想刪除這些文件,使用

latexmk -C

更多的命令,只須要輸入

latexmk -help

更詳細的能夠看官網:Latexmk

他上面有詳解。

xelatex 命令行

最簡單的命令

xelatex a.tex

但這個命令遇到錯誤不會中止,你必須不斷的按回車鍵才行。

如下是幾個比較經常使用的命令

  1. -halt-on-error 和 -interaction=nonstopmode 參數 使編譯遇到錯誤時當即中止
  2. -file-line-error 使報錯輸出文件和行號
  3. -synctex=1 則開啓 synctex 的功能

更多的命令

xelatex -help

latexmk 結合 xelatex 編譯

好比

latexmk -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -synctex=1  a.tex

參考資料:

一、LaTeX 技巧938:如何配置 latexmk

二、Using Latexmk - homepage

相關文章
相關標籤/搜索