summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/oberdiek/example-mycolorsetup.sty
blob: d4b117594c5608ebb3db04a1f5087b8ef4d33069 (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
%%
%% This is file `example-mycolorsetup.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% kvoptions.dtx  (with options: `example')
%% 
%% This is a generated file.
%% 
%% Copyright (C) 2004, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
%% 
%% 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 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status "maintained".
%% 
%% This Current Maintainer of this work is Heiko Oberdiek.
%% 
%% This work consists of the main source file kvoptions.dtx
%% and the derived files
%%    kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
%%    example-mycolorsetup.sty.
%% 
%% No we don't need the option 'color'.
%% With color support option 'emphcolor' will dynamically change
%% the color of \emph statements.
    % Package identification
    % -----------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{example-mycolorsetup}[2006/08/22 Managing my colors]

\RequirePackage{ifpdf}
\RequirePackage{kvoptions}

    % Option declarations
    % -------------------

\SetupKeyvalOptions{
  family=MCS,
  prefix=MCS@
}
    % Use a shorter family name and prefix

    % Option print
\DeclareBoolOption{print}
    % is the same as
    % \DeclareBoolOption[false]{print}

    % Option driver
\ifpdf
  \DeclareStringOption[pdftex]{driver}
\else
  \DeclareStringOption[dvips]{driver}
\fi

    % Alternative interface for driver options
\DeclareVoidOption{dvips}{\SetupDriver}
\DeclareVoidOption{dvipdfm}{\SetupDriver}
\DeclareVoidOption{pdftex}{\SetupDriver}
    % In \SetupDriver we take the current option \CurrentOption
    % and pass it to the driver option.
    % The \expandafter commands expand \CurrentOption at the
    % time, when \SetupDriver is executed and \CurrentOption
    % has the correct meaning.
\newcommand*{\SetupDriver}{%
  \expandafter\@SetupDriver\expandafter{\CurrentOption}%
}
\newcommand*{\@SetupDriver}[1]{%
  \setkeys{MCS}{driver={#1}}%
}

    % Option emph
    % An empty value means, we want to have no color for \emph.
    % If the user specifies option emph without value, the red is used.
\DeclareStringOption{emph}[red]
    % is the same as
    % \DeclareStringOption[]{emph}[red]

    % Default option rule
\DeclareDefaultOption{%
  \ifx\CurrentOptionValue\relax
    \PackageWarningNoLine{\@currname}{%
      Unknown option `\CurrentOption'\MessageBreak
      is passed to package `color'%
    }%
    % Pass the option to package color.
    % Again it is better to expand \CurrentOption.
    \expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{color}%
  \else
    % Package color does not take options with values.
    % We provide the standard LaTeX error.
    \@unknownoptionerror
  \fi
}

    % Process options
    % ---------------
\ProcessKeyvalOptions*

    % Implementation depending on option values
    % -----------------------------------------
    % Code for print mode
\ifMCS@print
  \PassOptionsToPackage{monochrome}{color}
    % tells package color to use black and white
\fi

\RequirePackage[\MCS@driver]{color}
    % load package color with the correct driver

    % \emph setup
\ifx\MCS@emph\@empty
    % \@empty is a predefined macro with empty contents.
    % the option value of option emph is empty, thus
    % we do not want a redefinition of \emph.
\else
  \renewcommand*{\emph}[1]{%
    \textcolor{\MCS@emph}{#1}%
  }
\fi
\endinput
%%
%% End of file `example-mycolorsetup.sty'.