2010-06-26 391 views
17

如何在Mac OS X上使用latexmk編譯XeLaTeX tex文檔?使用latexmk編譯XeLaTeX tex文件

目前我正在latexmk job.tex,卻得到了錯誤:

! 
******************************************** 
* XeTeX is required to compile this document. 
* Sorry! 
********************************************. 
\RequireXeTeX ...********************************} 
                \endgroup \fi 
l.18 \RequireXeTeX 

? ^D 
! Emergency stop. 
\RequireXeTeX ...********************************} 
                \endgroup \fi 
l.18 \RequireXeTeX 

我TEX文件的第一行是(通過this post的建議):

% !TEX TS-program = xelatexmk 

,我已經試過別人(例如program = xelatex),但無濟於事。

latexmk描述它的命令如下:

$ latexmk -commands xelatex job 
Commands used by latexmk: 
    To run latex, I use "latex %O %S" 
    To run pdflatex, I use "pdflatex %O %S" 
    ... 

似乎沒有博是在命令行中選擇一個TEX程序的任何邏輯機制,目前還不清楚從源頭人會怎麼做呢,要麼。

我也看過rubber,但它似乎也沒有工作。

我很感謝您能夠提供的任何見解。

布賴恩

+0

您使用的是哪種版本的latexmk? Besiedes最初,Herbert Schulz維護的Texshop版本的latexmk,或John Collins的Texlive默認版本?看看輸出到latexmk -v看哪個。只有Texshop版本與xelatexmk一起打包並識別!TEX指令;與jcc版本,你將不得不寫一個RC文件來調用xelatex和如何處理xdv文件。 – 2010-06-28 09:58:35

+0

@Charles - 謝謝你的發帖 - 這非常有幫助。我正在使用來自Texlive的John Collins的版本。 – 2010-06-29 01:11:46

回答

10

這是我速戰速決,使latexmk作品與XeLaTeX:
添加

`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer = 
'start evince %O %S';}` 

以上(或附近)行

`elsif (/^-pdf$/) { $pdf_mode = 1; }` 

。您可以撥打latexmk -xelatex file.tex。工程,但我沒有廣泛的測試。應該與lualatex類似地工作。

+12

我會在下一個版本(4.31)中爲latexmk添加一個-xelatex選項。這將像這裏給出的修改一樣工作(除了預覽器的設置以外)。 – 2011-12-24 19:39:05

+0

感謝您的實施!非常有用的開關! – Chris 2012-10-31 15:50:07

+1

值得注意的是,從版本4.24開始,您可以通過執行'latexmk -pdflatex ='xelatex%O%S'-pdf [']'而不是修改latexmk腳本來獲得相同的效果。這有點冗長,但它完成了工作。如果/添加標誌時,如果基於變量$ xelatex,我更喜歡它。通過這種方式,我們可以在〜/ .latexmkrc中定義變量,以便像我們現在使用$ latex和$ pdflatex那樣傳遞標誌等。 – 2012-12-05 23:28:43

16
latexmk -v 
Latexmk, John Collins, 16 January 2010. Version 4.13a 

我把

$pdflatex = 'xelatex --shell-escape %O %S'; 

在我.latexmkrc文件。當然,這是一種解決方法。但它爲我工作,當我打電話

latexmk -pvc -pdf MyXetexFile 
8
$ latexmk -v 
Latexmk, John Collins, 27 July 2010. Version 4.18 

我用命令來運行:

latexmk -pdf -e '$pdflatex=q/xelatex %O %S/' foo.tex 

這基本上是一樣的,從安德烈-R和凱的答案,但只能從命令行。