带有来自不同系列的 xkeyval 键的命令

带有来自不同系列的 xkeyval 键的命令

正如我在其他一些问题和我的个人资料页面上所述,我正在编写一个problem-solution包(我知道,其中一些已经存在)

我已经使用了xkeyval包和密钥,但是现在,我想为其他包environmentcommand来自不同包(不是我开发的)的包装器命令,该包本身xkeyval也使用密钥,属于不同的密钥系列。

\providecommand{\somewrapper}[1][]{%
   \setkeys{mykeyfamily}{#1}%
   % Some stuff not relevant here, e.g. configuration etc.
   \theothercommand[#1]{other content} % Not written by me...
 }%

然而,这当然会失败,因为包装器命令参数应该包含特定于的键值\theothercommand

可以混合吗?换句话说:如何区分里面应该放哪个键值\theothercommand以及哪个键与我自己的包代码相连?

为了更清楚地说明:两个系列中的键都具有某​​个名称没有问题,因为我对命令和/或包键使用了特定的命名方案,因此来自不同包的键名称不会发生冲突。

附录:

我想到的一个可能性是使用两个甚至三个参数的包装器命令,其中第一个参数包含属于键系列的键FamilyA,第二个参数包含来自的键FamilyB,但这并不合适,因为我必须在顶层更改一些其他命令,并引入其他可选参数。

答案1

好吧,我找到了混合密钥的解决方案——它在软件包手册中有说明xkeyval,但是却被隐藏了。

 \providecommand{\MyCommand}[1][]{%
 \setkeys{FamilyA,FamilyB}{#1}%
 % Other operations
 %
 %
 }% End of \providecommand

这就要求人们知道其他包的关键系列是如何命名的。

现在的坏消息是:由于其他包使用pgf密钥(不知道“系列”),这种混合密钥的方式是不好的。

相关内容