tex archivo de compilación XeLaTeX con latexmk
Pregunta
¿Cómo se puede compilar un documento XeLaTeX
tex usando latexmk
en Mac OS X?
En la actualidad estoy corriendo latexmk job.tex
y conseguir un error:
!
********************************************
* XeTeX is required to compile this document.
* Sorry!
********************************************.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
? ^D
! Emergency stop.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
La primera línea de mi archivo tex es (según lo sugerido por este post ):
% !TEX TS-program = xelatexmk
y he probado otros (por ejemplo, el programa = XeLaTeX), pero fue en vano.
latexmk
describe sus comandos de la siguiente manera:
$ latexmk -commands xelatex job
Commands used by latexmk:
To run latex, I use "latex %O %S"
To run pdflatex, I use "pdflatex %O %S"
...
No parece bo ser cualquier mecanismo lógico para la selección de un programa tex desde la línea de comandos, y no está claro a partir de la fuente de cómo se podría hacer esto, tampoco.
También he mirado en rubber
, pero que doesn' t parece funcionar bien.
Agradezco cualquier idea de que puede ser capaz de proporcionar.
Brian
Solución
Esa es mi solución rápida , por lo que las obras latexmk
con XeLaTeX:
Añadir
`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer =
'start evince %O %S';}`
anteriormente (o cerca de) la línea
`elsif (/^-pdf$/) { $pdf_mode = 1; }`
.
A continuación, puede llamar latexmk -xelatex file.tex
. Funciona, pero no he probado ampliamente. En caso de trabajar de manera similar con lualatex
.
Otros consejos
latexmk -v
Latexmk, John Collins, 16 January 2010. Version 4.13a
Me puse
$pdflatex = 'xelatex --shell-escape %O %S';
en mi archivo .latexmkrc. Se trata de una solución, por supuesto. Pero a mí me funciona cuando llamo
latexmk -pvc -pdf MyXetexFile
$ latexmk -v
Latexmk, John Collins, 27 July 2010. Version 4.18
funciono con el comando:
latexmk -pdf -e '$pdflatex=q/xelatex %O %S/' foo.tex
que es básicamente el mismo que las respuestas de Andre-r y Kay, pero sólo desde la línea de comandos.
latexmk --xelatex job.tex
Ahora el argumento es transitable en este sencillo formulario.
En la versión:. 4.65 (18 de junio 2019), hay una diferencia entre el uso de la opción -xelatex
y el establecimiento de -pdflatex
según lo sugerido por uno de los comentarios
Opción 1: -xelatex
$ latexmk -xelatex file.tex
Con la opción -xelatex
, o la opción -pdfxe
, el archivo tex es la primera composición tipográfica a una xdv
( DVI extendida ) archivo. A continuación, se llama xdvipdfmx
para convertir el archivo a un archivo xdv
pdf
.
En latexmk
, $xelatex_default_switches
se establece en -no-pdf
(línea 395) para tener productos xelatex
un archivo xdv
en lugar del archivo PDF predeterminado.
Por lo tanto la opción -xelatex
es equivalente a:
$ xelatex -no-pdf file.tex # called one or more times to produce file.xdv
$ xdvipdfmx file.xdv # called only once in the end
Opción 2: -pdflatex = XeLaTeX
Una segunda opción es la de conjunto pdflatex
como sigue junto con activación de la opción -pdf
:
# %O is a substitution for options and %S is for source file
$ latexmk -pdflatex='xelatex %O %S' -pdf file.tex
En este enfoque, xelatex
se utiliza para generar el archivo PDF directamente, sin generar un archivo de salida intermedia. Tenga en cuenta que, en la actualidad, xelatex
genera primero una corriente xdv
y tuberías internamente a xdvipdfmx
para producir un archivo PDF.
Por lo tanto este método es equivalente a:
$ xelatex file.tex # called one or more times to produce file.pdf
Actualizado 31/08/2019 de comentario de user36296
.