Компиляция файла tex XeLaTeX с помощью латексма
Как скомпилировать документ 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
и я пробовал другие (например, 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
, но он тоже не работает.
Я ценю любую информацию, которую вы можете предоставить.
Брайан
Ответы
Ответ 1
Это мое быстрое решение , так что 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
latexmk -v
Latexmk, John Collins, 16 January 2010. Version 4.13a
Я положил
$pdflatex = 'xelatex --shell-escape %O %S';
в моем файле .latexmkrc. Это, конечно, обходной путь. Но это работает для меня, когда я звоню
latexmk -pvc -pdf MyXetexFile
Ответ 3
$ 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
latexmk --xelatex job.tex
Теперь аргумент проходим в этой простой форме.
Ответ 5
В версии: 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
Обновлено 2019.08.31 из комментария user36296
.