我有一系列要合并的 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}