我有一个文档,其中所有图片都放在单独的页面上(有时一页中有多个图片,这没问题)。这是使用 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}