Скомпилируйте текстовый файл XeLaTeX с latexmk
Как можно составить XeLaTeX
текстовый документ с использованием 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 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"
...
Похоже, что нет никакого логического механизма выбора текстовой программы из командной строки, и из источника также не ясно, как это можно сделать.
Я также посмотрел на rubber
, но, похоже, тоже не работает.
Я ценю любую информацию, которую вы можете предоставить.
Брайан
4 ответа
Это мое быстрое решение, так что 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, но только из командной строки.
В версии: 4.65 (18 июня 2019 г.) есть разница между использованием -xelatex
вариант и настройка -pdflatex
как было предложено одним из комментариев.
Вариант 1: -xelatex
$ latexmk -xelatex file.tex
С -xelatex
вариант, или -pdfxe
вариант, текстовый файл сначала набирается в 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
Вариант 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
Обновлено 31.08.2019 от user36296
комментарий.
latexmk --xelatex job.tex
Теперь аргумент сносен в этой простой форме.