Автоматически определять количество страниц с рисунками

Автоматически определять количество страниц с рисунками

Я хотел бы получить список всех страниц в моем документе, на которых есть цифры. В частности, номера страниц в файле PDF, созданном из моего документа LaTeX. Это позволило бы мне печатать только эти страницы в цвете, оставляя остальные в черно-белом варианте, тем самым экономя расходы на печать. К сожалению, сам принтер позволяет выбирать только цвет или черно-белый вариант для всего задания на печать, поэтому мне нужно вручную разделить диапазоны страниц (некоторые модели могут выбирать на постраничной основе, но не эта).

Я использую TeX Live на Linux (на базе Debian).

Есть ли способ автоматически определить это с помощью какого-либо инструмента или опций?

решение1

Примеры скопированы из ответа egreg, но на этот раз с \makeindex.

\documentclass{article}
\usepackage{graphicx}
\usepackage{makeidx}
\makeindex

\let\oldincludegraphics\includegraphics
\renewcommand\includegraphics{\index{~@Pages containing figures}\oldincludegraphics}
\newwrite\listofgraphics

\begin{document}
A page without graphics
\clearpage
A page with graphics\\
\includegraphics{example-image}
\clearpage
A float
\begin{figure}[htp]
\includegraphics{example-image}
\end{figure}
and a delayed float
\begin{figure}[p]
    \includegraphics{example-image}
\end{figure}
\clearpage
A page without graphics
\clearpage
Again page with graphics\\
\includegraphics{example-image}
\clearpage

\printindex

\end{document}

решение2

Вот, возможно, слишком упрощенный способ

\documentclass{article}
\usepackage{graphicx}

\let\ORIincludegraphics\includegraphics
\renewcommand{\includegraphics}{%
  \write\listofgraphics{\thepage}%
  \ORIincludegraphics
}
\newwrite\listofgraphics
\AtBeginDocument{\immediate\openout\listofgraphics=\jobname.lis }
\AtEndDocument{\closeout\listofgraphics}

\begin{document}

A page without graphics
\clearpage

A page with graphics

\includegraphics{example-image}

\clearpage

A float

\begin{figure}[htp]
\includegraphics{example-image}
\end{figure}

and a delayed float

\begin{figure}[p]
\includegraphics{example-image}
\end{figure}

\clearpage

A page without graphics
\clearpage

\end{document}

Содержимое .lisсозданного файла:

2
3
4

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