使用latexmk编译XeLaTeX tex文件

时间:2010-06-26 14:50:10

标签: latex latexmk xelatex

如何在Mac OS X上使用XeLaTeX编译latexmk 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,但它似乎也没有用。

我感谢您提供的任何见解。

布赖恩

5 个答案:

答案 0 :(得分:16)

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

我把

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

在我的.latexmkrc文件中。当然,这是一种解决方法。但是当我打电话时,它对我有用

latexmk -pvc -pdf MyXetexFile

答案 1 :(得分: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类似。

答案 2 :(得分:9)

$ latexmk -v
Latexmk, John Collins, 27 July 2010. Version 4.18

我使用命令运行:

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

与andre-r和Kay的答案基本相同,但仅限于命令行。

答案 3 :(得分:2)

在版本4.65(2019年6月18日)中,使用-xelatex选项和根据评论之一建议设置-pdflatex之间存在差异。

选项1:-xelatex

$ latexmk -xelatex file.tex

使用-xelatex选项或-pdfxe选项,首先将tex文件排版为xdvextended DVI)文件。然后,调用xdvipdfmxxdv文件转换为pdf文件。

latexmk中,$xelatex_default_switches设置为-no-pdf(第395行),以使xelatex生成xdv文件而不是默认的PDF文件。 / p>

因此,-xelatex选项等效于:

$ xelatex -no-pdf file.tex  # called one or more times to produce file.xdv
$ xdvipdfmx file.xdv        # called only once in the end

选项2:-pdflatex = xelatex

第二个选项是如下设置pdflatex并打开-pdf选项:

# %O is a substitution for options and %S is for source file
$ latexmk -pdflatex='xelatex %O %S' -pdf file.tex

在这种方法中,xelatex用于直接生成PDF文件,而不生成中间输出文件。请注意,今天xelatex首先会生成一个xdv流,并在内部将其传输到xdvipdfmx以生成PDF文件。

因此,这种方法等效于:

$ xelatex file.tex     # called one or more times to produce file.pdf

根据user36296的评论更新了2019.08.31。

答案 4 :(得分:0)

latexmk --xelatex job.tex 现在这个论点可以用这种简单的形式传递。