
Я пытаюсь составить большой совместный документ, который включает в себя вывод моделирования в изображениях, которые обновляются очень часто, но другими соавторами. Я не получаю эти изображения. Я все еще хочу составить общий документ.
Я использовал, \usepackage[demo]{graphicx}
что хорошо, потому что документ будет компилироваться, даже если изображенияполностьюотсутствует. Это предлагается в:Скомпилировать файл, если изображения отсутствуют/недоступны.
Однако я хочу включить некоторые изображения (мои, для которых у меня есть данные). Я хочу сделать что-то вроде добавления \includegraphics[draft=false]{image}
к определенным изображениям при использовании \usepackage[draft]{graphicx}
в соответствии сВыключение и включение изображений в цифрах. Однако эта опция, похоже, недоступна для \usepackage[demo]{graphicx}
.
Обратите внимание, что команде пришлось исключить расширение изображения из-за кроссплатформенного взаимодействия, в результате чего некоторые изображения были созданы с .PDF
расширениями, а некоторые — с расширениями .pdf
.
Кто-нибудь знает хорошее решение?
решение1
Похоже, вы по умолчанию указываете расширение файла изображения. Это полезно, так какgraphics
обрабатывает это по-другому: если вы [не] указываете расширение изображения и файл не существует, он просто создаетпредупреждение[ошибка]. Это имеет значение с точки зрения компиляции, поскольку предупреждение не является критичным.
Поэтому я предлагаю использовать
\usepackage[draft]{graphicx}
Вот минимальный пример:
\documentclass{article}
\usepackage[draft]{graphicx}
\begin{document}
\includegraphics[width=100pt]{some-bizarre-image.png}% This does not exist
\includegraphics[width=150pt,draft=false]{example-image.png}% This exists (http://ctan.org/pkg/mwe)
\end{document}
Если вы не предоставляете расширение файла изображения по умолчанию, то, возможно, придется обновиться, \includegraphics
чтобы найти возможный файл для включения. Предполагая, что вы компилируете с помощью pdfLaTeX, мы можем циклически проходить черезвозможные расширения файлов изображений:
\documentclass{article}
\usepackage[draft]{graphicx}
\usepackage{pgffor,letltxmacro}
% https://tex.stackexchange.com/q/72930/5764
% .png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2
\newif\iffilefound
\LetLtxMacro\oldincludegraphics\includegraphics
\renewcommand{\includegraphics}[2][]{%
\global\filefoundfalse
\foreach \fext in {,.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2} {%
\iffilefound\else\IfFileExists{#2\fext}{\global\filefoundtrue\xdef\imgfile{#2\fext}}{}\fi%
}%
\iffilefound
\oldincludegraphics[#1]{\imgfile}%
\else
\oldincludegraphics[#1]{example-image}%
\fi
}
\begin{document}
\includegraphics[width=100pt]{some-bizarre-image}% This does not exist
\includegraphics[width=150pt,draft=false]{example-image}% This exists (http://ctan.org/pkg/mwe)
\end{document}
Мы циклически просматриваем все возможные расширения (включая отсутствие расширения, если вы указали его вручную как часть \includegraphics
) и определяем первое доступное расширение, найденное как комбинацию \imgfile
. Мы вставляем изображение выдуманного (но существующего) .png
имени файла, если изображение не существует.