2010-06-26 18 views
17

¿Cómo se puede compilar un documento XeLaTeX tex utilizando latexmk en Mac OS X?Compilar el archivo XeLaTeX tex con latexmk

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 (como lo sugiere this post):

% !TEX TS-program = xelatexmk 

y he probado otros (por ejemplo, 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 es claro a partir de la fuente de cómo se podría hacer esto , ya sea.

También he visto rubber, pero parece que tampoco funciona.

Agradezco cualquier idea que pueda proporcionar.

Brian

+0

¿Qué versión de latexmk estás usando? Al margen del original, ¿existe la versión Texshop de latexmk mantenida por Herbert Schulz, o la versión predeterminada de Texlive de John Collins? Mire la salida a latexmk -v para ver cuál. Solo la versión Texshop viene empaquetada con xelatexmk y reconoce las directivas TEX; con la versión jcc, tendrá que escribir un archivo RC para invocar xelatex y cómo manejar archivos xdv. –

+0

@Charles - gracias por la publicación - eso es bastante útil. Estoy usando la versión de John Collins, de Texlive. –

Respuesta

10

Esa es mi solución rápida, de manera que latexmk obras con XeLaTeX:
Añadir

`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer = 
'start evince %O %S';}` 

anterior (o cerca de) la línea

`elsif (/^-pdf$/) { $pdf_mode = 1; }` 

.

Luego puede llamar al latexmk -xelatex file.tex. Funciona, pero no lo probé extensivamente. Debería funcionar de manera similar con lualatex.

+12

Agregaré una opción -xelatex a latexmk en la próxima versión (4.31). Esto funcionará como la modificación dada aquí (a excepción de la configuración de la vista previa para mostrar). –

+0

¡Gracias por implementar eso! ¡Cambio muy útil! – Chris

+1

Notablemente, a partir de la versión 4.24, puede obtener este mismo efecto haciendo 'latexmk -pdflatex = 'xelatex% O% S' -pdf [...]' en lugar de modificar el script latexmk. Es un poco detallado, pero hace el trabajo bien. Si/cuando se agrega una bandera, preferiría que estuviera basada en una variable $ xelatex. De esta forma podemos definir la variable en ~/.latexmkrc para pasar banderas, etc., como lo hacemos ahora con $ latex y $ pdflatex. –

16
latexmk -v 
Latexmk, John Collins, 16 January 2010. Version 4.13a 

puse

$pdflatex = 'xelatex --shell-escape %O %S'; 

en mi archivo .latexmkrc. Esta es una solución, por supuesto. Pero a mí me funciona cuando llamo

latexmk -pvc -pdf MyXetexFile 
8
$ 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 el línea de comando.

Cuestiones relacionadas