% Copyright 2018 by Till Tantau % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/generic/pgf/licenses/LICENSE for more details. \ProvidesPackage{xxcolor}[2003/10/24 ver 0.1] \NeedsTeXFormat{LaTeX2e}[1995/12/01] \RequirePackage{xcolor} % Command \newcolormixin{\somecommand} % % Description: % % After this command has been called, you can assign a partial color % specification to \somecommand. Every time a color is set, the % partial color specification in \somecommand will be applied to the % current color. % % Examples: % % \newcolormixin\mymixin % \def\mymixin{!50!white} % % \newcolormixin\anothermixin % \def\anothermixin{!50!red} \def\newcolormixin#1{% \expandafter\def\csname XC@mixin@\the\XC@nummixins\endcsname{#1}% \advance\XC@nummixins\@ne% \ifx#1\@undefined\def#1{}\fi} \newcount\XC@nummixins \newcount\XC@countmixins % Command \applycolormixins{colorname} % % Description: % % Applies all color mixins that have been defined using \newcolormixin % to the color named colorname. % % Examples: % % \applycolormixins{mycolor} \def\applycolormixins#1{% \XC@countmixins=0\relax% \loop% \ifnum\XC@countmixins<\XC@nummixins% \colorlet{#1}{#1\csname XC@mixin@\the\XC@countmixins\endcsname}% \advance\XC@countmixins\@ne\relax% \repeat% } % Internal: \ifx\XC@mcolor\relax \let\XC@mcolor\@empty \fi \g@addto@macro\XC@mcolor{% \ifnum\XC@nummixins>0% \colorlet{XC@mixtmp}{.}% \applycolormixins{XC@mixtmp}% \pgfutil@namelet{current@color}{\string\color@XC@mixtmp}% \fi% } % Environment colormixin % % #1 = full xcolor specification after the first ! ("white" may not be % omitted) % % Description: % % Inside the environment, all colors get the specified mixin. May be % nested. % % Examples: % % \color{red}This is red. % \begin{colormixin}{25!black} % This is dark red. % \color{blue} % This is dark blue. % \end{colormixin} % This is normal red once more. \newcolormixin\colorcurrentmixin \newenvironment{colormixin}[1]% {\edef\colorcurrentmixin{!#1\colorcurrentmixin}\color{.}}{} \def\pgfalternateextension{\colorcurrentmixin} \endinput