Bri*_*unt 23 latex latexmk xelatex
如何在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
Run Code Online (Sandbox Code Playgroud)
我TEX文件的第一行是(通过所建议的这个帖子):
% !TEX TS-program = xelatexmk
Run Code Online (Sandbox Code Playgroud)
我尝试过其他人(例如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"
...
Run Code Online (Sandbox Code Playgroud)
从命令行中选择tex程序似乎没有任何逻辑机制,并且从源头也不清楚如何做到这一点.
我也看过了rubber,但它似乎也没有用.
我感谢您提供的任何见解.
布赖恩
小智 17
latexmk -v
Latexmk, John Collins, 16 January 2010. Version 4.13a
Run Code Online (Sandbox Code Playgroud)
我放
$pdflatex = 'xelatex --shell-escape %O %S';
Run Code Online (Sandbox Code Playgroud)
在我的.latexmkrc文件中.当然,这是一种解决方法.但是当我打电话时,它对我有用
latexmk -pvc -pdf MyXetexFile
Run Code Online (Sandbox Code Playgroud)
and*_*e-r 10
这是我的快速修复,因此latexmk适用于XeLaTeX:
添加
`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer =
'start evince %O %S';}`
Run Code Online (Sandbox Code Playgroud)
在线上方(或附近)
`elsif (/^-pdf$/) { $pdf_mode = 1; }`
Run Code Online (Sandbox Code Playgroud)
.
然后你可以打电话latexmk -xelatex file.tex.工作,但我没有广泛测试.应该与之相似lualatex.
$ latexmk -v
Latexmk, John Collins, 27 July 2010. Version 4.18
Run Code Online (Sandbox Code Playgroud)
我运行命令:
latexmk -pdf -e '$pdflatex=q/xelatex %O %S/' foo.tex
Run Code Online (Sandbox Code Playgroud)
这与andre-r和Kay的答案基本相同,但仅限于命令行.
在版本:4.65(2019 年 6 月 18 日)中,使用其中一条评论建议的-xelatex选项和设置之间存在差异-pdflatex。
$ latexmk -xelatex file.tex
Run Code Online (Sandbox Code Playgroud)
使用-xelatex选项或-pdfxe选项,tex 文件首先被排版为xdv(扩展 DVI)文件。然后,xdvipdfmx调用将xdv文件转换为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
Run Code Online (Sandbox Code Playgroud)
第二个选项是在pdflatex打开-pdf选项的同时进行如下设置:
# %O is a substitution for options and %S is for source file
$ latexmk -pdflatex='xelatex %O %S' -pdf file.tex
Run Code Online (Sandbox Code Playgroud)
在这种方式中,xelatex用于直接生成PDF文件,不生成中间输出文件。请注意,今天,xelatex首先生成一个xdv流并在内部通过管道将xdvipdfmx其生成为 PDF 文件。
因此,这种方法等效于:
$ xelatex file.tex # called one or more times to produce file.pdf
Run Code Online (Sandbox Code Playgroud)
从user36296的评论更新 2019.08.31 。