% % keyvalx.sty % by pts@fazekas.hu at Fri Jan 24 12:27:05 CET 2003 % % Works with laemu.sty. Based on standard LaTeX keyval.sty. % \expandafter\ifx\csname ifLaTeX\endcsname\relax\input laemu.sty\relax\fi% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{keyvalx} [1999/03/16 v1.13 key=value parser (DPC)] \def\setkeys#1#2{% \def\KV@prefix{KV@#1@}% \let\@tempc\relax \KV@do#2,\relax,} \def\KV@do#1,{% \ifx\relax#1\empty\else \KV@split#1==\relax \expandafter\KV@do\fi} \def\KV@split#1=#2=#3\relax{% \KV@@sp@def\@tempa{#1}% \ifx\@tempa\@empty\else \expandafter\let\expandafter\@tempc \csname\KV@prefix\@tempa\endcsname \ifx\@tempc\relax \KV@errx {key \@tempa\space in \KV@prefix\space undefined}% \else \ifx\@empty#3\@empty \KV@default \else \KV@@sp@def\@tempb{#2}% \expandafter\@tempc\expandafter{\@tempb}\relax \fi \fi \fi} \def\KV@default{% \expandafter\let\expandafter\@tempb \csname\KV@prefix\@tempa @default\endcsname \ifx\@tempb\relax \KV@err{No value specified for \@tempa}% \else \@tempb\relax \fi} %**** pts **** %\DeclareOption{unknownkeysallowed}{% % \def\KV@errx#1{\PackageInfo{keyval}{#1}}} %\DeclareOption{unknownkeyserror}{% % \def\KV@errx#1{\PackageError{keyval}{#1}\@ehc}} %\ExecuteOptions{unknownkeyserror} %\let\KV@err\KV@errx %\ProcessOptions \def\KV@errx#1{\PackageError{keyval}{#1}\@ehc}% \let\KV@err\KV@errx \def\@tempa#1{% \def\KV@@sp@def##1##2{% \futurelet\KV@tempa\KV@@sp@d##2\@nil\@nil#1\@nil\relax##1}% \def\KV@@sp@d{% \ifx\KV@tempa\@sptoken \expandafter\KV@@sp@b \else \expandafter\KV@@sp@b\expandafter#1% \fi}% \def\KV@@sp@b#1##1 \@nil{\KV@@sp@c##1}% } \@tempa{ } \def\KV@@sp@c#1\@nil#2\relax#3{\KV@toks@{#1}\edef#3{\the\KV@toks@}} \newtoks\KV@toks@ \def\define@key#1#2{% \@ifnextchar[{\KV@def{#1}{#2}}{\@namedef{KV@#1@#2}####1}} \def\KV@def#1#2[#3]{% \@namedef{KV@#1@#2@default\expandafter}\expandafter {\csname KV@#1@#2\endcsname{#3}}% \@namedef{KV@#1@#2}##1} \endinput