Current File : //usr/share/texlive/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty |
%%
%% 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.
%%
%% Project: kvoptions
%% Version: 2020-10-07 v3.14
%%
%% Copyright (C)
%% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
%% 2016-2020 Oberdiek Package Support Group
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%% https://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%% https://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".
%%
%% The Current Maintainers of this work are
%% Heiko Oberdiek and the Oberdiek Package Support Group
%% https://github.com/ho-tex/kvoptions/issues
%%
%%
%% This work consists of the main source file kvoptions.dtx
%% and the derived files
%% kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
%% kvoptions-patch.sty, example-mycolorsetup.sty,
%% kvoptions-test1.tex, kvoptions-test2.tex,
%% kvoptions-test3.tex, kvoptions-test4.tex,
%% kvoptions-test4.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}[2019/11/29 Managing my colors]
\RequirePackage{iftex}
\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'.