如何获取每页总数?

如何获取每页总数?

在以下文档中,我怎样才能将 X 替换为正确的每页总数?(在我的汇编中为 29、31、20)。

\documentclass{article}

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{on this page are X objects}

\usepackage{zref-perpage,expl3}
\newcounter{mycounter}
\zmakeperpage{mycounter}

\begin{document}\pdfsetrandomseed 4
\ExplSyntaxOn
\int_step_inline:nnnn {1 }{1}{80}
{\refstepcounter{mycounter}\themycounter.~an~object \\
 \int_if_odd:nT {\fp_eval:n { randint( 9 ) }}{some~randomness\\}
}
\ExplSyntaxOff
\end{document}

答案1

我建议将每页扩展的对象数存储在一个\prop列表中,并在标题中提取该列表的值,其中属性名称只是页码(希望不要在中间重置);即使对象数量必须多次评估(在循环中),这也只会更新键 - 值(因为属性列表具有唯一的键 - 值关系,所以潜在的旧值会被覆盖)

我使用 5000 次迭代循环对此进行了测试(结果为 169 页),结果是正确的。(但是需要几秒钟)

在此处输入图片描述

\documentclass{article}

\usepackage{fancyhdr}
\pagestyle{fancy}

\usepackage{zref-perpage,expl3}
\newcounter{mycounter}
\zmakeperpage{mycounter}


\lhead{on this page are \propextract\ objects}



\begin{document}\pdfsetrandomseed 4

\ExplSyntaxOn
\cs_generate_variant:Nn \prop_item:Nn {No,Nx}
\cs_generate_variant:Nn \prop_gput:Nnn {Nxx}
\cs_new:Npn \propextract{%
  \prop_item:Nx \g_ufischer_object_counter {\thepage}
}
\prop_new:N \g_ufischer_object_counter 
\int_step_inline:nnnn {1 }{1}{80}
{\refstepcounter{mycounter}\themycounter.~an~object \\
 \int_if_odd:nT {\fp_eval:n { randint( 9 ) }}{some~randomness\\}
 \prop_gput:Nxx \g_ufischer_object_counter {\thezpage} {\themycounter}

}
\ExplSyntaxOff
\end{document}

相关内容