% $Id: DEoptions.sty 574 2011-09-05 08:17:17Z herbert $ % Copyright 2011 by Herbert Voss % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/licenses/LICENSE for more details. \RequirePackage{keyval}[1997/11/10] \def\ProcessOptionsExa{% \let\@tempa\@empty \ifx\@currext\@clsextension% \else \@for\CurrentOption:=\@classoptionslist\do{% \@ifundefined{KV@\@currname @\CurrentOption}% {}{\edef\@tempa{\@tempa,\CurrentOption,}}}% \fi \edef\@tempa{% \noexpand\setkeys{\@currname}{\@tempa\@ptionlist{\@currname.\@currext}}}% \let\exa@origkverr\KV@err% \ifx\@currext\@clsextension\let\KV@errx=\@gobble\fi% never mind \@tempa% \let\KV@err\exa@origkverr% \AtEndOfPackage{\let\@unprocessedoptions\relax}} \def\ExecuteOptionsExa#1{\setkeys{\@currname}{#1}} \def\DeclareOptionExa#1{\@ifnextchar[{\exa@dokv{#1}}{\exa@dokv{#1}[]}} \long\def\exa@dokv#1[#2]#3{\define@key{\@currname}{#1}[{#2}]{#3}} \def\exa@filterclassoptions{% \def\exa@filteredclassoptionslist{} \@for\CurrentOption:=\@classoptionslist\do{% \ifx\CurrentOption\@empty\else \@expandtwoargs\in@{=}{\CurrentOption}% \ifin@ \else \edef\exa@filteredclassoptionslist{% \exa@filteredclassoptionslist,\CurrentOption} \fi \fi }% \let\@classoptionslist=\exa@filteredclassoptionslist% } \newcommand\defexaoption{\define@key{exa@option}} \newcommand\setexaoption{\setkeys{exa@option}} \endinput