(我的提问动机在最后给出!)
问题:
如何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 定义!(当然,我可以设置一个新标准,并将其用于其他所有图形,width
并height
使用!
但这显然不是一个可接受的解决方案。)即,我不是希望改变标准,但我希望能够只在我选择的图形中使用此定义!例如,我希望能够
\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}