¿Cómo evitar que la numeración de páginas se reinicie mediante la página de título?

¿Cómo evitar que la numeración de páginas se reinicie mediante la página de título?

Vea el MWE a continuación. ¿Cómo puedo evitar que la numeración de páginas en el frontmatter se reinicie \titlepage? Me gustaría que el prefacio tuviera la página número V.


\documentclass{book}  

\usepackage{lipsum}                  
\usepackage[plainpages=false,pdfpagelabels]{hyperref}
\hypersetup{pageanchor=false}       
\usepackage{bookmark} 

\title{Lipsum}      
\author{lpdbw}                  

\begin{document} 

\frontmatter
\pagenumbering{Roman}

\lipsum                

\begin{titlepage}      
\maketitle             
\end{titlepage}        

\chapter*{Preface}
\lipsum

\mainmatter

\chapter{Introduction}
\lipsum

\end{document}

PD: Pregunta editada y reformulada.

Respuesta1

No book.clspuede evitar a nivel de usuario que la numeración de páginas se reinicie en titlepage: \setcounter{page}{1}está cableada. Por lo tanto, tendría que redefinir titlepageo restablecer el contador de páginas \begin{titlepage}manualmente.

En el scrbook de la clase KOMA, el contador de páginas no se restablece titlepagesino mediante \maketitley \maketitletiene un argumento opcional para anular el contador de páginas. Entonces puedes hacer algo como esto:

\documentclass{scrbook}
\usepackage{lipsum}
\usepackage[plainpages=false,pdfpagelabels]{hyperref}
\title{Lipsum Here page: \thepage}
\author{lpdbw}

\begin{document}
\frontmatter
\pagenumbering{Roman}
abc          

\begin{titlepage}
\maketitle[\value{page}]     
\end{titlepage}

\mainmatter
\chapter{Introduction}
\lipsum

\end{document}

Respuesta2

Una posible solución: eliminar las líneas con \setcounter{page}en la definición de la página de título.

\documentclass{book}

\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}

\makeatletter    
    \if@compatibility
\renewenvironment{titlepage}
    {%
      \cleardoublepage
      \if@twocolumn
        \@restonecoltrue\onecolumn
      \else
        \@restonecolfalse\newpage
      \fi
      \thispagestyle{empty}%
      %\setcounter{page}\z@
    }%
    {\if@restonecol\twocolumn \else \newpage \fi
    }
\else
\renewenvironment{titlepage}
    {%
      \cleardoublepage
      \if@twocolumn
        \@restonecoltrue\onecolumn
      \else
        \@restonecolfalse\newpage
      \fi
      \thispagestyle{empty}%
      %\setcounter{page}\@ne
    }%
    {\if@restonecol\twocolumn \else \newpage \fi
     \if@twoside\else
       % \setcounter{page}\@ne
     \fi
    }
\fi
\makeatother

\title{Lipsum}
\author{lpdbw}

\begin{document}

\frontmatter
\pagenumbering{Roman}

\lipsum

\begin{titlepage}
\maketitle
\thispagestyle{empty}
\end{titlepage}

\chapter*{Preface}

\mainmatter

\chapter{Introduction}
\lipsum

\end{document}

Alternativamente, uno puede hacerlo sin titlepage:

\documentclass[notitlepage]{book}

\usepackage{lipsum}
\usepackage{emptypage}
\usepackage{hyperref}
\usepackage{bookmark}

\title{Lipsum}
\author{lpdbw}

\begin{document}

\frontmatter
\pagenumbering{Roman}

\lipsum

\cleardoublepage

\maketitle
\thispagestyle{empty}

\cleardoublepage

\chapter*{Preface}

\mainmatter

\chapter{Introduction}
\lipsum

\end{document}

Respuesta3

El titlepageentorno reinicia el contador de páginas en 1. Por lo tanto, tiene dos páginas con el número de página I, la primera página y la primera página de título.

\pagenumbering{Alph}funcionaría, pero la página anterior aún no está terminada y por lo tanto también estaría A. Esto se soluciona iniciando una nueva página explícitamente:

\clearpage
\pagenumbering{Alph}

También funciona el método con anclajes de página deshabilitados, los anclajes de página se pueden deshabilitar solo para algunas páginas, por ejemplo:

\hypersetup{pageanchor=false}
\frontmatter
 ....
\begin{titlepage}...\end{titlepage}
\hypersetup{pageanchor=true}

Respuesta4

Otra opción, sin redefinir titlepage(basado en los comentarios):

Configure el contador de páginas manualmente. Almacenamos el contador de páginas en otro contador, por lo que funciona dinámicamente y no necesitamos codificar el número de página.

\newcounter{titlepagenumber}
\setcounter{titlepagenumber}{\value{page}}
\begin{titlepage}
    \setcounter{page}{\thetitlepagenumber}
    
    % Test if it works:
    \thepage
\end{titlepage}

información relacionada