30

如何在 Mac OS X 上编译XeLaTeXtex 文档?latexmk

目前我正在运行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 文件的第一行是(正如这篇文章所建议的):

% !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,但它似乎也不起作用。

感谢您提供的任何见解。

布赖恩

4

5 回答 5

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

我放

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

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

latexmk -pvc -pdf MyXetexFile
于 2011-06-13T12:14:21.910 回答
11

这是我的快速修复,因此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.

于 2010-07-29T12:29:27.397 回答
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 的答案基本相同,但仅来自命令行。

于 2011-07-17T21:56:39.070 回答
7

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

于 2018-05-25T10:19:28.463 回答
6

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

选项 1:-xelatex

$ latexmk -xelatex file.tex

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

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

因此,该-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 。

于 2019-08-31T01:13:07.397 回答