summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pgfopts/pgfopts.sty
blob: 54b1af2ad90bfe9a5ca5a2c375637971a667df5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
%%
%% This is file `pgfopts.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% pgfopts.dtx  (with options: `package')
%%  --------------------------------------------------------------
%%  The pgfopts package --- LaTeX package options with pgfkeys
%%  Maintained by Joseph Wright
%%  E-mail: joseph.wright@morningstar2.co.uk
%%  Released under the LaTeX Project Public License v1.3 or later
%%  See http://www.latex-project.org/lppl.txt
%%  --------------------------------------------------------------
%% 
\NeedsTeXFormat{LaTeX2e}
\newcommand*{\pgfopts@id}{}
\def\pgfopts@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${%
    #5/#6/#7\space v1.0\space}
\ProvidesPackage{pgfopts}
  [\pgfopts@id $Id: pgfopts.dtx 28 2008-06-26 11:59:34Z joseph $
   LaTeX package options with pgfkeys]
\RequirePackage{pgfkeys}
\edef\pgfopts@catcodes{%
  \catcode\string`\string ` \the\catcode\string`\`\relax
  \catcode\string`\string = \the\catcode\string`\=\relax
  \catcode\string`\string : \the\catcode\string`\:\relax
  \catcode\string`\string , \the\catcode\string`\,\relax
  \catcode\string`\string / \the\catcode\string`\/\relax
  \catcode\string`\string . \the\catcode\string`\.\relax}
\catcode\string`\` 12\relax
\catcode`\= 12\relax
\@makeother{\:}
\@makeother{\,}
\@makeother{\/}
\@makeother{\.}
\newcommand*{\ProcessPgfOptions}{%
  \@ifstar
    {\begingroup
       \edef\@tempa{%
         \endgroup
         \noexpand\pgfopts@ProcessOptions
           {/\@currname}}%
     \@tempa}%
    {\pgfopts@ProcessOptions}}
\@onlypreamble\ProcessPgfOptions
\newcommand*{\pgfopts@temp}{}
\newcommand*{\pgfopts@ProcessOptions}[1]{%
  \def\pgfopts@temp{,}%
  \ifx\@currext\@clsextension\else
    \ifx\@classoptionslist\relax\else
      \@for\pgfopts@CurrentOption:=\@classoptionslist\do{%
        \pgfkeysifdefined{#1/\expandafter\pgfopts@sepkeyval%
          \pgfopts@CurrentOption=\@nil/.@cmd}
          {\edef\pgfopts@temp{%
             \pgfopts@temp\pgfopts@CurrentOption,}%
           \@expandtwoargs\@removeelement\pgfopts@CurrentOption
             \@unusedoptionlist\@unusedoptionlist}%
          {}}%
    \fi
  \fi
  \begingroup
    \@ifundefined{opt@\@currname.\@currext}
      {\toks@\expandafter{\pgfopts@temp}}
      {\toks@\expandafter\expandafter\expandafter{%
         \csname opt@\@currname.\@currext\endcsname}%
       \ifx\@currext\@clsextension
         \edef\@tempa{\the\toks@}%
         \toks@\expandafter{\pgfopts@temp}%
         \@for\CurrentOption:=\@tempa\do{%
           \pgfkeysifdefined{#1/\expandafter%
             \pgfopts@sepkeyval\CurrentOption=\@nil/.@cmd}
             {\toks@\expandafter{\the\expandafter\toks@
                \expandafter,\CurrentOption}}
             {\ifx\@empty\@unusedoptionlist\@empty
                \global\let\@unusedoptionlist\CurrentOption
              \else
                \expandafter\expandafter\expandafter\gdef
                \expandafter\expandafter\expandafter
                \@unusedoptionlist\expandafter\expandafter
                \expandafter{%
                  \expandafter\@unusedoptionlist
                  \expandafter,\CurrentOption}%
              \fi}}%
      \else
        \toks@\expandafter\expandafter\expandafter{%
            \expandafter\pgfopts@temp\the\toks@}%
      \fi}%
    \edef\pgfopts@temp{\endgroup
      \noexpand\pgfkeys{#1/.cd,\the\toks@}}%
  \pgfopts@temp
  \let\CurrentOption\@empty
  \AtEndOfPackage{\let\@unprocessedoptions\relax}}
\newcommand*{\pgfopts@sepkeyval}{}
\def\pgfopts@sepkeyval#1=#2\@nil{#1}
\pgfopts@catcodes
\endinput
%%
%% End of file `pgfopts.sty'.