如果页面太多,如何让 Latex 显示错误消息?

如果页面太多,如何让 Latex 显示错误消息?

我有一系列要合并的 pdf 文件。我想在最终文档中包含尽可能多的文件,但出于后勤原因,总页数不能超过 50 页。

LaTeX如果页数超过这个总数,有什么办法可以停止编译并抛出错误消息?

\documentclass{article}

\usepackage[a4paper]{geometry}
\usepackage{pdfpages}
\usepackage{tikz}
\renewcommand{\contentsname}{My combined file}
\setlength\parindent{0pt}

\begin{document}

\includepdf[pages=-]{cover.pdf}
\includepdf[pages=-]{doc1.pdf}
\includepdf[pages=-]{doc2.pdf}
\includepdf[pages=-]{doc3.pdf}
\includepdf[pages=-]{doc4.pdf}
\includepdf[pages=-]{doc5.pdf}
\includepdf[pages=-]{doc6.pdf}
\includepdf[pages=-]{doc7.pdf}
% More files included here

\end{document}

答案1

使用(新创建的)pagectrl包裹

\documentclass{article}

\usepackage[range=2-3, report-as=error]{pagectrl}

\usepackage{mwe}

\begin{document}
\lipsum[1-40]
\end{document}

请注意,发出fatal错误会导致 TeX 停止,但直到 才会抛出此错误\end{document}。今晚晚些时候我会将其上传到 CTAN。在它在发行版中可用之前,只需下载文件sty并将其放在与文档相同的目录中(或按照任何其他手动安装程序操作)。

答案2

这就是我所知道的。

\documentclass{article}

\usepackage[a4paper]{geometry}
\usepackage{pdfpages}
%\usepackage{tikz}
\usepackage{everypage}

\AddEverypageHook{\ifnum\value{page}>50 \errmessage{Too many pages}\errorstopmode\fi}

\renewcommand{\contentsname}{My combined file}
\setlength\parindent{0pt}

\begin{document}
\includepdf[pages=-]{minitoc.pdf}

\end{document}

相关内容