定义 LaTeX 宏,将可选参数作为方括号内的关键字

定义 LaTeX 宏,将可选参数作为方括号内的关键字

我想定义一个宏来在图中插入图片,称为\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 宏,但没有一个带有此类可选参数。我目前正在查看\includegraphicsdefined 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,,,也定义类似的参数解析器,但如果您想要适应,使用它可能会更有意义。有关更多详细信息,请参阅。pstrickspgfl3keyskeyvalgraphixtexdoc keyval

相关内容