Как избежать повторного начала нумерации страниц с титульного листа?

Как избежать повторного начала нумерации страниц с титульного листа?

См. MWE ниже. Как избежать того, чтобы нумерация страниц в вводной части начиналась заново с \titlepage? Я бы хотел, чтобы в предисловии была страница с номером 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}

PS: Вопрос отредактирован и переформулирован.

решение1

С book.clsвы не можете избежать на уровне пользователя, что нумерация страниц перезапускается с titlepage: \setcounter{page}{1}жестко запрограммирована. Так что вам придется переопределять titlepageили сбрасывать счетчик страниц \begin{titlepage}вручную.

В классе KOMA scrbook счетчик страниц не сбрасывается с помощью , titlepageа с помощью \maketitle, и \maketitleимеет необязательный аргумент для переопределения счетчика страниц. Так что вы можете сделать что-то вроде этого:

\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}

решение2

Одно из возможных решений: удалить строки из \setcounter{page}определения титульного листа.

\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}

В качестве альтернативы можно просто обойтись без 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}

решение3

Среда titlepageперезапускает счетчик страниц с 1. Таким образом, у вас есть две страницы с номером страницы I, самая первая страница и первая титульная страница.

\pagenumbering{Alph}будет работать, но предыдущая страница еще не закончена, и поэтому предыдущая страница также будет A. Это исправляется путем явного начала новой страницы:

\clearpage
\pagenumbering{Alph}

Также работает метод с отключенными якорями страниц, якоря страниц можно отключить только для некоторых страниц, например:

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

решение4

Другой вариант, без переопределения titlepage(на основе комментариев):

Установите счетчик страниц вручную. Мы сохраняем счетчик страниц в другом счетчике, поэтому он работает динамически, и нам не нужно жестко кодировать номер страницы.

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

Связанный контент