%% %% This is file `interfaces-pgfkeys.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% interfaces.dtx (with options: `pgfkeys') %% %% This is a generated file. %% %% interfaces : 2011/02/19 v3.1 - interfaces : interfaces with keys for other packages (FC) %% %% 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 %% %% This work consists of the main source file interfaces.dtx %% and the derived files %% interfaces.sty, interfaces.pdf, interfaces.ins, %% interfaces-base.sty, %% interfaces-LaTeX.sty, %% interfaces-tikz.sty, %% interfaces-titlesec.sty, %% interfaces-hyperref.sty, %% interfaces-bookmark.sty, %% interfaces-hypbmsec.sty, %% interfaces-fancyhdr.sty, %% interfaces-marks.sty, %% interfaces-tocloft.sty, %% interfaces-makecell.sty, %% interfaces-enumitem.sty, %% interfaces-truncate.sty, %% interfaces-appendix.sty, %% interfaces-embedfile.sty, %% interfaces-environ.sty, %% interfaces-umrand.sty, %% interfaces-scrlfile.sty, %% interfaces-pgfkeys.sty, %% interfaces-etoolbox.sty %% %% interfaces: interfaces with keys for other packages (FC) %% Copyright (C) 2010 by Florent Chervet %% \ProvidesPackage{interfaces-pgfkeys} [2011/02/19 v3.1 pgfkeys handlers definitions (FC)] \RequirePackage{interfaces-base} \ifdefined\pgfkeys@ifexecutehandler % pgf version 2.1 \def\itf@pgfkeys{% \global\let\pgfkeys@unpack \itf@pgfkeys@unpack \global\let\pgfkeys@case@three \itf@pgfkeys@case@three \global\let\pgfkeys@case@three@handleall\itf@pgfkeys@case@three@handleall }% \itf@pgfkeys \else \def\itf@pgfkeys{% \global\let\pgfkeys@unpack \itf@pgfkeys@unpack \global\let\pgfkeys@case@three \itf@pgfkeys@case@three \global\let\pgfkeysaddvalue \itf@pgfkeysaddvalue \global\let\pgfkeys@exp@call \itf@pgfkeys@exp@call }% \itf@pgfkeys \fi \AtBeginDocument{\itf@pgfkeys \let\itf@pgfkeys \relax} \providecommand*\pgfkeysmeaning[1]{\pgfkeysifdefined{#1} {\expandafter\meaning\csname pgfk@#1\endcsname} {\meaning\@undefined}% }% \pgfkeysmeaning \def\pgfkeysvalueof@unexpanded#1{% \unexpanded\expandafter\expandafter\expandafter{% \csname pgfk@#1\endcsname}% }% \pgfkeysvalueof@unexpanded \ifdefined\pgfkeys@ifexecutehandler \else % pgf v2.1: bug fixed \def\itf@pgfkeysaddvalue#1#2#3{% (pgf v2.0: bug in pgfkeys.code.tex) \edef\pgfkeys@global@temp{% \unexpanded{#2}% \ifcsname pgfk@#1\endcsname \unexpanded\expandafter\expandafter\expandafter{% \csname pgfk@#1\endcsname}% \fi \unexpanded{#3}}% \pgfkeyslet{#1}\pgfkeys@global@temp }% \itf@pgfkeysaddvalue \fi \ifdefined\pgfkeys@ifexecutehandler \long \fi % pgf version 2.1 \def\pgfkeysEsetvalue#1#2{% \expandafter\edef\csname pgfk@#1\endcsname{#2}% }% \pgfkeysEsetvalue \ifdefined\pgfkeys@ifexecutehandler \long \fi % pgf v2.1 \def\pgfkeysEaddvalue#1#2#3{% \csepreappto{pgfk@#1}{#2}{#3} \edef\pgfkeys@global@temp{% #2% \ifcsname pgfk@#1\endcsname \unexpanded\expandafter\expandafter\expandafter{% \csname pgfk@#1\endcsname}% \fi #3}% \pgfkeyslet{#1}\pgfkeys@global@temp }% \pgfkeysEaddvalue %% missed a pair of braces around the argument in pgfkeys.code.tex (pgf v2.0) %% ( the code could break if it contains = or , ) \ifdefined\pgfkeys@ifexecutehandler\else % (bug corrected in pgf v2.1) \def\itf@pgfkeys@exp@call#1{\pgfkeysalso{\pgfkeyscurrentpath={#1}}}% \fi %% The value is now checked by \itf@pgfkeys@default@blank@required: \ifdefined\pgfkeys@ifexecutehandler \long \fi % pgf v2.1 \def\itf@pgfkeys@unpack#1=#2=#3\pgfkeys@stop{% \pgfkeys@spdef\pgfkeyscurrentkey{#1}% \edef\pgfkeyscurrentkey{\pgfkeyscurrentkey}% \ifx\pgfkeyscurrentkey\pgfkeys@empty % Skip \else% \pgfkeys@add@path@as@needed \pgfkeys@spdef\pgfkeyscurrentvalue{#2}% \itf@pgfkeys@default@blank@required % \pgfkeyscurrentkey % \pgfkeys@case@one % \fi }% \itf@pgfkeys@unpack \def\itf@pgfkeys@default@blank@required#1#2{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text% Hmm... no value \pgfkeysifdefined{#1/.@def}% {\pgfkeysgetvalue{#1/.@def}\pgfkeyscurrentvalue} {}% no default, so leave it \fi \ifx\pgfkeyscurrentvalue\@empty \pgfkeysifdefined{#1/.@blank} {\pgfkeysgetvalue{#1/.@blank}\pgfkeyscurrentvalue} {}% no /.blank specified \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text% in case /.blank -> \pgfkeysnovalue \pgfkeysifdefined{#1/.@def}% {\pgfkeysgetvalue{#1/.@def}\pgfkeyscurrentvalue} {}% no default, so leave it \fi\fi \ifx\pgfkeyscurrentvalue\pgfkeysvaluerequired \pgfkeysvalueof{/errors/value required/.@cmd}\pgfkeyscurrentkey \pgfkeyscurrentvalue \pgfeov \else #2% \fi }% \itf@pgfkeys@default@blank@required %% To handle the cases of: /handler/.default= /handler/.blank= /handler/.value required, %% it is necessary to redefine \pgfkeys@case@three \def\itf@pgfkeys@case@three{% \pgfkeys@split@path \pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd} {% \itf@pgfkeys@default@blank@required{/handlers/\pgfkeyscurrentname}% {\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}\pgfkeys@code \expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov}% } \pgfkeys@unknown % no handler, thus the key is unknown }% \itf@pgfkeys@case@three \ifdefined\pgfkeys@ifexecutehandler \let\itf@pgfkeys@case@three@handleall \itf@pgfkeys@case@three \fi \itf@pgfkeys \pgfkeys{% /handlers/.alias/.code=\itf@pgfkeys@ifaliasexists{#1}{% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeysalso{\pgfkeysdefaultpath#1={##1}}}},% /handlers/.alias/.value required,% /handlers/.blank/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath/.@blank}{#1},% /handlers/.blank/.default=\pgfkeysnovalue,% }% /.alias and /.blank \def\itf@pgfkeys@ifaliasexists#1#2{% \pgfkeysifdefined{\pgfkeysdefaultpath#1/.@cmd}{#2} {\pgfkeysifdefined{\pgfkeysdefaultpath#1} {#2} {\itf@pgfkeys@aliaserror{#1}}}% }% \itf@pgfkeys@ifaliasexists \def\itf@pgfkeys@aliaserror#1{% \PackageError{interfaces-pgfkeys} {You want the key \pgfkeyscurrentpath\space \MessageBreak to be an alias for \pgfkeysdefaultpath#1 \MessageBreak but the key \pgfkeysdefaultpath#1 \MessageBreak is not defined!}\@eha\@gobble }% \itf@pgfkeys@aliaserror \pgfkeys{ /handlers/.alias*/.code=\itf@pgfkeys@ifaliasexists{#1}{% \pgfkeysedef\pgfkeyscurrentpath{\noexpand\pgfkeysalso{\pgfkeysdefaultpath#1={##1}}}% \@tfor\x:=+-*\do{% \pgfkeysifdefined{\pgfkeysdefaultpath#1\x/.@cmd} {\pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeysdefaultpath#1\x={##1}}}} {}% }},% /handlers/.alias*/.value required,% }% /.alias* \pgfkeys{% /handlers/.is private/.code=\pgfkeysdef\pgfkeyscurrentpath{% \PackageError{#1}{Key \pgfkeyscurrentkey\space is private \MessageBreak and should not be modified}\@ehd},% /handlers/.is private to class/.code=\pgfkeysdef\pgfkeyscurrentpath{% \ClassError{#1}{Key \pgfkeyscurrentkey\space is private \MessageBreak and should not be modified}\@ehd}% }% /.is private \def\itf@pgfkeys@choice[#1]#2#3{% \pgfkeys{\pgfkeyscurrentpath/.cd,% .is choice,% #2/.code={#3},% .default/.expanded=\@firstoftwo#1}% }% \itf@pgfkeys@choice \pgfkeys{% /handlers/.true/.code=\itf@pgfkeys@choice[{true}{false}]{true}{#1},% /handlers/.false/.code=\itf@pgfkeys@choice[{true}{false}]{false}{#1},% /handlers/.on/.code=\itf@pgfkeys@choice[{on}{off}]{on}{#1},% /handlers/.off/.code=\itf@pgfkeys@choice[{on}{off}]{off}{#1},% }% /.true /.false \pgfkeys{% /handlers/.store in cs/.code=\pgfkeysdef\pgfkeyscurrentpath{\csdef{#1}{##1}},% /handlers/.estore in cs/.code=\pgfkeysdef\pgfkeyscurrentpath{\csedef{#1}{##1}},% }% /.store in cs %% /.store as code handlers \pgfkeys{% /handlers/.store as code/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeyslet{\pgfkeyscurrentpath}\noexpand\pgfkeyscurrentvalue}% \pgfkeyslet\pgfkeyscurrentpath\@empty \pgfkeyslet{\pgfkeyscurrentpath/.@def}\@empty \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded={% \noexpand\pgfkeysvalueof@unexpanded{\pgfkeyscurrentpath}% \noexpand\unexpanded{##1}}}}% \pgfkeyslet{\pgfkeyscurrentpath\x/.@def}\@empty }},% /handlers/.store as code/.default=*+,% }% /.store as code \pgfkeys{% /handlers/.estore as code/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeysEsetvalue{\pgfkeyscurrentpath}{##1}}% \pgfkeyslet\pgfkeyscurrentpath\@empty \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded={% \noexpand\pgfkeysvalueof@unexpanded{\pgfkeyscurrentpath}% \noexpand\unexpanded{##1}}}}% }},% /handlers/.estore as code/.default=*+,% }% /.estore as code \pgfkeys{% /handlers/.store as code in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csdef{#1}{##1}\fi}% \@tfor\x:=*+\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded={% \noexpand\ifcsname#1\endcsname \noexpand\expandafter\noexpand\expandonce \noexpand\csname#1\endcsname \noexpand\fi \noexpand\unexpanded{##1}}}}% \pgfkeyslet{\pgfkeyscurrentpath\x/.@def}\@empty }},% /handlers/.store as code in cs/.value required,% }% /.store as code in cs \pgfkeys{% /handlers/.estore as code in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csedef{#1}{##1}\fi}% \@tfor\x:=*+\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded={% \noexpand\ifcsname#1\endcsname \noexpand\expandafter\noexpand\expandonce \noexpand\csname#1\endcsname \noexpand\fi \noexpand\unexpanded{##1}}}}% }},% default if \pgfkeysnovalue which expands to \@empty /handlers/.estore as code in cs/.value required,% }% /.estore as code in cs \protected\def\itf@pgfk@color#1#2\@nil{% \ifx\@let@token\color \def\pgfkeyscurrentvalue{#2}% \else\ifx\@let@token\normalcolor \def\pgfkeyscurrentvalue{default}% \else\ifx\@let@token\pgfkeysnovalue \def\pgfkeyscurrentvalue{default}% \fi\fi\fi }% \itf@pgfk@color \pgfkeys{% /handlers/.store as color/.code=% \pgfkeysedef\pgfkeyscurrentpath{% \futurelet\noexpand\@let@token\itf@pgfk@color ##1\noexpand\pgfkeysnovalue\noexpand\@nil \noexpand\pgfkeyslet{\pgfkeyscurrentpath}\noexpand\pgfkeyscurrentvalue}% }% /.store as color \pgfkeys{% /handlers/.store as color in cs/.code=% \pgfkeysedef\pgfkeyscurrentpath{% \futurelet\noexpand\@let@token\itf@pgfk@color ##1\noexpand\pgfkeysnovalue\noexpand\@nil \cslet{#1}\noexpand\pgfkeyscurrentvalue}% }% /.store as color in cs \protected\def\itf@pgfk@colorcmd#1\@nil{% \ifcat @\noexpand\@let@token \def\pgfkeyscurrentvalue{\color{#1}}% \else\ifcat 0\noexpand\@let@token \def\pgfkeyscurrentvalue{\color{#1}}% \else\ifx\@let@token\@nil \let\pgfkeyscurrentvalue\normalcolor \fi\fi\fi }% \itf@pgfk@colorcmd \pgfkeys{% /handlers/.store as color command/.code=% \pgfkeysedef\pgfkeyscurrentpath{% \futurelet\noexpand\@let@token\itf@pgfk@colorcmd ##1\noexpand\@nil \noexpand\pgfkeyslet{\pgfkeyscurrentpath}\noexpand\pgfkeyscurrentvalue}% \pgfkeyssetvalue{\pgfkeyscurrentpath/.@def}\normalcolor }% /.store as color command \pgfkeys{% /handlers/.store as color command in cs/.code=% \pgfkeysedef\pgfkeyscurrentpath{% \futurelet\noexpand\@let@token\itf@pgfk@colorcmd ##1\noexpand\@nil \cslet{#1}\noexpand\pgfkeyscurrentvalue}% \pgfkeyssetvalue{\pgfkeyscurrentpath/.@def}\normalcolor }% /.store as color command in cs \pgfkeys{% /handlers/.store as number/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath}{\numexpr##1\relax}}% \pgfkeyslet\pgfkeyscurrentpath\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded=% \noexpand\pgfkeysvalueof@unexpanded{\pgfkeyscurrentpath}% \x \numexpr\unexpanded{##1}\relax}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.store as number/.default=+-*,% }% /.store as number \pgfkeys{% /handlers/.store as number in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csdef{#1}{\numexpr##1\relax}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \letcs\noexpand\pgfkeys@temp{% \noexpand\ifcsname#1\endcsname #1\noexpand\else\if*\x @ne\else z@\fi\noexpand\fi}% \edef\noexpand\pgfkeys@temp{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath={% \noexpand\expandonce\noexpand\pgfkeys@temp \x \numexpr\noexpand\unexpanded{##1}\relax}}% }\noexpand\pgfkeys@temp}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.store as number in cs/.value required,% }% /.store as number in cs \pgfkeys{% /handlers/.estore as number/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath}{% \noexpand\number\numexpr##1\relax}}% \pgfkeyslet\pgfkeyscurrentpath\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\pgfkeysvalueof{\pgfkeyscurrentpath}% \x \numexpr##1\relax}}% }},% /handlers/.estore as number/.default=+-*,% }% /.estore as number \pgfkeys{% /handlers/.estore as number in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csedef{#1}{\number\numexpr##1\relax}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\csname\noexpand\ifcsname#1\endcsname #1\noexpand\else\if*\x @ne\else z@\fi\noexpand\fi\endcsname \x \numexpr##1\relax}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.estore as number in cs/.value required,% }% /.estore as number in cs \pgfkeys{% /handlers/.store in counter cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csname#1\endcsname\numexpr##1\relax\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\csname\noexpand\ifcsname#1\endcsname #1\noexpand\else\if*\x @ne\else z@\fi\noexpand\fi\endcsname \x \numexpr##1\relax}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\@ne\else\z@\fi}% }},% /handlers/.store in counter cs/.value required,% }% /.store in counter cs \pgfkeys{% /handlers/.store in count cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csname#1\endcsname\numexpr##1\relax\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\csname\noexpand\ifcsname#1\endcsname #1\noexpand\else\if*\x @ne\else z@\fi\noexpand\fi\endcsname \x \numexpr##1\relax}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\@ne\else\z@\fi}% }},% /handlers/.store in count cs/.value required,% }% /.store in count cs \pgfkeys{% /handlers/.store as glue/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath}{\glueexpr##1\relax}}% \pgfkeyslet\pgfkeyscurrentpath\z@skip \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@skip \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@skip \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded=% \noexpand\pgfkeysvalueof@unexpanded{\pgfkeyscurrentpath}% \x \if*\x\noexpand\itf@units@scaleNoCalc##1! \else\glueexpr\noexpand\unexpanded{##1}\relax\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@skip\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@skip\fi}% }},% /handlers/.store as glue/.default=+-*,% }% /.store as glue \pgfkeys{% /handlers/.store as glue in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csdef{#1}{\glueexpr##1\relax}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@skip \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \letcs\noexpand\pgfkeys@temp{% \noexpand\ifcsname#1\endcsname #1\noexpand\else z@skip\noexpand\fi}% \edef\noexpand\pgfkeys@temp{% \noexpand\noexpand\noexpand\pgfkeysalso{\pgfkeyscurrentpath={% \noexpand\expandonce\noexpand\pgfkeys@temp \x \if*\x\noexpand\itf@units@scaleNoCalc##1! \else\glueexpr\noexpand\unexpanded{##1}\relax\fi}}% }\noexpand\pgfkeys@temp}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@skip\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@skip\fi}% }},% /handlers/.store as glue in cs/.value required,% }% /.store as glue in cs \pgfkeys{% /handlers/.estore as glue/.code={% \pgfkeysedef{\pgfkeyscurrentpath}{% \itf@setlength\itf@sk{##1}% \noexpand\pgfkeysEsetvalue{\pgfkeyscurrentpath}{% \noexpand\the\itf@sk}}% \pgfkeyslet\pgfkeyscurrentpath\z@skip \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@skip \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@skip \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\pgfkeysvalueof{\pgfkeyscurrentpath}\x \if*\x \noexpand\itf@units@scale##1! \else\glueexpr##1\relax\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@skip\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@skip\fi}% }},% /handlers/.estore as glue/.default=+-*,% }% /.estore as glue \pgfkeys{% /handlers/.estore as glue in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\itf@setlength\itf@sk{##1}% \csedef{#1}{\the\itf@sk}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@skip \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\csname\noexpand\ifcsname#1\endcsname #1\noexpand\else z@skip\noexpand\fi\endcsname \x \if*\x\noexpand\itf@units@scale##1! \else\glueexpr##1\relax\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@skip\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@skip\fi}% }},% /handlers/.etore as glue in cs/.value required,% }% /.estore as glue in cs \pgfkeys{% /handlers/.store in skip cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\expandafter\itf@setlength\csname#1\endcsname{##1}\fi}% \pgfkeyslet{/\pgfkeyscurrentpath/.@blank}\z@skip \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \csname#1\endcsname % should have been defined as a skip (not expandable) \x \if*\x\noexpand\itf@units@scale##1! \else\glueexpr##1\relax\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@skip\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@skip\fi}% }},% /handlers/.store in skip cs/.value required,% }% /.store in skip cs \pgfkeys{% /handlers/.store as dimen/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath}{\dimexpr##1\relax}}% \pgfkeyslet\pgfkeyscurrentpath\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath/.expanded={% \noexpand\pgfkeysvalueof@unexpanded{\pgfkeyscurrentpath}% \x \if*\x \noexpand\itf@units@scaleNoCalc##1! \else\dimexpr\noexpand\unexpanded{##1}\relax\fi}}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.store as dimen/.default=+-*,% }% /.store as dimen \pgfkeys{% /handlers/.store as dimen in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\csdef{#1}{\dimexpr##1\relax}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \letcs\noexpand\pgfkeys@temp{% \noexpand\ifcsname#1\endcsname #1\noexpand\else z@\noexpand\fi}% \edef\noexpand\pgfkeys@temp{% \noexpand\noexpand\noexpand\pgfkeysalso{\pgfkeyscurrentpath={% \noexpand\expandonce\noexpand\pgfkeys@temp \x \if*\x\noexpand\itf@units@scaleNoCalc##1! \else\dimexpr\noexpand\unexpanded{##1}\relax\fi}}% }\noexpand\pgfkeys@temp}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.store as dimen in cs/.value required,% }% /.store as dimen in cs {csname}{+-*} \pgfkeys{% /handlers/.estore as dimen/.code={% \pgfkeysedef\pgfkeyscurrentpath{% \itf@setlength\itf@sk{##1}% \noexpand\pgfkeysEsetvalue{\pgfkeyscurrentpath}{% \noexpand\the\dimexpr\itf@sk}}% \pgfkeyslet\pgfkeyscurrentpath\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@def}\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=#1\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \noexpand\pgfkeysvalueof{\pgfkeyscurrentpath}\x \if*\x \noexpand\itf@units@scale##1! \else \dimexpr##1\relax\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.estore as dimen/.default=+-*,% }% /.estore as dimen \pgfkeys{% /handlers/.estore as dimen in cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else \itf@setlength\itf@sk{##1}% \csedef{#1}{\the\dimexpr\itf@sk}\fi}% \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \noexpand\ifcsname#1\endcsname \noexpand\@defaultunits \itf@sk \noexpand\csname#1\endcsname pt\relax\noexpand\@nnil \noexpand\else \itf@sk \z@ \noexpand\fi \if*\x \itf@setlength\itf@sk {\itf@sk*\noexpand\itf@units@scale##1!}% \else \noexpand\@defaultunits\@tempdima ##1pt \relax\noexpand\@nnil \advance\itf@sk\x \@tempdima \fi \noexpand\pgfkeysalso{\pgfkeyscurrentpath=\itf@sk}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.etore as dimen in cs/.value required,% }% /.estore as dimen in cs \pgfkeys{% /handlers/.store in dimen cs/.code={% \pgfkeysdef\pgfkeyscurrentpath{% \ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text \else\expandafter\itf@setlength\csname#1\endcsname{##1}\fi}% \pgfkeyslet{/\pgfkeyscurrentpath/.@blank}\z@ \@tfor\x:=+-*\do{% \pgfkeysedef{\pgfkeyscurrentpath\x}{% \if*\x \else \noexpand\@defaultunits\itf@sk ##1pt \relax\noexpand\@nnil \fi \noexpand\pgfkeysalso{\pgfkeyscurrentpath=% \csname#1\endcsname % has been defined as a dimen (not expandable) \x \if*\x \noexpand\itf@units@scale##1! \else\itf@sk\fi}}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@def}{\if*\x\@ne\else\z@\fi}% \pgfkeysEsetvalue{\pgfkeyscurrentpath\x/.@blank}{\if*\x\@ne\else\z@\fi}% }},% /handlers/.store in dimen cs/.value required,% }% /.store in dimen cs \pgfkeys{% /handlers/.is multiple choice/.code=% \pgfkeys{\pgfkeyscurrentpath/.cd,% .unknown/.style={% /errors/unknown choice value=\pgfkeyscurrentkey\pgfkeyscurrentvalue},% .code=\expandafter\pgfkeys\expandafter{\pgfkeyscurrentkey/.cd,####1}% },% /handlers/.is multiple choice/.value forbidden,% }% /.is multiple choice \pgfkeys{% /handlers/.is enum/.code={% \itf@cnt\z@ \@for\x:=\pgfkeyscurrentvalue\do{% \pgfkeysedef{\pgfkeyscurrentpath/\x}{% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath}{\x}% \noexpand\pgfkeyssetvalue{\pgfkeyscurrentpath/.number}{\the\itf@cnt}}% \ifnum\itf@cnt=\z@ \pgfkeyslet{\pgfkeyscurrentpath/.@def}\x \pgfkeyslet{\pgfkeyscurrentpath/.@blank}\x \fi \advance\itf@cnt\@ne }% \pgfkeysalso{\pgfkeyscurrentpath/.is choice}},% /handlers/.is enum/.value required,% }% /.is enum \endinput %% %% End of file `interfaces-pgfkeys.sty'.