Eu tenho um documento de artigo com números de página não padrão que também mudam de lado (alterando a paridade de lado: às vezes até está à direita, às vezes à esquerda).
Meta: obtenha a paginação correta (alternando a geometria esquerda/direita) independentemente do número da página ( \count0
/ \thepage
), em vez disso, baseie-se na contagem de páginas. De modo que, por exemplo, para um documento que consiste apenas em números pares de páginas, a paginação ainda muda.
Consegui obter acesso à contagem real de páginas por diferentes meios:
- zref-abspage:
\theabspage
- zref-abspage:
\zref@extract{abspage}{abspage}
\thetotalpages
.
Tentei definir um \newgeometry{...}
para cada página usando as seguintes abordagens:
- bopook:
\AtBeginPage{...
\AddToHook{shipout}{...
oushipout/before
oushipout/after
- todas as páginas:
\AddEverypageHook{...
- afterpage:
\afterpage{...
(para definir o layout das próximas páginas)
\ifthenelse{\isodd{\theabspage}}{
\newgeometry{left=8cm,right=3cm,top=3cm,bottom=3cm}
}{
\newgeometry{left=3cm,right=8cm,top=3cm,bottom=3cm}
}
Minhas abordagens terminaram em:
- Ao carregar,
bophook
recebi erros como "Sequência de controle indefinida. \end{titlepage}" \AddToHook{shipout...}
&\afterpage
=> nenhum formato foi aplicado\AddEverypageHook
=> Erro "\prevprofundidade imprópria. \pagenumbering"
MWE:
\documentclass[twoside]{article}
\usepackage[pdfpagelayout=TwoPageRight]{hyperref}
\usepackage{fancyhdr,lipsum,geometry,ifthen}
\pagestyle{fancy}
\fancyfoot[C]{\thepage}
\newcommand\blankpage{ % source: https://tex.stackexchange.com/a/331068
\clearpage
\begingroup
\null
\thispagestyle{empty}
\addtocounter{page}{-1}
\hypersetup{pageanchor=false}
\clearpage
\endgroup
}
\usepackage{zref-abspage}
\makeatletter
\renewcommand{\cleardoublepage}{
\clearpage
\zref@refused{abspage}
\ifthenelse{\isodd{\zref@extract{abspage}{abspage}}}{
\blankpage
}{
\blankpage
\blankpage
}
}
\makeatother
% trying to make gutter compatible with custom page numbers:
\newgeometry{left=8cm,right=3cm,top=3cm,bottom=3cm}
%\usepackage{bophook}\AtBeginPage{
\AddToHook{shipout/after}{ % or shipout/before or shipout/after
%\usepackage{everypage} \AddEverypageHook{
%\usepackage{afterpage}\afterpage{6
\ifthenelse{\thetotalpages>1}{% Avoid applying new geometry on the title page
\ifthenelse{\isodd{\theabspage}}{
\newgeometry{left=8cm,right=3cm,top=3cm,bottom=3cm}
}{
\newgeometry{left=3cm,right=8cm,top=3cm,bottom=3cm}
}
}{}
}
\begin{document}
\begin{titlepage}
my title page
\end{titlepage}
\pagenumbering{roman}
\lipsum[1-8]
\cleardoublepage
\clearpage
\pagenumbering{arabic}
\addtocounter{page}{1}
\lipsum[1-8]
\cleardoublepage
\pagenumbering{roman}
\lipsum[1-10]
\end{document}
Perguntas relacionadas: