Compilação xelatex vs. xelatexmk – qual é a diferença?

Compilação xelatex vs. xelatexmk – qual é a diferença?

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 xelatexmke deu instruções para sua configuração.

Minha xelatexmkconfiguração fica assim:

insira a descrição da imagem aqui

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:

insira a descrição da imagem aqui

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:

insira a descrição da imagem aqui

Quando compilo com XeLaTeX, por outro lado, isso me dá o seguinte:

insira a descrição da imagem aqui

Preciso compilar XeLaTeXuma segunda vez para obter o resultado adequado:

insira a descrição da imagem aqui

Tenho certeza de que há uma razão perfeitamente boa para XeLaTeXesse 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 XeLaTeXnas versões futuras do TeX Live deveriam fazer duas iterações de compilação, ou por que xelatexmkdeveriam ser incluídas? Novamente, preciso enfatizar que isso é da perspectiva de um usuário iniciante, que geralmente espera (ou espera) que seu .texdocumento seja compilado facilmente usando algum compilador padrão integrado.

Responder1

O xelatexcomando executa o XeLaTeX exatamente uma vez: ele faz uma execução tipográfica e produz um PDF. Em contraste, xelatexmkexecuta 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.

informação relacionada