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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top