
Я хотел бы получить список всех страниц в моем документе, на которых есть цифры. В частности, номера страниц в файле 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