如何通过 \pgfkeys 生成的键传递宏(具有参数)

如何通过 \pgfkeys 生成的键传递宏(具有参数)

在下面的例子中,我尝试了四种方法来通过由 组成的键传递具有参数的宏\pgfkeys。 但所有方法都不起作用。

我该怎么办?

代码:

\documentclass[a4paper]{article}
\usepackage{xcolor,pgf}
\usepackage{geometry}
\geometry{showframe}
\geometry{left=1cm,right=1cm,top=1cm,bottom=1cm}
\parindent0pt

\begin{document}
\pgfkeys{
  % a/.code=#1,
  a/.ecode=\noexpand#1,
  % a/.expand once=\noexpand#1,
  %a/.initial=#1,
}
\pgfkeys{a=\color}{red} some red-colored text\par
\pgfkeys{a=\makebox}[s]{1in} {some text in a box}
\end{document}

答案1

似乎您想将其存储\color在宏中,以便稍后重新插入标记。因此,我会选择

\documentclass{article}
\usepackage{pgf}
\pgfkeys{a/.store in = \mycolorfn}
\begin{document}
\pgfkeys{a=\color}\mycolorfn{red} some red-colored text\par
\end{document}

您不能依赖于密钥设置结束时出现的内容:插入了很多标记\pgfkeys(一般来说,其他密钥处理器也是如此)。

相关内容