文档l3keys
说:
.cs_set:Np ⟨key⟩ .cs_set:Np = ⟨control sequence⟩ ⟨arg. spec.⟩
定义
⟨key⟩
设置⟨control sequence⟩
有⟨arg. spec.⟩
替换文本⟨value⟩
。
但我不明白如何.cs_set:Np
使用这个关键属性。事实上,在以下 MCE 中:
key-one .code:n = \__mymodule_ditto:n #1
给出了预期的结果,key-two .cs_set:Np = \__mymodule_ditto:n #1
给出一个空的结果。
您能解释一下如何使用.cs_set:Np
关键属性吗?
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\keys_define:nn { mymodule }
{
key-one .code:n = \__mymodule_ditto:n #1 ,
key-two .cs_set:Np = \__mymodule_ditto:n #1
}
\cs_set:Npn \__mymodule_ditto:n #1
{
#1
}
\begin{enumerate}
\item \keys_set:nn { mymodule } { key-one = { Once~ upon~ a~ time,~ ... } }
\item \keys_set:nn { mymodule } { key-two = { Once~ upon~ a~ time,~ ... } }
\end{enumerate}
\ExplSyntaxOff
\end{document}
答案1
该键定义/重新定义命令:
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\keys_define:nn { mymodule } {
key-two .cs_set:Np = \__mymodule_ditto:nn #1 #2
}
\keys_set:nn { mymodule } { key-two = { Once~ upon~ a~ time,~ #1,~#2
... } }
\__mymodule_ditto:nn{hallo}{world}\par
\keys_set:nn { mymodule } { key-two = { #1!!!} }
\__mymodule_ditto:nn{hallo}{world}
\ExplSyntaxOff
\end{document}