
Я большой поклонник команды \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
точке были ближе к правильным значениям.