假设我有一个包含大量彩色 PDF 的文档。现在我想轻松地在“彩色”版本和“灰度”版本之间切换。我知道\DeclareGraphicsRule
,但我认为这需要更多调整。请参阅下面的 MWE。
% engine: pdflatex
\documentclass{article}
\usepackage{xcolor,graphicx}
\iftrue
% code for "color" version
\else
% code for "grayscale" version
\fi
\begin{document}
\includegraphics{z4z.pdf}
\end{document}
你可以使用任何你想要的图像,但我使用的图像是这样的:http://kmlinux.fjfi.cvut.cz/~hejdato1/z4z.pdf
可用于将图像转换为灰度的命令例如
convert -density 600 #1.pdf -colorspace Gray #2.pdf
.pdf
最后但同样重要的一点是,如果它可以在有或没有扩展的情况下工作,那就太好了\includegraphics
。
答案1
您有一个经典的矢量图 ( z4z.pdf
)。使用命令行convert
( ImageMagick
),图像将转换为位图。PDF 也可以包含位图。更好的方法是使用Inkscape
。它有一个选项可以将颜色转换为灰色颜色模型。再次保存为 PDF,见下文。
我会使用两个不同的目录,第一个目录包含彩色图像,第二个目录包含灰度图像。然后使用 即可轻松在它们之间切换\graphicspath
。当前目录应该没有这些图像,否则会首先找到它们。
\documentclass{article}
\usepackage{xcolor,graphicx}
\iftrue % color
\graphicspath{{img-color/}}
\else % grayscale
\selectcolormodel{gray}
\graphicspath{{img-gray/}}
\fi
\begin{document}
\includegraphics[scale=.5]{z4z}
\end{document}
如果是灰度,示例还会将包控制的颜色切换为灰色模型xcolor
。也可以使用选项来实现黑/白monochrome
,但在加载颜色包时需要使用该选项:
\documentclass{article}
\usepackage{graphicx}
%\iftrue % color
\iffalse
\graphicspath{{img-color/}}
\else % grayscale
\PassOptionsToPackage{monochrome}{xcolor}
\graphicspath{{img-gray/}}
\fi
\usepackage{xcolor}
\begin{document}
\includegraphics[scale=.5]{z4z}
\textcolor{yellow}{yellow}
\textcolor{red}{red}
\textcolor{blue}{blue}
\end{document}