См. 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}