我通过from定义了一个test
具有两个参数的键。请参阅下面的代码。/.code n args
\pgfkeys
现在,我想检测是否#2
已赋值,但导致错误。
所以,我的问题是:
(1)如何检测 \pgfkeys 定义的键的某个参数是否已赋值?
(2)如何为key的参数分配默认值?
例子:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pgfkeys{test/.code args={#1[#2]}{\ifx#2\empty \parbox{#1}{blank}\else\parbox{#1}{#2}\fi}}
\pgfkeys{test=1in} % My intension is: if #2 is not given, its default value is "blank".
\end{document}
答案1
您应该使用两个键,但您可以通过稍后处理值来实现。
\documentclass{article}
\usepackage{tikz}
\pgfkeys{test/.code={\myparbox{#1}}}
\newcommand{\myparbox}[1]{\myparboxauxa#1[]\myparboxauxa}
\def\myparboxauxa#1[#2]#3\myparboxauxa{%
\if\relax\detokenize{#2}\relax
\parbox{#1}{blank}%
\else
\parbox{#1}{#2}%
\fi
}
\begin{document}
X\pgfkeys{test=1in}X
X\pgfkeys{test=1in[something]}X
\end{document}