%% %% 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: 2016/05/16 v3.12 %% %% Copyright (C) 2004, 2006, 2007, 2009-2011 by %% Heiko Oberdiek %% %% 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 %% http://www.latex-project.org/lppl/lppl-1-3c.txt %% and 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, %% 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}[2016/05/16 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'.