如题,命令 \foo
接受一个O型argument,默认值 3:2
,然后通过 \seq_set_split
读取该argument,分隔符为 :
.
但是发现默认值可以读取,而自行指定的值(如 \foo[1:2]
)却无法读取,或者更进一步来说无法展开. 但是我已经 \seq_set_split:Nee \l__skyrmion_tmp_seq {:} {#1}
把那个argument设为e变体了...
下方MWE输出为:
3, and 2
1:2, and
\documentclass{article}
\ExplSyntaxOn
\seq_new:N \l__skyrmion_tmp_seq
\NewDocumentCommand \foo {O{3:2}}
{
\group_begin:
\seq_set_split:Nee \l__skyrmion_tmp_seq {:} {#1}
\exp_args:NNe \seq_item:Nn \l__skyrmion_tmp_seq {1},~ and~
\exp_args:NNe \seq_item:Nn \l__skyrmion_tmp_seq {2}
\group_end:
}
\ExplSyntaxOff
\begin{document}
\foo
\foo[1:2]
\end{document}
\documentclass{article}
\ExplSyntaxOn
\seq_new:N \l__skyrmion_tmp_seq
\NewDocumentCommand \foo {O{3\c_colon_str2}}
{
\group_begin:
\seq_set_split:Nee \l__skyrmion_tmp_seq {\c_colon_str} {#1}
\exp_args:NNe \seq_item:Nn \l__skyrmion_tmp_seq {1},~ and~
\exp_args:NNe \seq_item:Nn \l__skyrmion_tmp_seq {2}
\group_end:
}
\ExplSyntaxOff
\begin{document}
\foo
\foo[1:2]
\end{document}
鱼老师👍
又一次被自己蠢到😭忘记考虑
:
在expl3
中的catcode
๑ᵒᯅᵒ๑