如果参数不为空则有条件地打印文本

如果参数不为空则有条件地打印文本

我想定义一个使用参数管理的命令,pgf-key该命令在确实传递了值的情况下有条件地打印一些文本。这是我当前的代码

\documentclass{article}

\usepackage{pgf}


\begin{document}
\pgfkeys{
  /mycommand/.is family, /mycommand,
  default/.style = {optional={}},
  optional/.estore in =\OPTIONAL,
}

\newcommand{\COMMAND}[1][]{%
  \pgfkeys{/mycommand, default, #1}%
  Xyzzy ! \OPTIONAL{}  happened. % This text should only appear if optional is not empty
  }

\COMMAND[optional=Nothing]

\COMMAND[] % This should not print anything.

\end{document}

我想下一步应该与有关.is if。但测试空虚似乎出乎意料地复杂。这能以简单的方式实现吗?

答案1

你可以测试空虚

\newcommand{\COMMAND}[1][]{%
  \pgfkeys{/mycommand/.cd, default, #1}%
\if\relax\OPTIONAL\relax\else Xyzzy ! \OPTIONAL{}  happened.\fi% 
  }

但是键值语法的理念就是避免这种情况。相反,如果未指定任何内容,则使用处理程序/.code进行分支。/.default

相关内容