file di tex Compile XeLaTeX con latexmk
Domanda
Come si può compilare un documento XeLaTeX
tex utilizzando latexmk
su Mac OS X?
Al momento sto facendo funzionare latexmk job.tex
e ottenendo un errore:
!
********************************************
* XeTeX is required to compile this document.
* Sorry!
********************************************.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
? ^D
! Emergency stop.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
La prima riga del mio file tex è (come suggerito da questo post ):
% !TEX TS-program = xelatexmk
e ho provato altri (ad esempio il programma = XeLaTeX), ma senza alcun risultato.
latexmk
descrive i suoi comandi come segue:
$ latexmk -commands xelatex job
Commands used by latexmk:
To run latex, I use "latex %O %S"
To run pdflatex, I use "pdflatex %O %S"
...
Non non appare bo essere qualsiasi meccanismo logico per la selezione di un programma di tex dalla riga di comando, e non è chiaro dalla sorgente come si potrebbe fare questo, sia.
Ho anche guardato rubber
, ma doesn' t sembrano funzionare sia.
Apprezzo tutta la comprensione che si può essere in grado di fornire.
Brian
Soluzione
Questo è il mio quick fix , in modo che le opere latexmk
con XeLaTeX:
Aggiungere
`elsif (/^-xelatex$/) { $pdf_mode = 1; $pdflatex = 'xelatex %O %S'; $pdf_previewer =
'start evince %O %S';}`
sopra (o quasi) la riga
`elsif (/^-pdf$/) { $pdf_mode = 1; }`
.
Poi si può chiamare latexmk -xelatex file.tex
. Funziona, ma non ho la prova ampiamente. Dovrebbe funzionare in modo simile con lualatex
.
Altri suggerimenti
latexmk -v
Latexmk, John Collins, 16 January 2010. Version 4.13a
ho messo
$pdflatex = 'xelatex --shell-escape %O %S';
nel mio file .latexmkrc. Si tratta di una soluzione alternativa, naturalmente. Ma funziona per me, quando io chiamo
latexmk -pvc -pdf MyXetexFile
$ latexmk -v
Latexmk, John Collins, 27 July 2010. Version 4.18
Ho eseguito con il comando:
latexmk -pdf -e '$pdflatex=q/xelatex %O %S/' foo.tex
, che è fondamentalmente lo stesso come le risposte da andre-r e Kay, ma solo dalla riga di comando.
latexmk --xelatex job.tex
Ora l'argomento è percorribile in questo semplice modulo.
Nella versione:. 4.65 (18 giugno 2019), v'è una differenza tra utilizzando l'opzione -xelatex
e l'impostazione -pdflatex
come suggerito da uno dei commenti
Opzione 1: -xelatex
$ latexmk -xelatex file.tex
Con l'opzione -xelatex
, o l'opzione -pdfxe
, il file tex è la prima tipografia a un xdv
( DVI esteso ). Poi, xdvipdfmx
è chiamato a convertire il file in un file xdv
pdf
.
In latexmk
, $xelatex_default_switches
è impostato per -no-pdf
(linea 395) per avere prodotti xelatex
un file xdv
invece del file PDF predefinito.
Da qui l'opzione -xelatex
è 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
Opzione 2: -pdflatex = XeLaTeX
Una seconda opzione è quella impostata come segue pdflatex
insieme attivando l'opzione -pdf
:
# %O is a substitution for options and %S is for source file
$ latexmk -pdflatex='xelatex %O %S' -pdf file.tex
In questo approccio, xelatex
viene utilizzato per generare direttamente il file PDF, senza generare un file di output intermedio. Si noti che, oggi, xelatex
prima genera un flusso xdv
ed internamente tubi a xdvipdfmx
per produrre un file PDF.
Quindi questo approccio è equivalente a:
$ xelatex file.tex # called one or more times to produce file.pdf
Aggiornamento 2019/08/31 dal commento di user36296
.