如何在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
,但它似乎也没有用。
我感谢您提供的任何见解。
布赖恩
答案 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
之间存在差异。
$ latexmk -xelatex file.tex
使用-xelatex
选项或-pdfxe
选项,首先将tex文件排版为xdv
(extended DVI)文件。然后,调用xdvipdfmx
将xdv
文件转换为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
第二个选项是如下设置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
现在这个论点可以用这种简单的形式传递。