Configuración de la geometría en cada página (medianil correcto) en números de página mixtos no estándar en documentos de dos caras

Configuración de la geometría en cada página (medianil correcto) en números de página mixtos no estándar en documentos de dos caras

Tengo un documento de artículo con números de página no predeterminados que también cambian de lado (paridad de cambio de lado: a veces incluso está a la derecha, a veces a la izquierda).
Meta: obtenga la paginación correcta (cambiando la geometría izquierda/derecha) independientemente del número de página ( \count0/ \thepage), en lugar de basarse en el recuento de páginas. De modo que, por ejemplo, en un documento que consta únicamente de números de páginas pares, la paginación aún cambia.


Pude acceder al recuento de páginas real por diferentes medios:

  • zref-abspage:\theabspage
  • zref-abspage:\zref@extract{abspage}{abspage}
  • \thetotalpages.

Intenté configurar un \newgeometry{...}para cada página utilizando los siguientes enfoques:

  • bophok:\AtBeginPage{...
  • \AddToHook{shipout}{...o shipout/beforeoshipout/after
  • cada página:\AddEverypageHook{...
  • página posterior: \afterpage{...(para establecer el diseño de las siguientes páginas)
\ifthenelse{\isodd{\theabspage}}{
    \newgeometry{left=8cm,right=3cm,top=3cm,bottom=3cm}
}{
    \newgeometry{left=3cm,right=8cm,top=3cm,bottom=3cm}
}

Mis acercamientos terminaron en:

  • Al cargar, bophookrecibí errores como "Secuencia de control no definida. \end{titlepage}"
  • \AddToHook{shipout...}& \afterpage=> no se aplicó ningún formato
  • \AddEverypageHook=> Error "\profundidad previa incorrecta. \numeración de página"

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}

preguntas relacionadas:

información relacionada