![Compilação xelatex vs. xelatexmk – qual é a diferença?](https://rvso.com/image/266421/Compila%C3%A7%C3%A3o%20xelatex%20vs.%20xelatexmk%20%E2%80%93%20qual%20%C3%A9%20a%20diferen%C3%A7a%3F.png)
Estou usando o TeX Live 2012 em um ambiente Windows.
Eu costumava compilar com xelatexmk
, que não está incluído nas "ferramentas de processamento" do TeX Live. Quando quis mudar do LaTeX para o XeLaTeX, li em algum lugar que precisava compilar xelatexmk
e deu instruções para sua configuração.
Minha xelatexmk
configuração fica assim:
Então mudei recentemente para o compilador embutido do TeX Live XeLaTeX
, porque percebi que era mais rápido e sempre dava o mesmo resultado. Essa configuração é assim:
Mas notei uma diferença quando desenho setas com TikZ
. Abaixo está um MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tabular}{cc}
\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (finisharrow) {a}; & \tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (startarrow) {c};
\end{tabular}
\begin{tikzpicture}[remember picture, overlay, shorten <=.1ex, shorten >=.1ex]
\draw [semithick, ->] (startarrow) -- (finisharrow);
\end{tikzpicture}
\end{document}
Quando compilo com xelatexmk
, isso me dá isso:
Quando compilo com XeLaTeX
, por outro lado, isso me dá o seguinte:
Preciso compilar XeLaTeX
uma segunda vez para obter o resultado adequado:
Tenho certeza de que há uma razão perfeitamente boa para XeLaTeX
esse comportamento, mas para usuários novatos como eu, isso resultou em muita frustração, já que não consegui descobrir por que minhas flechas não ficaram como antes. (quando eu usei xelatexmk
).
Esta poderia ser uma razão pela qual XeLaTeX
nas versões futuras do TeX Live deveriam fazer duas iterações de compilação, ou por que xelatexmk
deveriam ser incluídas? Novamente, preciso enfatizar que isso é da perspectiva de um usuário iniciante, que geralmente espera (ou espera) que seu .tex
documento seja compilado facilmente usando algum compilador padrão integrado.
Responder1
O xelatex
comando executa o XeLaTeX exatamente uma vez: ele faz uma execução tipográfica e produz um PDF. Em contraste, xelatexmk
executa o XeLaTeX e outras ferramentas uma ou mais vezes, usando um script para (tentar) determinar quais execuções são necessárias. Depois que você vai além de um documento 'trivial', introduzindo referências cruzadas ou similares, pelo menos duas execuções do XeLaTeX são necessárias para compilar 'completamente' um documento (aqui temos uma espécie de 'rótulo' em termos de posição na saída). Por outro lado, os scripts nem sempre acertam e resolvendo todos os links,etc.normalmente só é essencial para o PDF de 'produção' final. Como tal, muitas pessoas ficam felizes em não usar um script e em fazer as execuções necessariamente adicionais manualmente, o que significa que as execuções intermediárias são mais rápidas. Outros ficam mais felizes com um script fazendo esse trabalho de 'back-end' para eles.