% Copyright 2019 by Till Tantau % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Free Documentation License. % % See the file doc/generic/pgf/licenses/LICENSE for more details. \section{Extended Color Support} This section documents the package \texttt{xxcolor}, which is currently distributed as part of \pgfname. This package extends the \texttt{xcolor} package, written by Uwe Kern, which in turn extends the \texttt{color} package. I hope that the commands in \texttt{xxcolor} will some day migrate to \texttt{xcolor}, such that this package becomes superfluous. The main aim of the \texttt{xxcolor} package is to provide an environment inside which all colors are ``washed out'' or ``dimmed''. This is useful in numerous situations and must typically be achieved in a roundabout manner if such an environment is not available. \begin{environment}{{colormixin}\marg{mix-in specification}} The mix-in specification is applied to all colors inside the environment. At the beginning of the environment, the mix-in is applied to the current color, i.e., the color that was in effect before the environment started. A mix-in specification is a number between 0 and 100 followed by an exclamation mark and a color name. When a |\color| command is encountered inside a mix-in environment, the number states what percentage of the desired color should be used. The rest is ``filled up'' with the color given in the mix-in specification. Thus, a mix-in specification like |90!blue| will mix in 10\% of blue into everything, whereas |25!white| will make everything nearly white. % \begin{codeexample}[width=4cm,preamble={\usepackage{xxcolor}}] \begin{minipage}{3.5cm}\raggedright \color{red}Red text,% \begin{colormixin}{25!white} washed-out red text, \color{blue} washed-out blue text, \begin{colormixin}{25!black} dark washed-out blue text, \color{green} dark washed-out green text,% \end{colormixin} back to washed-out blue text,% \end{colormixin} and back to red. \end{minipage}% \end{codeexample} % \end{environment} Note that the environment only changes colors that have been installed using the standard \LaTeX\ |\color| command. In particular, the colors in images are not changed. There is, however, some support offered by the commands |\pgfuseimage| and |\pgfuseshading|. If the first command is invoked inside a |colormixin| environment with the parameter, say, |50!black| on an image with the name |foo|, the command will first check whether there is also a defined image with the name |foo.!50!black|. If so, this image is used instead. This allows you to provide a different image for this case. If you nest |colormixin| environments, the different mix-ins are all appended. For example, inside the inner environment of the above example, |\pgfuseimage{foo}| would first check whether there exists an image named |foo.!25!white!25!black|. \begin{command}{\colorcurrentmixin} Expands to the current accumulated mix-in. Each nesting of a |colormixin| adds a mix-in to this list. % \begin{codeexample}[preamble={\usepackage{xxcolor} \usepackage{calc}}] \begin{minipage}{\linewidth-6pt}\raggedright \begin{colormixin}{75!white} \colorcurrentmixin\ should be ``!75!white''\par \begin{colormixin}{75!black} \colorcurrentmixin\ should be ``!75!black!75!white''\par \begin{colormixin}{50!white} \colorcurrentmixin\ should be ``!50!white!75!black!75!white''\par \end{colormixin} \end{colormixin} \end{colormixin} \end{minipage} \end{codeexample} % \end{command}