我找到了问题使用 pgfkeys 定义的键的默认值运行正常。但我想定义一个.is choice
具有默认值的键,但似乎无法让它正常工作。
我尝试了以下方法
\makeatletter
\def\ae@subcolumn@width{\columnwidth/2}
\def\ae@subcolumn@height{\textheight}
\def\ae@par@style{CIAO MOON}
\pgfkeys{/ae/sub/column/.cd,
width/.store in=\ae@subcolumn@width,
height/.store in=\ae@subcolumn@height,
par style/.code/.default={\def\ae@par@style{HELLO WORLD}},
par style/.is choice,
par style/raggedright/.code={\let\ae@par@style\raggedright},
}
\newenvironment{aesubcol}[1]
{%%
\pgfkeys{/ae/sub/column/.cd,#1}%%
\begin{minipage}[t][\ae@subcolumn@height]{\ae@subcolumn@width}%%
\ae@par@style
}{%%
\end{minipage}}
\makeatother
我也尝试使用设置默认值
par style/.default={\def\ae@par@style{HELLO WORLD}},
或者
par style/.default/.code={\def\ae@par@style{HELLO WORLD}},
但这些都没有达到预期的效果。
如何为选择键设置默认值?
答案1
默认值is choice
是选择,因此只需执行以下操作:
\pgfkeys{/tmp/.is choice}
\pgfkeys{/tmp/list/.code={...}}
\pgfkeys{/tmp/.default=list}
这个小例子展示了预期的行为:
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
\def\tmp{No-choice}
\pgfkeys{/test/my choice/.is choice,
/test/my choice/list/.code={\def\tmp{list}},
/test/my choice/array/.code={\def\tmp{array}},
}
\tmp
\pgfkeys{/test/my choice=array}
\tmp
\pgfkeys{/test/my choice=list}
\tmp
\pgfkeys{/test/my choice/.default=list}
\tmp
\pgfkeys{/test/my choice=array}
\tmp
\pgfkeys{/test/my choice}
\tmp
\end{document}