
O código a seguir compõe um documento de 12 páginas; o texto só aparece em páginas alternadas e há uma página vazia entre duas páginas de texto:
\documentclass{article}
\usepackage{atbegshi}
\usepackage{lipsum}
\makeatletter
\AtBeginShipout{%
\ifodd\c@page
\begingroup
\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox
\global\AtBegShi@Discardedtrue
\mbox{}\thispagestyle{empty}\clearpage
\endgroup
\else
\fi%
}
\makeatother
\begin{document}
\lipsum[1-30]
\end{document}
Agora estou tentando numerar sequencialmente as páginas que contêm texto; com o código acima as páginas com texto são numeradas 1,3,5,... mas gostaria que fossem 1,2,3,... Fiz algumas tentativas mas nenhuma delas produziu o resultado desejado. Como posso conseguir a numeração consecutiva?
A ideia é agrupar isso em um comando que permitirá alterar o comportamento do fluxo de texto dentro de um grupo: quando invocado, o comando fará com que o texto seja digitado em todas as outras páginas, mas mantendo a numeração consecutiva para as páginas com texto ; assim que o grupo terminar o texto e a numeração deverão retornar ao seu comportamento normal.
Responder1
Isso parece funcionar para mim. O truque é usar um contador diferente para o número de remessas em vez das páginas.
\documentclass{article}
\usepackage{changepage}
\usepackage{etoolbox}
\usepackage{atbegshi}
\usepackage{lipsum}
\newcounter{mypage}
\makeatletter
\AtBeginShipoutInit{\setcounter{mypage}{0}}
\AtBeginShipout{
\ifnumodd{\value{mypage}}{
\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox
\addtocounter{page}{-1}
}{
\mbox{}\thispagestyle{empty}\clearpage
}
\addtocounter{mypage}{1}
}
\makeatother
\begin{document}
First page \pageref{test}
Last page \pageref{test2}
\label{test}
\lipsum[1-30]
\label{test2}
\end{document}