共有L,R两个选项,需求预期:
1.0. 输入{ mode={ L, R } },得到{ L=true, R=true };
1.1. 输入{ mode=L },得到{ L=true } (R=false可有可无,下同);
1.2. 输入{ mode=R },得到{ R=true };
希望选项输入时mode=可以省略,即:
2.0. 输入{ L, R },得到{ L=true, R=true };
2.1. 输入{ L },得到{ L=true } (R=false可有可无,下同);
2.2. 输入{ R },得到{ R=true };
按此需求设计如下:
\keys_define:nn { mymodule }
{
mode .multichoices:nn = { L, R } { \prop_put:Nee \l_tmpa_prop \l_keys_choice_tl \c_true_bool },
L .meta:n = { mode = L },
R .meta:n = { mode = R },
}又增加需求预期:
0.0. 不输入,得到{ L=true, R=true };
使用.initial:n = { L, R }会妨碍单独输入{ (mode=)L/R }的功能,应该如何解决?
再增加需求预期:
3.1. 输入{ L=false },得到{ L=false, R=true };
3.2. 输入{ R=false },得到{ L=true , R=false };
应该如何解决?
2.1. 输入
{ L },其实应该得到{ L=true , R=false };2.2. 输入
{ R },其实应该得到{ L=false, R=true };3.1. 输入
{ L=false },其实应该得到{ L=false, R=true };3.2. 输入
{ R=false },其实应该得到{ L=true , R=false };似乎这俩一步到位不了,我再研究研究