Вопрос

Как можно компилировать 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

И я пробовал других (например, программа = кселатекс), но безрезультатно.

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"
   ...

Не отображается Bo какого-либо логического механизма для выбора программы 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 (18 июня 2019 г.), существует разница между использованием -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