获取文档的页数

获取文档的页数

撰写报告时,通常在开头有一页元信息,包括撰写者、审核者、客户、日期等。我需要的字段之一是页数。由于我要自动输出这些报告,我想知道是否有办法从 latex 中获取这些信息,然后在下一次编译时输入它?比如Number of pages: \pdflength

答案1

包中zref,模块totpages提供了\ztotpages包含页数的宏(无论页码如何编号)。

\documentclass{article}
\usepackage{zref-totpages}

\begin{document}
Total pages: \ztotpages
\end{document}

其内部工作原理是将 zref 标签写入文件.aux。如果文件中尚不存在该标签.aux,则\ztotpages扩展为0

比较最后一页与总页数

\documentclass{book}
\usepackage{blindtext}
\usepackage{zref-totpages}
\usepackage{lastpage}

\begin{document}
\frontmatter

\begin{tabular}{ll}
  Total pages: & \ztotpages \\
  Last page:   & \pageref{LastPage} \\
\end{tabular}

\newpage
\tableofcontents
\mainmatter
\blinddocument
\end{document}

该文件包含四个罗马数字封面页和四个正文页。结果:

Total pages: 8
Last page:   4

答案2

在 OpTeX 中,有一个宏\lastpage。你可以尝试:

\fontfam[lm]

Number of pages: \lastpage.

\bye

在 TeX 第一次运行中,终端会\lastpage扩展为:?

WARNING l.5: Try to rerun, document.ref file was created.

当您再次运行 TeX 时,将\lastpage扩展为文档中的页数。 如果此数字发生变化,则终端会显示:

WARNING l.9: Try to rerun, document.ref file was changed.

当您再次运行 TeX 时,\lastpage是正确的,并且终端和log文件上没有打印任何警告。

答案3

您可以尝试\usepackage{lastpage}一下\pageref{LastPage}。以下是 MWE:

在此处输入图片描述

\documentclass[a4paper]{article}

\usepackage{lastpage}
\usepackage{hyperref}
\hypersetup{hidelinks}

\usepackage{lipsum}

\title{Title \\
\large Subtitle}
\author{Author}
\date{31.05.2022}

\begin{document}

\maketitle
\begin{center}
    Total pages: \pageref{LastPage}
\end{center}

\newpage

\lipsum

\end{document}

相关内容