一个人如何编译 XeLaTeX TEX文档使用 latexmk 在Mac OS X上?

目前我正在跑步 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

而且我尝试了其他人(例如程序= 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, ,但这似乎也不起作用。

感谢您可能能够提供的任何见解。

布莱恩

有帮助吗?

解决方案

那是我的 快速解决, , 以便 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.

其他提示

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

我放

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

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

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

我用命令运行:

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

基本上与Andre-R和Kay的答案相同,但仅来自命令行。

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

版本:4.65(2019年6月18日),使用 -xelatex 选项和设置 -pdflatex 正如其中一条评论所建议的。

选项1:-XELATEX

$ latexmk -xelatex file.tex

-xelatex 选项或 -pdfxe 选项,Tex文件是第一个排版 xdv (扩展DVI) 文件。然后, xdvipdfmx 被称为转换 xdv 归档到a pdf 文件。

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

更新了2019.08.31 user36296评论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top