为什么一个choice
键不能将它的值作为键保存到宏中cmd
,而是像相应的键一样xkeyval
\define@choicekey
保存?
在下面的示例中,我必须my@key
使用回调手动定义。
\documentclass{article}
\usepackage{keyreader}
\krddefinekeys*{CL}[my]{%
choice/keya/one/
one,two,three/\def\mykeya{#1};
choice/keyb/aa/
aa,bb,cc,dd;
}
\begin{document}
\mykeya% works
and
%\mykeyb% doesn't work
\end{document}
可以xkeyval
定义一个bin
保存该值的宏:
\define@choicekey*{CL}{keyc}[\mybin]{alpha,beta,gamma,epsilon}[alpha]{}
后者\mybin
的价值为keyc
答案1
命令\define@choicekey
键值\<macro-prefix>@<key-name>
包不会产生用于保存用户输入的宏。\krddefinekeys
命令键盘阅读器包装用途键值在\define@choicekey
背景中。
您请求的功能仅在龙腾包。请尝试以下操作:
\documentclass{article}
\usepackage{ltxkeys}
\makeatletter
\ltxkeys@declarekeys*{fam}[my]{%
% choice/<key name>.{<alternate values>}/<default>/<callback>;
choice/keya.{one,two,three}/one;
choice/keyb.{aa,bb,cc,dd}/aa;
% cmd/<key name>/<default>/<callback>;
cmd/keyc/cc/\def\xc##1{##1xx#1};
}
\makeatother
\begin{document}
\mykeya, \mykeyb\space and \mykeyc
\end{document}