
引擎編譯TeX檔時會產生一堆文件,例如pdfLaTeX。我的問題是:如果我們切換到另一個引擎,例如這裡的 XeLaTeX,是否需要刪除所有這些生成的檔案以確保正確編譯。
我已經使用 LaTeX 一段時間了,有時我確實在不同的引擎之間切換,但我還沒有遇到編譯問題。
答案1
一般來說,不,但有時是,那就是刪除總是最安全的,但速度較慢,因為可能需要更多的運行來解決交叉引用,但在某些情況下它總是有可能出錯並且您需要刪除,因此在這些情況下它是先刪除比較快。
就我個人而言,除非出現錯誤,否則我不會刪除。
切換引擎時,「舊」輔助檔案中出現錯誤的最常見原因與其說是引擎的更改,不如說是程式包或選項的更改,這些套件或選項在檢測到正在使用的引擎時採用了不同的默認值。
例如,此文件適用於 pdflatex 或 lualatex(或 xelatex),但從 pdflatex 切換到 luatex 時需要刪除 aux 和 toc 文件,因為目錄資訊是使用inputenc
luatex/xetex 情況下未定義的內部命令寫入的。
這裡有一個相當明顯的針對正在使用的引擎的明確測試以及加載inputenc 和fontenc 的分支,但在其他情況下代碼分支可以隱藏在某些包代碼內並且在文檔中不可見,但在aux 中具有類似的效果文件。
\documentclass{article}
\ifx\Umathchar\undefined
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\fi
\begin{document}
\tableofcontents
\section{hellö world}
\end{document}