有条件加载图像 A 或图像 B 的建议

有条件加载图像 A 或图像 B 的建议

我有一个乳胶颜色定义文件(我用 替换\input)来生成绿色、棕褐色和蓝色的“主题”PDF(与某些 Python 代码配合得很好)。最后一步是针对某些图形有条件地加载绿色、棕褐色或蓝色变体。

我对 LaTeX 还不熟悉,正在寻找一些建议,以便\includegraphics在整个文档中加载这些图像的蓝色、棕褐色或绿色版本 - 具体取决于主题颜色。LaTeX 是否支持 if then 结构来加载图像?

或者我是否应该最好将主题图像移动到我的主“图像”目录中,并在 LaTeX 编译之前运行 python 代码?

答案1

您可以添加类似

\newcommand{\setthemecolor}[1]{\expandafter\def\csname theme#1\endcsname{}}

\setthemecolor{blue}

到您输入的文件的一部分,因此您明确指定主题颜色为bluegreentan。通过设置主题颜色,\setthemecolor创建宏\themeblue\themegreen\themetan。然后,您可以通过 检查这些宏中的哪些存在于您的文档中\ifcsname <macro>\endcsname <stuff> \fi

这是一个简单的例子:

在此处输入图片描述

\documentclass{article}

\newcommand{\setthemecolor}[1]{\expandafter\def\csname theme#1\endcsname{}}

\setthemecolor{blue}

\begin{document}

This is the start of the document.

\ifcsname themeblue\endcsname
  This is only in a blue document.
\fi

\ifcsname themegreen\endcsname
  This is only in a green document.
\fi

\ifcsname themetan\endcsname
  This is only in a tan document.
\fi

This is the end of the document.

\end{document}

另一种方法是根据主题的颜色命名图像。例如,imageblue.pdfimagegreen.pdfimagetan.pdf这样,您只需插入

\newcommand{\themecolor}{blue}

\input在你使用的文件中

\includegraphics[<opt>]{image\themecolor}

无论您想在哪里输入特定主题的图像。

相关内容