欺骗 LaTeX 显示不同的页码

欺骗 LaTeX 显示不同的页码

是否有可能“欺骗” LaTeX 显示不同的页码?

出于一系列复杂的原因,我想展示

1 而不是 7

2 而不是 8

3 而不是 9

ETC....

无需更改页数计数器。这是否太过棘手?

答案1

此版本(由 egreg 修改而来)可与 hyperref 配合使用

\documentclass{article}
\usepackage{hyperref}

\begin{document}

\pagenumbering{Roman}
\pagestyle{empty}

This page has no number\newpage %1

This page has no number\newpage %2

This page has no number\newpage %3

This page has no number\newpage %4

This page has no number\newpage %5

This page has no number %6

\clearpage
\pagenumbering{arabic}
\pagestyle{headings}

This is page 1\newpage

This is page 2

\end{document}

使用 hyperref 时的问题\pagenumbering{gobble}在于,您会收到警告,因为多个页面具有相同的标识符,并且 pdf 页面编号已损坏。如果您不介意在 pdf-pagecount 中用罗马数字对空白页面进行编号,但在文件的打印区域中则不这样做,那么这应该可以正常工作。

答案2

如果你不需要hyperref,这个技巧很简单:

\documentclass{article}

\begin{document}

\pagenumbering{gobble}

This page has no number\newpage %1

This page has no number\newpage %2

This page has no number\newpage %3

This page has no number\newpage %4

This page has no number\newpage %5

This page has no number %6

\clearpage
\pagenumbering{arabic}

This is page 1\newpage

This is page 2

\end{document}

答案3

也许这有效

\documentclass{article}

\def\pageoffset{6}  %(7 - 1 = 6)

\usepackage{etoolbox}
\usepackage{blindtext}
\usepackage{hyperref}
\let\origthepage\thepage
\renewcommand{\thepage}{%
\ifnumgreater{\value{page}}{1}{\number\numexpr\value{page}+\numexpr\pageoffset-1}{\origthepage}
}

\begin{document}
\pagestyle{empty}
\tableofcontents
\listoffigures
\listoftables
\clearpage

\pagestyle{plain}

\section{First}
\blindtext[30]
\section{Other}
\end{document}

我省略了屏幕截图,它显示了该功能(适用于小文档,尚未针对较大文档进行测试)。hyperref在这里工作

编辑更好的版本,关注当前页面的值:

\documentclass{book}


\usepackage{etoolbox}
\usepackage{blindtext}
\usepackage{hyperref}


\def\pageoffset{6}%
\newcounter{pagereset}
\let\latexthepage\thepage

\newcommand{\SwitchPagenumbering}{%
  \setcounter{pagereset}{\number\value{page}}%
  \renewcommand{\thepage}{%
    \ifnumgreater{\value{page}}{\value{pagereset}-1}{\number\numexpr\value{page}+\number\numexpr\pageoffset}{\latexthepage}%
  }%
}


\begin{document}
\pagenumbering{Roman}
\tableofcontents
\listoffigures
\clearpage
\pagenumbering{arabic}

\SwitchPagenumbering


\chapter{First}
\section{First}

\blindtext[30]
\typeout{Pagereset is \thepagereset: Page is \number\value{page}}

\section{Other}
\blindtext[20]
\section{Other}
\section{Other}

\end{document}

相关内容