我如何独立编号图表页面?

我如何独立编号图表页面?

我有一个文档,其中所有图片都放在单独的页面上(有时一页中有多个图片,这没问题)。这是使用 figure 环境中的 \begin{figure}[p] 选项实现的。这正是我想要的,它将所有图片始终放在自己的页面上。

但是,我需要将这些页面与正文分开编号,并使用计数器来计算图片的总页数。例如,我需要文档按以下顺序进行:第 1 页、第 2 页、第 1/3 页、第 3 页、第 2/3 页、第 3/3 页、第 4 页、第 5 页。

我不介意正文页码继续计算图表页面,但我更希望它们不要像我上面的例子那样。

谢谢。

答案1

这并非您想要的,但您可能会喜欢它。它将所有浮动移动到文档末尾。

\documentclass{article}
\usepackage[nofiglist,nomarkers]{endfloat}
\usepackage{lastpage}
\usepackage{mwe}

\makeatletter
\def\ps@float{\ps@plain
  \def\@oddfoot{\hfil Float \thepage{ of }\pageref{LastPage}\hfil}%
  \let\@evenfoot=\@oddfoot}
\makeatother

\AtBeginDelayedFloats{\pagestyle{float}\setcounter{page}{1}}

\begin{document}

\begin{figure}[p]
\centering
\includegraphics{example-image}
\caption{test}
\end{figure}

\lipsum[1-8]

\end{document}

我所知道的唯一会延迟直到浮点输出的事情是\protected@write

我添加了两个新的计数器并根据需要重新定义\thepage\thetextpage\thefloatpage,因此\tableofcontents\listoffigures\pageref应该可以工作。

\documentclass{article}
\usepackage{xcolor}
\usepackage{everypage}
\usepackage{mwe}

\newcounter{textpage}
\newcounter{floatpage}
\renewcommand{\thefloatpage}{{\color{red}\arabic{floatpage}}}

\makeatletter
\newcommand{\floatpage}{\protected@write\@auxout{\let\arabic\relax}% expand at shipout
  {\string\newfloatpage{\arabic{page}}}}

\newcommand{\newfloatpage}[1]% #1 = \arabic{page}
  {\@ifundefined{floatpage#1}{\expandafter\gdef\csname floatpage#1\endcsname{\relax}}{}}

\newcommand{\mypagestyle}{\@ifundefined{floatpage\arabic{page}}%
  {\stepcounter{textpage}\global\let\thepage=\thetextpage}%
  {\stepcounter{floatpage}\global\let\thepage=\thefloatpage}}
\makeatother

\AddEverypageHook{\mypagestyle}

\begin{document}

\listoffigures
\bigskip

\begin{figure}[p]
\floatpage% place in every figure[p]
\centering
\includegraphics[height=.9\textheight,width=.9\textwidth]{example-image}
\caption{test}
\end{figure}

\lipsum[1-8]

\end{document}

相关内容