![如果参数不为空则有条件地打印文本](https://linux22.com/image/325064/%E5%A6%82%E6%9E%9C%E5%8F%82%E6%95%B0%E4%B8%8D%E4%B8%BA%E7%A9%BA%E5%88%99%E6%9C%89%E6%9D%A1%E4%BB%B6%E5%9C%B0%E6%89%93%E5%8D%B0%E6%96%87%E6%9C%AC.png)
我想定义一个使用参数管理的命令,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