我想定义一个使用参数管理的命令,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