From 9e03dd49eee57e61c49878d62fcc67a57a652a8d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 13 Jan 2006 00:11:40 +0000 Subject: xkeyval git-svn-id: svn://tug.org/texlive/trunk@1459 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty | 152 ++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty (limited to 'Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty') diff --git a/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty b/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty new file mode 100644 index 00000000000..eac101c3e4f --- /dev/null +++ b/Master/texmf-dist/tex/latex/xkeyval/xkeyval.sty @@ -0,0 +1,152 @@ +%% +%% This is file `xkeyval.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xkeyval.dtx (with options: `xkvlatex') +%% +%% --------------------------------------- +%% Copyright (C) 2004-2005 Hendri Adriaens +%% --------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% This Current Maintainer of this work is Hendri Adriaens. +%% +%% This work consists of the file xkeyval.dtx and derived files +%% keyval.tex, xkvtxhdr.tex, xkeyval.sty, xkeyval.tex, xkvview.sty, +%% xkvltxp.sty, pst-xkey.tex, pst-xkey.sty, xkveca.cls, xkvecb.cls, +%% xkvesa.sty, xkvesb.sty, xkvesc.sty, xkvex1.tex, xkvex2.tex, +%% xkvex3.tex and xkvex4.tex. +%% +%% The following files constitute the xkeyval bundle and must be +%% distributed as a whole: readme, xkeyval.pdf, keyval.tex, +%% pst-xkey.sty, pst-xkey.tex, xkeyval.sty, xkeyval.tex, xkvview.sty, +%% xkvltxp.sty, xkvtxhdr.tex, pst-xkey.dtx and xkeyval.dtx. +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{xkeyval} + [2005/08/12 v2.5d package option processing (HA)] +\ifx\XKeyValLoaded\endinput\else\input xkeyval \fi +\edef\XKVcatcodes{% + \catcode`\noexpand\=\the\catcode`\=\relax + \catcode`\noexpand\,\the\catcode`\,\relax + \let\noexpand\XKVcatcodes\relax +} +\catcode`\=12\relax +\catcode`\,12\relax +\let\XKV@doxs\relax +\def\XKV@warn#1{\PackageWarning{xkeyval}{#1}} +\def\XKV@err#1{\PackageError{xkeyval}{#1}\@ehc} +\XKV@whilist\@filelist\XKV@tempa\ifx\XKV@documentclass\@undefined\fi{% + \filename@parse\XKV@tempa + \ifx\filename@ext\@clsextension + \XKV@ifundefined{opt@\filename@area\filename@base.\filename@ext + }{}{% + \edef\XKV@documentclass{% + \filename@area\filename@base.\filename@ext + }% + }% + \fi +} +\ifx\XKV@documentclass\@undefined + \XKV@err{xkeyval loaded before \protect\documentclass}% + \let\XKV@documentclass\@empty + \let\XKV@classoptionslist\@empty +\else + \let\XKV@classoptionslist\@classoptionslist + \def\XKV@tempa#1{% + \let\@classoptionslist\@empty + \XKV@for@n{#1}\XKV@tempa{% + \expandafter\in@\expandafter=\expandafter{\XKV@tempa}% + \ifin@\else\XKV@addtolist@o\@classoptionslist\XKV@tempa\fi + }% + } + \expandafter\XKV@tempa\expandafter{\@classoptionslist} +\fi +\def\XKV@testopte#1{% + \XKV@ifstar{\XKV@sttrue\XKV@t@stopte#1}{\XKV@stfalse\XKV@t@stopte#1}% +} +\def\XKV@t@stopte#1{\@testopt{\XKV@t@st@pte#1}{KV}} +\def\XKV@t@st@pte#1[#2]{% + \XKV@makepf{#2}% + \@ifnextchar<{\XKV@@t@st@pte#1}% + {\XKV@@t@st@pte#1<\@currname.\@currext>}% +} +\def\XKV@@t@st@pte#1<#2>{% + \XKV@sp@deflist\XKV@fams{#2}% + \@testopt#1{}% +} +\def\DeclareOptionX{% + \let\@fileswith@pti@ns\@badrequireerror + \XKV@ifstar\XKV@dox\XKV@d@x +} +\long\def\XKV@dox#1{\XKV@toks{#1}\edef\XKV@doxs{\the\XKV@toks}} +\def\XKV@d@x{\@testopt\XKV@@d@x{KV}} +\def\XKV@@d@x[#1]{% + \@ifnextchar<{\XKV@@@d@x[#1]}{\XKV@@@d@x[#1]<\@currname.\@currext>}% +} +\def\XKV@@@d@x[#1]<#2>#3{\@testopt{\define@key[#1]{#2}{#3}}{}} +\def\ExecuteOptionsX{\XKV@stfalse\XKV@plfalse\XKV@t@stopte\XKV@setkeys} +\def\ProcessOptionsX{\XKV@plfalse\XKV@testopte\XKV@pox} +\def\XKV@pox[#1]{% + \let\XKV@tempa\@empty + \XKV@inpoxtrue + \let\@fileswith@pti@ns\@badrequireerror + \edef\XKV@testclass{\@currname.\@currext}% + \ifx\XKV@testclass\XKV@documentclass + \let\@unusedoptionlist\XKV@classoptionslist + \XKV@ifundefined{ver@xkvltxp.sty}{}{% + \@onelevel@sanitize\@unusedoptionlist + }% + \else + \ifXKV@st + \def\XKV@tempb##1,{% + \def\CurrentOption{##1}% + \ifx\CurrentOption\@nnil\else + \XKV@g@tkeyname##1=\@nil\CurrentOption + \XKV@key@if@ndefined{\CurrentOption}{}{% + \XKV@useoption{##1}% + \XKV@addtolist@n\XKV@tempa{##1}% + }% + \expandafter\XKV@tempb + \fi + }% + \expandafter\XKV@tempb\XKV@classoptionslist,\@nil,% + \fi + \fi + \expandafter\XKV@addtolist@o\expandafter + \XKV@tempa\csname opt@\@currname.\@currext\endcsname + \def\XKV@tempb{\XKV@setkeys[#1]}% + \expandafter\XKV@tempb\expandafter{\XKV@tempa}% + \let\XKV@doxs\relax + \let\XKV@rm\@empty + \XKV@inpoxfalse + \let\@fileswith@pti@ns\@@fileswith@pti@ns + \AtEndOfPackage{\let\@unprocessedoptions\relax}% +} +\def\XKV@useoption#1{% + \def\XKV@resa{#1}% + \XKV@ifundefined{ver@xkvltxp.sty}{}{% + \@onelevel@sanitize\XKV@resa + }% + \@expandtwoargs\@removeelement{\XKV@resa}% + {\@unusedoptionlist}\@unusedoptionlist +} +\DeclareOptionX*{% + \PackageWarning{xkeyval}{Unknown option `\CurrentOption'}% +} +\ProcessOptionsX +\XKVcatcodes +\endinput +%% +%% End of file `xkeyval.sty'. -- cgit v1.2.3