对特定图形使用 setkeys - 或者:如何在命令或宏中为特定图形定义选项?

对特定图形使用 setkeys - 或者:如何在命令或宏中为特定图形定义选项?

(我的提问动机在最后给出!)

问题: 如何includegraphics在单独的命令中定义选项的键,即不直接在使用它们的图形中定义?(例如,以便可以多次使用相同的选项,或者您可以简单地集中定义它们,而不是在图形包含本身中定义它们。)

注意graphicx允许您定义一个标准这些选项用于所有图形,除非您通过指定新选项覆盖它们。这是使用 setkeys 命令完成的,如下所示:

\documentclass{scrartcl}
\usepackage{graphicx}

\setkeys{Gin}{width=4cm,height=4cm}

\begin{document}   
  \hspace*{-3cm}
  \includegraphics{example-image-a}
  \includegraphics[width=2cm]{example-image-b}
  \includegraphics[width=2cm,height=!]{example-image-c}
  \includegraphics[width=!,height=!]{example-image}
\end{document}

在此处输入图片描述

因此,您看到的第一张图使用了新的标准为 4cm/4cm,而其他的则用单独的值(w/h)覆盖它们:

  • 答:4cm/4cm,新标准
  • B:2cm/4cm,因为身高仍然是新标准
  • C:2cm/*,其中 * 是高度与宽度的正确比例
  • 图像:*/*,即图形的原始尺寸

但是,我只想对特定图形使用 setkeys 定义!(当然,我可以设置一个新标准,并将其用于其他所有图形,widthheight使用!但这显然不是一个可接受的解决方案。)即,我不是希望改变标准,但我希望能够只在我选择的图形中使用此定义!例如,我希望能够

\setkeys{MyKeys}{width=4cm,height=4cm}
..
\includegraphics[MyKeys]{example-image-X}

这可能吗?

动机:

我想为 beamer slides 定义自己的包(即 sty 文件),它应该足够灵活,以便在大多数情况下,使用它的人不必再接触它。相反,所有必要的编辑/个性化都应该在单独的配置文件中完成。(例如,您可以在其中定义标题幻灯片的标题和作者。)

其中一项需要配置的是标题幻灯片中出现的图形的大小。因此,原则,sty 文件应该包含类似以下内容:\includegraphics[\OptionsSpecifiedInConfigFile]{\LogoSpecifiedInConfigFile}。但是,这些选项(如width=2cm,height=3cm)不能简单地存储在命令中(如\OptionsSpecifiedInConfigFile),所以我需要不同的解决方案。

我知道将选项传递给我的包也可能是一种选择(我已经这样做了!),但我认为对这些选项这样做特别没有意义。

相关 stackoverflow 帖子:

(它们没有帮助我解决我的问题,但它们仍然看起来高度相关,所以我发布了它们以防其他人认为它们有用。)

感谢您的帮助!

答案1

如果希望在某些情况下使用不同的默认值,可以为此定义一个新命令

\newcommand*{\myincludegraphics}[2][]{\includegraphics[width=4cm,height=4cm, #1]{#2}}

如果你想将选项保存在特殊的宏中,你需要在将宏传递给之前将其展开\includegraphics

\newcommand*{\OptionsSpecifiedInConfigFile}{width=4cm,height=4cm}
\expandafter\includegraphics\expandafter[\OptionsSpecifiedInConfigFile]{example-image-a}

相关内容