В типичном документе после команды \chapter
выполняется автоматическая разрывы страниц. Например, посмотрим, что \chapter
делает в report.cls
:
\newcommand\chapter{\[email protected]\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\[email protected]
\@afterindentfalse
\secdef\@chapter\@schapter}
Он выдает \clearpage
(или \cleardoublepage
), гиперемия все, что в ожидании, и, начиная с новой страницы.
Таким образом, в зависимости от настроек, может быть достаточно, чтобы использовать afterpage
package «s \afterpage{<stuff>}
макрос для выполнения <stuff>
после текущей страницы. Например, в вашей преамбуле, вы
\let\oldchapter\chapter % Store \chapter
\renewcommand{\chapter}{% Redefine \chapter to...
\afterpage{\customcommand}% ...execute \customcommand after this page
\oldchapter}
Конечно, это будет иметь смысл только если вы что-нибудь еще на не-главе страниц не выполняются, так как условие связано с \chapter
. Таким образом, для принятия решения по всему документу на уровне для каждой страницы может потребоваться несколько иной подход.
Я бы предложил использовать макрос \chapter
, но с использованием условного. Вот пример (нажмите, чтобы увеличить):

\documentclass{report}
\usepackage{lipsum,afterpage,everypage}
\newcounter{chapterpage}% For this example, a chapterpage counter
\newcounter{regularpage}% For this example, a regularpage counter
\newif\ifchapterpage% Conditional used for a \chapter page
% Just for this example, print page number using:
\renewcommand{\thepage}{\LARGE\thechapterpage--\theregularpage}
\AddEverypageHook{
\ifchapterpage % If on a \chapter page...
\stepcounter{chapterpage}% Increase chapterpage counter
\global\chapterpagefalse% Remove conditional
\else % ...otherwise
\stepcounter{regularpage}% Increase regularpage counter
\fi
}
\let\oldchapter\chapter % Store \chapter
\renewcommand{\chapter}{% Redefine \chapter to...
\afterpage{\global\chapterpagetrue}% ... set \ifchapterpage to TRUE _after_ this page
\oldchapter}
\begin{document}
\chapter{First chapter}\lipsum[1-50]
\chapter{Second chapter}\lipsum[1-50]
\chapter*{Third chapter}\lipsum[1-50]
\chapter{Final chapter}\lipsum[1-50]
\end{document}
Преимущество описанного выше способа является то, что он работает как \chapter
и \chapter*
. \chapter*
не увеличивает счетчик chapter
, и поэтому недостаточно полагаться на условие, основанное на таком сравнении.
Возможно, проще всего использовать макрос '\ chapter', а не проверять на каждой странице. Что вы хотите сделать именно так? – Werner
Привет, Вернер. Я добавил на каждую страницу индекс цветного большого пальца (это причина для каждого пакета). Это работает очень хорошо.Однако я хочу, чтобы его внешний вид был другим для страниц, содержащих строку «глава X». –
@ Werner: Поскольку я не знаю, будет ли какой-либо другой код переопределять макрос главы где-нибудь, опасно ли это сделать снова? –