# How to make xkvview record keyreader defined keys?

Since keyreader is based on xkeyval i wonder if it’s possible to make it wokr with xkvview which comes with xkeyval.

\documentclass{scrartcl}

\usepackage{xkvview}

\makeatletter

% recorded
\define@boolkey{LI@package}[li@]{savemode}[true]{}
% not recorded
\krddefinekeys{LI@all}[li@]{%
cmd/testa/;
}

\begin{document}
\xkvview{}
\end{document}


The example shows that keys defined with the xkeyval way are recognized but not the ones defined via keyreader. I thought keyreader uses the xkeyval commands internally so I expect it to be also in the \xkvview{} list

-

\documentclass{article}
\usepackage{xkvview}
\makeatletter
\krddefinekeys{fama}{%
ord/keya/default;
cmd/keyb;
choice/keyc/center/center.do=\def\x##1{#1xx##1},left,right;
bool/keyd/true;
}
\krddefinekeys{famb}{%
choice/planet/Earth/Earth.do=\def\x##1{#1##1},Mars,Jupiter;
bool/space travel/true;
}
\makeatother
\begin{document}
%\xkvview{family=fama,default=[none]}
\xkvview{family=fama}
\end{document}


I have to investigate why keyc is shown twice in this table.

EDIT:

keyc is shown twice because of a bug in the package xkvview. I provide a patch below:

\def\XKV@d@fine@ch@icekey#1[#2]{%
\let\d@fault\relax
\XKVV@tabulate{#1}{choice}{#2}%
\XKV@define@default{#1}{#2}%
\XKV@d@fine@ch@ic@key{#1}%
}
\def\XKV@d@fine@ch@ic@key#1{%
\ifx\d@fault\relax
\let\d@fault\@undefined
\else
\XKVV@tabulate{#1}{choice}{[none]}%
\fi
\ifXKV@pl\XKV@afterelsefi
\expandafter\XKV@d@f@ne@ch@ic@k@y
\else\XKV@afterfi
\expandafter\XKV@d@f@ne@ch@ic@key
\fi

Ahh sorry, I misread your answer and thought it was a keyreader bug O:-) Thanks for informing the maintainer :-) –  Tobi Mar 20 '12 at 13:46