У меня есть ряд файлов 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}