Почему команда \includeonly не вычисляет \stepcounter chaptercounter для пропущенных глав?

Почему команда \includeonly не вычисляет \stepcounter chaptercounter для пропущенных глав?

Я большой поклонник команды \includeonly, чтобы сохранять количество страниц нетронутым, печатая только определенные главы. Но мне интересно, почему счетчики глав не изменяются в сценарии, подобном этому:

\documentclass{report}   
\usepackage{filecontents}

\begin{filecontents}{chapterone.tex}
\chapter{First Title}
Text 
\end{filecontents}

\begin{filecontents}{chaptertwo.tex}
\chapter{Second Title}
Text 
\end{filecontents}

\begin{filecontents}{chapterthree.tex}
\chapter{Third Title}
Text 
\end{filecontents}

\includeonly{chapterone,chapterthree}

\begin{document}
\include{chapterone}
\include{chaptertwo}
%\stepcounter{chapter} % I have to manually step it here to get the right chapter number for three
\include{chapterthree}
\end{document}

Если LaTeX проходит по содержанию второй главы, чтобы определить, сколько страниц он пропускает, чтобы начать с правильного номера для последующих глав, есть ли причина, по которой он не проверяет/не проходит счетчики глав? Или я неправильно его использую или чего-то не понял?

решение1

LaTeX вообще не открывает невключенные файлы, а просто открывает их .auxфайлы. Значения всех счетчиков LaTeX сохраняются в aux-файле каждого включенного файла.

Итак, если вы это сделаете \includeonly{chaptertwo}, то \include{chapterone}установите все объявленные счетчики латекса в значения, которые они имели в конце обработки.chapterone.tex последний раз, когда это было включено.

Поэтому периодически следует обрабатывать весь документ так, \includeonlyчтобы сохраненные значения в каждой \includeточке были ближе к правильным значениям.

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