我想定义一个宏来在图中插入图片,称为\centeredfigure
,我希望使用的方式与 相同\includegraphics
。在 中\includegraphics
,所有可选参数均以以下形式给出
\includegraphics[scale=, width=, height=, ...]{path_to_graphics}
我想要定义的是:
\centeredfigure[scale=, width=, height=, caption=, ref=, placing=]{path_to_graphics}
相比之下,LateX\newcommand
提供的可选参数功能如下:
\somecommanddefinedbynewcommand[value1][value2]{value3}
所以\newcommand
不能用来获得我想要的东西。
我之前定义过普通的 TeX 宏,但没有一个带有此类可选参数。我目前正在查看\includegraphics
defined in的定义combinedgraphics.sty
,有点困惑。我试图发现一个潜在的模式。我很感激任何帮助,比如一个演示单个可选参数的最小示例。
该宏将在 LaTeX 中使用,但将以纯 TeX 样式定义。
编辑-原始宏使用\newcommand
\newcommand{\centeredfigure}[4]{
\begin{figure}[htbp]
\begin{center}
\includegraphics[width=#1\textwidth]{#2}
\caption{#3}
\label{#4}
\end{center}
\end{figure}
}
答案1
[a=b]
包使用的语法由graphicx
包定义,您可以使用它keyval
来定义类似的命令。(xkeyval
,,,也定义类似的参数解析器,但如果您想要适应,使用它可能会更有意义。有关更多详细信息,请参阅。pstricks
pgf
l3keys
keyval
graphix
texdoc keyval