Как заставить 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}

Связанный контент