我如何强制扩展这个可选参数?

我如何强制扩展这个可选参数?

噢,看,这是一个真正的问题!

在尝试真正完成某事,我发现这个 lambda 宏创建器存在以下限制:它显然无法在预期的用例中工作。这肯定是扩展控制的问题,但我不知道该从哪里开始。

\documentclass{article}

% (David Carlisle / @Manuel)'s much simpler version
\newcommand\LambdaFunction[2][0]{%
  \let\tmp\relax
  \newcommand\tmp[#1]{#2}\tmp}

\usepackage{empheq}

\begin{document}
\begin{empheq}[
  box={\LambdaFunction{%
      \colorbox
      {myblue}%
      {\hspace{1em}#1\hspace{1em}}%
    }%
  }
  ]{align*}
  a   &= b   \\
  a^2 &= b^2
\end{empheq}
\end{document}

答案1

你错过了颜色包:-) 而且我的版本默认为 [0] 而不是 [1],所以我不得不添加 [1]。然后你需要加倍#

\documentclass{article}

\usepackage{color}

% (David Carlisle / @Manuel)'s much simpler version
\newcommand\LambdaFunction[2][0]{%
  \let\tmp\relax
  \newcommand\tmp[#1]{#2}\tmp}

\usepackage{empheq}

\begin{document}
\begin{empheq}[
  box={\LambdaFunction[1]{%
      \colorbox
      {blue}%
      {\hspace{1em}##1\hspace{1em}}%
    }%
  }
  ]{align*}
  a   &= b   \\
  a^2 &= b^2
\end{empheq}
\end{document}

相关内容