Компиляция файлов TeX с помощью разных движков

Компиляция файлов TeX с помощью разных движков

Куча файлов будет сгенерирована движком, например, pdfLaTeX, когда он компилирует файл TeX. Мой вопрос: нужно ли нам удалять все эти сгенерированные файлы, чтобы обеспечить правильную компиляцию, если мы перейдем на другой движок, например, 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}

Связанный контент