양면 문서의 비표준 혼합 페이지 번호에서 모든 페이지(올바른 여백)에 기하학 설정

양면 문서의 비표준 혼합 페이지 번호에서 모든 페이지(올바른 여백)에 기하학 설정

측면을 전환하는 기본이 아닌 페이지 번호가 있는 기사 문서가 있습니다(측면 패리티 전환: 때로는 오른쪽에 있고 때로는 왼쪽에 있음).
목표\count0: 페이지 번호( / ) 에 관계없이 올바른 페이지 매기기(왼쪽/오른쪽 기하학 전환)를 가져오고 \thepage대신 페이지 수를 기반으로 합니다. 예를 들어 짝수 페이지 번호로만 구성된 문서의 경우 페이지 매김은 여전히 ​​전환됩니다.


다른 방법으로 실제 페이지 수에 액세스할 수 있었습니다.

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

\newgeometry{...}다음 접근 방식을 사용하여 각 페이지에 대해 설정을 시도했습니다 .

  • 보훅:\AtBeginPage{...
  • \AddToHook{shipout}{...또는 shipout/before또는shipout/after
  • 모든 페이지:\AddEverypageHook{...
  • afterpage: \afterpage{...(다음 페이지 레이아웃을 설정하기 위해)
\ifthenelse{\isodd{\theabspage}}{
    \newgeometry{left=8cm,right=3cm,top=3cm,bottom=3cm}
}{
    \newgeometry{left=3cm,right=8cm,top=3cm,bottom=3cm}
}

내 접근 방식은 다음과 같이 끝났습니다.

  • 로드하자마자 bophook"정의되지 않은 제어 순서입니다. \end{titlepage}"와 같은 오류가 발생했습니다.
  • \AddToHook{shipout...}& \afterpage=> 형식이 적용되지 않았습니다.
  • \AddEverypageHook=> "부적절한 \prevlength.\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}

관련 질문:

관련 정보