计算书籍类文档中某些章节或部分的页数

计算书籍类文档中某些章节或部分的页数

问题:对于我需要提交给大学的文档,字数并不重要,但页数必须等于或小于某个值(在本例中为 32)。在我的文档的执行摘要部分,我添加了一个脚注,其中包含总页数和所含内容的详细信息(即仅执行摘要和章节,目录和附录不计算在内)。我不确定如何计算页码,因为页面从罗马数字变为了数字,frontmatter并且在mainmatter此处搜索找不到类似的问题(尽管如果这是重复的,我很乐意删除)。

我想要的是:如果可能的话,一种计算执行摘要和章节总页数的方法mainmatter,不包括我不想计算的部分(首页、目录、附录和其他)。我以前用过 TeXCount 来计算字数,并且知道可以根据打开或关闭它,类似的方法或更基本的解决方案是理想的。在 MWE 中,理想情况下会自动更新以包含所需部分的页数。backmatter%TC:ignore#

我已尝试过:不幸的是,我很少尝试自动输入页数,因为我对书籍类以及我假设这里需要的计数器不是很熟悉。我的备用选项是手动输入值,但我并不介意在其他文档中使用自动版本。

梅威瑟:

\documentclass[oneside]{book}

\usepackage{lipsum}     % For dummy text
\usepackage{hyperref}

\begin{document}
\frontmatter
\begin{titlepage} Title \end{titlepage}

% ------------------------ Included in page count
\chapter{Executive Summary}
 Text \footnote{The total page numbers including the executive summary and chapters is \# pages}. \lipsum[1-10].
% ------------------------ ^^ Included in page count

\tableofcontents
\newpage

\mainmatter

% ------------------------ Included in page count
\chapter{First}
\lipsum[1-10]
\chapter{Second}
\lipsum[1-10]
\chapter{Third}
\lipsum[1-10]
\chapter{Fourth}
\lipsum[1-10]
\chapter{Fifth}
\lipsum[1-10]
% ------------------------ ^^ Included in page count

\appendix
\chapter{Text}
\lipsum[1-10]

\end{document}

我希望这足够详细,如果这是重复的,请告诉我。

答案1

您的 MWE 产生 23 页:标题页(1)执行摘要(3)、目录(1)、章节(15)和附录(5)。

页数中不包括标题页和附录,净页数为 19 页。

使用该pageslts包可以获取最后一页的引用,而不管页码样式如何。例如,\lastpageref{LastPages}将输出最后一页的物理页码(23,但页码为 18)。

添加标签lastpagetocount是为了标记要计数的最后一页。

为了将和其他页面引用转换LastPages为数字,使用了包\getpagerefnumber提供的命令refcount

为了方便起见,netpages计数器包含要计算的净页数的结果,并且命令\NetPages会将该数字插入到脚注中。

要计算的净页数由以下公式给出

\getpagerefnumber{LastPages} -\getpagerefnumber{LastPage} +\getpagerefnumber{lastpagetocount} -1

b

\documentclass[oneside]{book}

\usepackage{lipsum}     % For dummy text
\usepackage{hyperref}

\usepackage{refcount}  % convert pages references to numbers \getpagerefnumber <<<<<<
\usepackage{pageslts} % reference to the last physical pages <<<<<<
\newcounter{netpages} % store net number of pages to count <<<<<<
\newcommand{\NetPages}{% % added <<<<<<
\setcounter{netpages}{\the\numexpr\getpagerefnumber{LastPages} -\getpagerefnumber{LastPage} +\getpagerefnumber{lastpagetocount} -1\relax}
\thenetpages}

\begin{document}
    \frontmatter
    \begin{titlepage} Title     
 \end{titlepage} 
% ------------------------ Included in page count
\chapter{Executive Summary} 

Text \footnote{The total page numbers including the executive summary and chapters is \NetPages~pages}. \lipsum[1-10].
% ------------------------ ^^ Included in page count

\tableofcontents
\newpage

\mainmatter

% ------------------------ Included in page count
\chapter{First}     
\lipsum[1-10]
\chapter{Second}
\lipsum[1-10]
\chapter{Third}
\lipsum[1-10]
\chapter{Fourth}
\lipsum[1-10]
\chapter{Fifth}
\lipsum[1-10]
\label{lastpagetocount} % added <<<<<<<<<<<<<<<<<<<<<<
% ------------------------ ^^ Included in page count%       
\appendix
\chapter{Text}
\lipsum[1-10]

\end{document}

执行摘要之前应该只有一页。因此公式中的值为 -1。如果存在更多页数,请相应更改该数字。

更新此解决方案仅使用包。它将计算和zref之间的页数,因此该标记之前或之后有多少页并不重要。\zlabel{firstpagetocount}\zlabel{lastpagetocount}

\documentclass[oneside]{book}

\usepackage[abspage,user,lastpage]{zref} % added <<<<<<<<<

\usepackage{lipsum}     % For dummy text
\usepackage{hyperref}

\newcounter{netpages} % store net number of pages to count <<<<<<   
\makeatletter
\newcommand{\calculatepages}{%  
\setcounter{netpages}{\numexpr\zref@extract{lastpagetocount}{abspage} -\zref@extract{firstpagetocount}{abspage}+1\relax}    
\thenetpages\       
}
\makeatother

\begin{document}
    \frontmatter
    \begin{titlepage} Title     
 \end{titlepage} 
% ------------------------ Included in page count
\chapter{Executive Summary} 
\zlabel{firstpagetocount}   % mark first page to count  <<<<<<<<<<<<<<<<<
    
Text \footnote{The total page numbers including the executive summary and chapters is \calculatepages pages}. \lipsum[1-10].
% ------------------------ ^^ Included in page count

\tableofcontents
\newpage

\mainmatter

% ------------------------ Included in page count
\chapter{First} 
\lipsum[1-10]
\chapter{Second}
\lipsum[1-10]
\chapter{Third}
\lipsum[1-10]
\chapter{Fourth}
\lipsum[1-10]
\chapter{Fifth}
\lipsum[1-10]
\zlabel{lastpagetocount} %  % mark last page to count   <<<<<<<<<<<<<<<<<
% ------------------------ ^^ Included in page count%       
\appendix
\chapter{Text}
\lipsum[1-10]

\end{document}

相关内容