diff options
author | Karl Berry <karl@freefriends.org> | 2023-11-13 20:35:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-11-13 20:35:10 +0000 |
commit | 24c3706bad00df66c332860e1481cba939eb16ba (patch) | |
tree | 3d100069cf3f8001ece96aeb6d39026c8263ed7b | |
parent | 4ef4edaf14d0821ef34c4f88426a46041049aeba (diff) |
xcolor (13nov23)
git-svn-id: svn://tug.org/texlive/trunk@68831 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/ChangeLog | 11 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/README.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor.lox | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor.pdf | bin | 864625 -> 863950 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor1.tex | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor2.pdf | bin | 91583 -> 91691 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor2.tex | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor3.tex | 9 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xcolor/xcolor4.tex | 11 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/xcolor/xcolor.pro | 5 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/xcolor/xcolor.dtx | 428 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xcolor/svgnam.def | 5 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xcolor/x11nam.def | 5 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xcolor/xcolor-2022-06-12.sty | 1465 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/xcolor/xcolor.sty | 212 |
15 files changed, 1779 insertions, 401 deletions
diff --git a/Master/texmf-dist/doc/latex/xcolor/ChangeLog b/Master/texmf-dist/doc/latex/xcolor/ChangeLog index 48ac99bfbda..7608690902b 100644 --- a/Master/texmf-dist/doc/latex/xcolor/ChangeLog +++ b/Master/texmf-dist/doc/latex/xcolor/ChangeLog @@ -3,6 +3,17 @@ https://github.com/latex3/xcolor/issues History ======= +2023/11/11 v3.00 +* If a LaTeX older than 2022-06-01 is detected a frozen version is used. + All new features apply only if LaTeX 2022-06-01 or newer is detected. + The frozen version can also be requested with \usepackage{xcolor}[=v2]. +* The new LaTeX key/val handler is used for the package options. That means there + will be less option clash errors, issue #29 +* The \rowcolors command has moved to the colortbl package +* The fixpdftex option is obsolete and does nothing at all (issue #20) +* Extended \normalcolor to set also the "dot" color, issue #19 +* Fix Gray color model, issue #23 + 2022/06/12 v2.14 * New features: - Load if it exists the code from LaTeX to define \mathcolor. diff --git a/Master/texmf-dist/doc/latex/xcolor/README.md b/Master/texmf-dist/doc/latex/xcolor/README.md index dd8e528ccd4..b7702951cc3 100644 --- a/Master/texmf-dist/doc/latex/xcolor/README.md +++ b/Master/texmf-dist/doc/latex/xcolor/README.md @@ -1,6 +1,6 @@ ## Package `xcolor` by Dr. Uwe Kern -Version 2022-06-12 v2.14 +Version 2023-11-11 v3.00 Maintained by the LaTeX Project https://github.com/latex3/xcolor/issues @@ -14,7 +14,7 @@ separation, and color wheel calculations. ## Copyright (C) - 2003-2021 Dr. Uwe Kern -- 2021-2022 The LaTeX Project +- 2021-2023 The LaTeX Project ## License LaTeX Project Public License, version 1.3c or later. diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor.lox b/Master/texmf-dist/doc/latex/xcolor/xcolor.lox index 42f00c9ae9c..9783c8eb213 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor.lox +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor.lox @@ -23,11 +23,11 @@ %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% \def\ukfile#1#2#3#4% {\def\ukhead {\ifnum#1>2 \perCent!^^J\fi @@ -53,6 +53,7 @@ \usepostamble\PStail \ukfile3{xcolor}{dvips}{LaTeX color extensions} } + \endinput %% %% End of file `xcolor.lox'. diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor.pdf b/Master/texmf-dist/doc/latex/xcolor/xcolor.pdf Binary files differindex be04b364513..2df8ee20811 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor.pdf +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor.pdf diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor1.tex b/Master/texmf-dist/doc/latex/xcolor/xcolor1.tex index 35accd54507..ebe2e57c39b 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor1.tex +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor1.tex @@ -22,15 +22,16 @@ %% in the same archive or directory.) %% \ProvidesFile{xcolor1} - [2022/06/12 v2.14 Color conversion test (UK)] + [2023/11/11 v3.00 Color conversion test (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% + \documentclass[a4paper]{article} \usepackage{array,multicol,multido,textcomp} diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor2.pdf b/Master/texmf-dist/doc/latex/xcolor/xcolor2.pdf Binary files differindex 35c2946529d..88a91d6a354 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor2.pdf +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor2.pdf diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor2.tex b/Master/texmf-dist/doc/latex/xcolor/xcolor2.tex index a512eda641a..f4464ec42e4 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor2.tex +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor2.tex @@ -22,15 +22,16 @@ %% in the same archive or directory.) %% \ProvidesFile{xcolor2} - [2022/06/12 v2.14 Pstricks color test (UK)] + [2023/11/11 v3.00 Pstricks color test (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% + \listfiles \documentclass{article} diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor3.tex b/Master/texmf-dist/doc/latex/xcolor/xcolor3.tex index 975d35c604a..2beed6d38b8 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor3.tex +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor3.tex @@ -22,15 +22,16 @@ %% in the same archive or directory.) %% \ProvidesFile{xcolor3} - [2022/06/12 v2.14 Color logging test (UK)] + [2023/11/11 v3.00 Color logging test (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% + \listfiles \documentclass[a4paper]{article} \usepackage[showerrors,table,dvipsnames*,hyperref]{xcolor}[2005/12/21] diff --git a/Master/texmf-dist/doc/latex/xcolor/xcolor4.tex b/Master/texmf-dist/doc/latex/xcolor/xcolor4.tex index 0ea3a208cbc..4bbd8833082 100644 --- a/Master/texmf-dist/doc/latex/xcolor/xcolor4.tex +++ b/Master/texmf-dist/doc/latex/xcolor/xcolor4.tex @@ -22,15 +22,16 @@ %% in the same archive or directory.) %% \ProvidesFile{xcolor4} - [2022/06/12 v2.14 Color driver test (UK)] + [2023/11/11 v3.00 Color driver test (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% + \listfiles \documentclass[a4paper]{article} %%\PassOptionsToPackage{dvipdf}{xcolor} @@ -126,7 +127,7 @@ {\immediate\write\@tempa{\@@tmp}}} \immediate\closeout\@tempa \@@end}% end of driver list construction code -\edef\Options{\expandafter\@gobble\XC@@opt} +\edef\Options{} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}{dviwindo}% {emtex}{oztex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xdvi}{xetex}% diff --git a/Master/texmf-dist/dvips/xcolor/xcolor.pro b/Master/texmf-dist/dvips/xcolor/xcolor.pro index 512887812b9..e08321e5146 100644 --- a/Master/texmf-dist/dvips/xcolor/xcolor.pro +++ b/Master/texmf-dist/dvips/xcolor/xcolor.pro @@ -23,13 +23,14 @@ %% in the same archive or directory.) %% %% xcolor.pro (PostScript/dvips header file) -%% [2022/06/12 v2.14 LaTeX color extensions (UK)] +%% [2023/11/11 v3.00 LaTeX color extensions (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% + userdict begin /setcmycolor{0 setcmykcolor}def /XCbd{bind def}bind def diff --git a/Master/texmf-dist/source/latex/xcolor/xcolor.dtx b/Master/texmf-dist/source/latex/xcolor/xcolor.dtx index e6b5129012c..8e914bc8897 100644 --- a/Master/texmf-dist/source/latex/xcolor/xcolor.dtx +++ b/Master/texmf-dist/source/latex/xcolor/xcolor.dtx @@ -2,7 +2,7 @@ %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% %<*package> @@ -18,8 +18,8 @@ %% %</package> %<*extract|driver|test1|test2|test3|test4> -\def\XCfileversion{v2.14}% -\def\XCfiledate{2022/06/12}% +\def\XCfileversion{v3.00}% +\def\XCfiledate{2023/11/11}% %</extract|driver|test1|test2|test3|test4> % % This file may be distributed and/or modified under the @@ -382,12 +382,11 @@ % \item options that determine the color driver as explained in \cite{dpc} and \cite{color}, currently: \Option{dvips}, \Option{xdvi}, \Option{dvipdf}, \Option{dvipdfm}, \Option{dvipdfmx}, \Option{luatex}, \Option{pdftex}, \Option{dvipsone}, \Option{dviwindo}, \Option{emtex}, \Option{dviwin}, \Option{oztex}, \Option{textures}, \Option{pctexps}, \Option{pctexwin}, \Option{pctexhp}, \Option{pctex32}, \Option{truetex}, \Option{tcidvi}, \Option{vtex}, \Option{xetex}, \Option{dvisvgm}, % \item options that determine the target color model\footnote{Section \vref{sec.tgt} explains how this setting can be overridden at any point in a document.} (\Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}) or disable colored output (\Option{monochrome}), % \item options that control whether and how certain sets of predefined colors are being loaded: \Option{dvipsnames}, \Option{dvipsnames*}, \Option{svgnames}, \Option{svgnames*}, \Option{x11names}, \Option{x11names*}, -% \item options that determine which other packages are to be loaded or supported: \Option{table}, \Option{fixpdftex}, -% \Option{hyperref}, +% \item option that determine which other packages are to be loaded or supported: \Option{table}, % \item options that influence the behaviour of other commands: \Option{prologue}, \Option{kernelfbox}, \Option{xcdraw}, \Option{noxcdraw}, \Option{fixinclude}, \Option{showerrors}, \Option{hideerrors}, % \item obsolete options: % \oOption{pst}, -% \oOption{override}, \oOption{usenames}, \oOption{nodvipsnames}. +% \oOption{override}, \oOption{usenames}, \oOption{nodvipsnames}, \oOption{fixpdftex}, \oOption{hyperref}. % \end{itemize} % All available package options (except driver selection and obsolete options) are listed in table \vref{tab.opt}. % \DescribeMacro\GetGinDriver @@ -427,7 +426,7 @@ % \Option{x11names}, \Option{x11names*}& Load a set of predefined colors according to \Index{Unix}/\Index{X11}.\footnotemark[1]\\ % \hline % \Option{table}& Load the \Package{colortbl} package, in order to use the tools for coloring rows, columns, and cells within tables.\\ -% \Option{fixpdftex}& Load the \Package{pdfcolmk} package, in order to improve |pdftex|'s color behaviour (see section \vref{sec.fixpdftex}).\\ +% \Option{fixpdftex}& This option is obsolete and does nothing at all.\\ % \Option{hyperref}& Support the \Package{hyperref} package in terms of color expressions by defining additional keys (see section \vref{sec.hyperref}).\\ % \hline % \Option{prologue}& Write prologue information to \File{.xcp} file for every color definition (as described in section \vref{sec.prologue}).\\ @@ -452,15 +451,15 @@ % \raggedleft % \extrarowheight2pt % \rowcolors{3}{tablerowcolor}{} -% \begin{tabular}{l*{6}{c}} +% \begin{tabular}{l*{5}{c}} % \hline % \rowcolor{tableheadcolor} -% \em Action/Package & \Package{colortbl}& \Package{pdfcolmk}& \Package{hyperref}& \Package{pstricks}& \LC& \Package{pstcol}\\ -% load before \XC & no & no & allowed & allowed\rlap{\footnotemark[1]} & no & no \\ -% load with \XC{} option& \Option{table} & \Option{fixpdftex} & --- & --- & --- & --- \\ -% load after \XC & no & allowed & allowed & allowed & no & no \\ +% \em Action/Package & \Package{colortbl}& \Package{hyperref}& \Package{pstricks}& \LC& \Package{pstcol}\\ +% load before \XC & allowed & allowed & allowed\rlap{\footnotemark[1]} & no & no \\ +% load with \XC{} option& \Option{table} & --- & --- & --- & --- \\ +% load after \XC & allowed & allowed & allowed & no & no \\ % \hline\hline -% \multicolumn6{c}{\footnotemark[1]\,recent \Package{pstricks} versions do load \XC\ by default}\\ +% \multicolumn5{c}{\footnotemark[1]\,\Package{pstricks} loads \XC\ by default}\\ % \hline % \end{tabular} % \end{adjustwidth} @@ -1350,6 +1349,14 @@ % % \subsection{Border colors for hyperlinks}\label{sec.hyperref} % +% \textbf{Change 2022}: The options described in this subsection have been removed from the code +% as no longer relevant. \Package{hyperref} can handle color names in the border color keys. +% +% This affects the package options \Option{hyperref}, and the Keys +% \Key{xcitebordercolor}, \Key{xfilebordercolor}, \Key{xlinkbordercolor}, \Key{xmenubordercolor}, +% \Key{xpagebordercolor}, \Key{xrunbordercolor}, \Key{xurlbordercolor} and \Key{xpdfborder}. +% +% % The \Package{hyperref} package offers all kinds of support for hyperlinks, pdfmarks etc. % There are two standard ways to make hyperlinks visible (see the package documentation \cite{hyperref} for additional information on how to set up these features): % \begin{itemize} @@ -1391,6 +1398,13 @@ % % % \subsection{Color in tables} +% The commands in this subsection +% were in previous versions provided by the \Package{xcolor} package as +% an extension of the \Package{colortbl} commands. They have now +% been merged into the \Package{colortbl} package properly. The package can be loaded +% either with the \Option{table} option or independently with |\usepackage|. +% The description of the commands is kept only for historical reasons. If in doubt +% consult the documentation of \Package{colortbl}. % % \DescribeMacro\rowcolors % \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\ @@ -1408,7 +1422,6 @@ % \DescribeMacro\rownum % The counter |\rownum| may be used within such a table to access the current row number. % An example is given in figure \vref{fig.row}. -% These commands require the \Option{table} option (which loads the \Package{colortbl} package). % % Note that table coloring may be combined with color series. % This method was used to construct the examples in figure \vref{fig.csx}. @@ -1469,28 +1482,6 @@ % \end{verbatim} % Now all colors from the \Index{SVG} set are available (except \Color{Fuchsia}) plus \Color{Fuchsia} from the other set. % -% \subsubsection{Page breaks and pdf\TeX}\label{sec.fixpdftex} -% -% Since pdf\TeX{} does not maintain a \emph{\Index{color stack}} --- in contrast to \Program{dvips} --- a typical problem is the behaviour of colors in the case of page breaks, as illustrated by the following example: -% \begin{verbatim} -% \documentclass{minimal} -% \usepackage{xcolor} -% \begin{document} -% black\color{red}red1\newpage red2\color{black}black -% \end{document} -% \end{verbatim} -% This works as expected with |dvips|, i.e., `red1' and `red2' being \Color{red}, however, with |pdftex|, `red2' is displayed in \Color{black}. -% The problem may be solved by using the \Option{fixpdftex} option which simply loads Heiko Oberdiek's \Package{pdfcolmk} package \cite{pdfcolmk}. -% However, its author also lists some limitations: -% \begin{itemize} -% \item Mark limitations: page breaks in math. -% \item LaTeX's output routine is redefinded. -% \begin{itemize} -% \item Changes in the output routine of newer versions of LaTeX are not detected. -% \item Packages that change the output routine are not supported. -% \end{itemize} -% \item It does not support several independent text streams like footnotes. -% \end{itemize} % % \subsubsection{Change color of included \File{.eps} file}\label{sec.fixinclude} % @@ -3152,7 +3143,32 @@ % % \subsection*{History} % \addcontentsline{toc}{subsection}{History} -% +% \subsubsection*{2023/11/11 v3.00} +% \begin{itemize} +% \item if a \LaTeX{} older than 2022-06-01 is detected a frozen version is used. +% All new features apply only if LaTeX 2022-06-01 or newer is detected. +% The frozen version can also be requested with \verb+\usepackage{xcolor}[=v2]+ +% \item The new LaTeX key/val handler is used for the package options. +% That means there will be fewer option clash errors (issue \#29). +% item The |\rowcolors| command has moved to the |colortbl| package and is no longer +% defined by |xcolor|. +% \item The fixpdftex option is obsolete and does nothing at all (issue \#20) +% \item Extended |\normalcolor| to set also the dot color, issue \#19 +% \item Fix Gray color model, issue \#23 +% \end{itemize} +% +% \subsubsection*{2022/06/12 v2.14} +% \begin{itemize} +% \item Load code from \LaTeX\ to define |\mathcolor| if it is available. +% \item Bug fixes: +% \begin{itemize} +% \item Modify |\XC@info| to avoid spurious error from |\colorlet{foo}{}|, issue \#12 +% \item make |\normalcolor|, |\colorbox|, |\fcolorbox|, |\textcolor|, |\pagecolor|, +% |\nopagecolor|, |\definecolor|, |\DefineNamedColor| +% protected as in |color.sty|, issue \#17 +% \end{itemize} +% \end{itemize} + % \subsubsection*{2021/10/31 v2.13} % \begin{itemize} % \item Bug Fixes: @@ -3556,20 +3572,33 @@ % % % \subsection{Preparation} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsubsection{Release handling} +% +% \begin{macrocode} +\providecommand\DeclareRelease[3]{} +\providecommand\DeclareCurrentRelease[2]{} +\DeclareRelease{v2}{0000-00-00}{xcolor-2022-06-12.sty} +\DeclareCurrentRelease{}{2023-11-11} +% \end{macrocode} % % \subsubsection{File identification} % % \renewcommand*\MacroFont{\footnotesize\ttfamily} % \renewcommand*\AltMacroFont{\footnotesize\ttfamily\slshape} % -% \begin{macrocode} -%<*package> -% \end{macrocode} % % \fbox{\MacroFont\string\ProvidesPackage\string{xcolor\string}[\XCfiledate\space\XCfileversion\space LaTeX color extensions (UK)]} % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} +\IfFormatAtLeastTF{2022/06/01}{} + {\RequirePackageWithOptions{xcolor-2022-06-12}} +\IfFormatAtLeastTF{2022/06/01}{}{\endinput} % \end{macrocode} % % @@ -3837,6 +3866,7 @@ % Performs the test |\if|\Meta{str}\Meta[kl]{str} for $k=1,\dots,n$ and $l=1,\ldots,m_n$. % If for some $k,l$ the test is `true', then the attached code \Meta[k]{code} is executed. % If all tests are `false', then \Meta{default code} is executed. +% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23} % \begin{macrocode} \long\def\XC@ifcase#1#2#3% {\long\def\XC@if@##1##2% @@ -3848,43 +3878,6 @@ % % % -% \subsection{Package options} -% -% \begin{macro}{\XC@@opt} -% Initialise the macro to hold the names of \emph{executed} \XCP{} options. -% \begin{macrocode} -\def\XC@@opt{,} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@ifXCopt} -% \marg{option}\marg{executed}\marg{not executed}\\ -% Performs action dependent on whether a specific \XCP{} option has been executed or not. -% \begin{macrocode} -\def\@ifXCopt#1% - {\@expandtwoargs\in@{,#1,}{\XC@@opt}% - \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\XC@@pkg} -% Initialise the macro to hold the names of packages that are to be loaded by \XC. -% \begin{macrocode} -\let\XC@@pkg\relax -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\DeclareOption} -% |\DeclareOption| has to be redefined in order to collect every executed package option in |\XC@@opt|. -% This is being restored immediately before |\ProcessOptions|; thus, other packages use the original definition. -% \begin{macrocode} -\let\XC@declareoption\@declareoption -\long\def\@declareoption#1#2% - {\XC@declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}} -% \end{macrocode} -% \end{macro} -% -% % \subsubsection{Color model selection} % % \begin{macro}{\selectcolormodel} @@ -3931,7 +3924,7 @@ \@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}% \edef\@@tmp - {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% + {\noexpand\DeclareKeys{\@@tmp .code= {\noexpand\selectcolormodel{\@@tmp}}}}% \@@tmp} % \end{macrocode} % \end{macro} @@ -3953,14 +3946,20 @@ % % The \Option{monochrome} option should be used \emph{in addition} to one of the standard driver options. % \begin{macrocode} -\DeclareOption{monochrome} - {\ExecuteOptions{hideerrors}% - \AtEndOfPackage - {\colors@false - \def\set@color{\c@lor@special\m@ne - {color push \current@color}\aftergroup\reset@color}% - \def\reset@color{\c@lor@special\m@ne{color pop}}% - \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} +\DeclareKeys + { + monochrome .code = + { + \colorerrors@false + \AtEndOfPackage + {\colors@false + \def\set@color{\c@lor@special\m@ne + {color push \current@color}\aftergroup\reset@color}% + \def\reset@color{\c@lor@special\m@ne{color pop}}% + \def\set@page@color{\c@lor@special\m@ne{background \current@color}}} + } + ,monochrome .usage = load + } % \end{macrocode} % % @@ -3989,12 +3988,27 @@ % Construct package options for color names. % \begin{macrocode} \def\XC@declarenames#1#2#3% - {\DeclareOption{#1}{\XC@append\XC@@names - {#3\definecolorstrue\input{#2.def}\definecolorstrue - \let\colornameprefix\XC@@nameprefix}} - \DeclareOption{#1*}{\XC@append\XC@@names - {#3\definecolorsfalse\input{#2.def}\definecolorstrue - \let\colornameprefix\XC@@nameprefix}}} + {% + \DeclareKeys + { + #1 .code = + { + \AddToHook{package/xcolor/after} + {#3\definecolorstrue\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix}% + \DeclareKeys[xcolor]{#1 .code = {},#1* .code={}} + } + ,#1 .usage = preamble + ,#1* .code = + { + \AddToHook{package/xcolor/after} + {#3\definecolorsfalse\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix} + \DeclareKeys[xcolor]{#1 .code = {},#1* .code={}} + } + ,#1* .usage = preamble + }% + } % \end{macrocode} % \end{macro} % @@ -4013,44 +4027,19 @@ % % Use this option to load \People{David P.}{Carlisle}'s \Package{colortbl} package: % \begin{macrocode} -\DeclareOption{table}{\XC@append\XC@@pkg{\RequirePackage{colortbl}}} +\DeclareKeys + { + table .code ={\AddToHook{package/xcolor/after}{\RequirePackage{colortbl}}} + ,table .usage = preamble % \end{macrocode} % -% Use this option to load \People{Heiko}{Oberdiek}'s \Package{pdfcolmk} package: +% These options are obsolete and only added for compatibility. % \begin{macrocode} -\DeclareOption{fixpdftex}{\XC@append\XC@@pkg{\RequirePackage{pdfcolmk}}} + ,hyperref .code = {} + ,fixpdftex .code = {} + } % \end{macrocode} % -% \begin{macro}{\KV@Hyp@xcitebordercolor} -% \begin{macro}{\KV@Hyp@xfilebordercolor} -% \begin{macro}{\KV@Hyp@xlinkbordercolor} -% \begin{macro}{\KV@Hyp@xmenubordercolor} -% \begin{macro}{\KV@Hyp@xpagebordercolor} -% \begin{macro}{\KV@Hyp@xrunbordercolor} -% \begin{macro}{\KV@Hyp@xurlbordercolor} -% \begin{macro}{\KV@Hyp@xpdfborder} -% Use this option to define the extended keys for the \Package{hyperref} package. -% \begin{macrocode} -\DeclareOption{hyperref} - {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do - {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% - {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% - \AtEndOfPackage - {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% - \@tfor\@@tmp:={dvips}\do - {\ifx\GinDriver\@@tmp - \def\KV@Hyp@xpdfborder#1% - {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% - \@break@tfor\fi}}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} % % % \subsubsection{Driver options} @@ -4066,25 +4055,42 @@ \@tfor\@@tmp:={dvipdf}{dvipdfmx}{dvips}{dvipsone}{dviwin}% {emtex}{luatex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xetex}{dvisvgm}\do - {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% - {\def\noexpand\Gin@driver{\@@tmp.def}}}% + {\edef\@@tmp{% + \noexpand\DeclareKeys + { + \@@tmp .code = {\def\noexpand\Gin@driver{\@@tmp.def}}, + \@@tmp .usage=load + }}% \@@tmp} % \end{macrocode} % % Drivers that are derivatives of others: % \begin{macrocode} -\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} -\DeclareOption{oztex}{\ExecuteOptions{dvips}} -\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} -\DeclareOption{dvipdfm}{\ExecuteOptions{dvipdfmx}} +\DeclareKeys + { + ,dviwindo .code = {\SetKeys{dvipsone}} + ,dviwindo .usage = load + ,oztex .code = {\SetKeys{dvips}} + ,oztex .usage = load + ,xdvi .code = {\SetKeys{dvips,monochrome}} + ,xdvi .usage = load + ,dvipdfm .code = {\SetKeys{dvipdfmx}} + ,dvipdfm .usage = load + } % \end{macrocode} % % Options used by (some) drivers. % \begin{macrocode} -\DeclareOption{xcdraw}{\def\XC@@xcd@{1}} -\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}} -\DeclareOption{fixinclude}{\def\XC@@xcf@{1}} -\DeclareOption{prologue}{\def\XC@@xcp@{1}} +\DeclareKeys + { + ,xcdraw .code = {\def\XC@@xcd@{1}} + ,xcdraw .usage = load %TODO check + ,noxcdraw .code = {\def\XC@@xcd@{-1}} + ,noxcdraw .usage = load %TODO check + ,fixinclude .code = {\def\XC@@xcf@{1}} + ,fixinclude .usage = load %TODO check + ,prologue .code = {\def\XC@@xcp@{1}} + ,prologue .usage = load %TODO check % \end{macrocode} % \end{macro} % @@ -4093,32 +4099,30 @@ % % Switch to original kernel |\fbox| command instead of new \XC{} version. % \begin{macrocode} -\DeclareOption{kernelfbox}{\XC@@fboxfalse} + ,kernelfbox .code = {\XC@@fboxfalse} + ,kernelfbox .usage = load %TODO check % \end{macrocode} % % These options control how non-existing colors are treated: % \begin{macrocode} -\DeclareOption{showerrors}{\colorerrors@true} -\DeclareOption{hideerrors}{\colorerrors@false} + ,showerrors .code = {\colorerrors@true} + ,hideerrors .code = {\colorerrors@false} % \end{macrocode} % % The \Option{debugshow} option turns on debugging info (perhaps). % \begin{macrocode} -\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} + ,debugshow .code = {\catcode`\^^A=9 \let\GDebug\typeout} + } % \end{macrocode} % -% All other options (including \LC's \oOption{usenames}, \oOption{nodvipsnames}) are being ignored. -% \begin{macrocode} -\DeclareOption*% - {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} -% \end{macrocode} +% All other options (including \LC's \oOption{usenames}, \oOption{nodvipsnames}) error. % % Choose default options: % \begin{macrocode} \def\XC@@xcd@{-1} \def\XC@@xcf@{-1} \def\XC@@xcp@{-1} -\ExecuteOptions{natural,showerrors} +\SetKeys{natural,showerrors} % \end{macrocode} % % @@ -4127,14 +4131,18 @@ % A local configuration file may declare more options. % It should also make one driver option the default, by calling |\ExecuteOptions| with the appropriate option. % \begin{macrocode} +\let\XC@ExecuteOptions\ExecuteOptions +\ExplSyntaxOn +\def\ExecuteOptions{\keys_set_known:nn {xcolor}} +\ExplSyntaxOff \InputIfFileExists{color.cfg}{}{} +\let\ExecuteOptions\XC@ExecuteOptions % \end{macrocode} % % After the options are processed, load the appropriate driver file. % If a site wants a default driver (e.g., \Option{dvips}) it just needs to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file. % \begin{macrocode} -\let\@declareoption\XC@declareoption -\ProcessOptions\relax +\ProcessKeyOptions % \end{macrocode} % % \begin{macro}{\XC@@drv} @@ -4225,11 +4233,10 @@ % % \subsubsection{Required packages} % -% All packages within the list |\XC@pkg| -% receive a pretended \LC. +% We pretent that color.sty has already been loaded. +% % \begin{macrocode} \@namedef{ver@color.sty}{1999/02/16} -\XC@@pkg % \end{macrocode} % % @@ -4862,10 +4869,10 @@ \def\XC@definecolor[#1]#2% {\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix} % \end{macrocode} -% % \begin{macrocode} \def\XC@definec@lor[#1]#2[#3]#4#5% - {\begingroup + {% + \begingroup \XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}% \XC@logdef\@@nam \XC@getmodclr02{#4}{#5}{\let\@@tmp\relax}% @@ -5932,114 +5939,6 @@ % \end{macro} % % -% \subsubsection{Colored rows in tables} -% -% The following definitions make only sense if the \Package{colortbl} package has been loaded by the \Option{table} option. -% \begin{macrocode} -\@ifXCopt{table}{% -% \end{macrocode} -% -% \begin{macro}{\rowcolors} -% \begin{macro}{\rowcolors*} -% \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\ -% Defines alternating colors for the next tabular environment. -% Starting with row \Meta{row}, odd and even rows get their respective colors. -% The color arguments may also be left empty (= no color). -% Optional commands may be |\hline| or |\noalign|\marg{stuff}. -% \begin{macrocode} - \def\rowcolors - {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} -% \end{macrocode} -% -% \begin{macrocode} - \def\rowc@lors{\@testopt{\rowc@l@rs}{}} -% \end{macrocode} -% -% \begin{macrocode} - \def\rowc@l@rs[#1]#2#3#4% - {\global\rownum=\z@ - \global\@rowcolorstrue - \@ifxempty{#3}% - {\def\@oddrowcolor{\@norowcolor}}% - {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% - \@ifxempty{#4}% - {\def\@evenrowcolor{\@norowcolor}}% - {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% - \if@rowcmd - \def\@rowcolors - {#1\if@rowcolors - \noalign{\relax\ifnum\rownum<#2\@norowcolor\else - \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% - \fi}% - \else - \def\@rowcolors - {\if@rowcolors - \ifnum\rownum<#2\noalign{\@norowcolor}\else - #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi - \fi}% - \fi - \CT@everycr{\@rowc@lors\the\everycr}% - \ignorespaces} -% \end{macrocode} -% -% \begin{macrocode} - \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} - \let\@rowcolors\@empty -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\showrowcolors} -% \begin{macro}{\hiderowcolors} -% Switch coloring mode on/off. -% \begin{macrocode} - \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} - \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} - \def\@norowcolor{\global\let\CT@row@color\relax} - \@norowcolor -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\if@rowcolors} -% \begin{macro}{\if@rowcmd} -% \begin{macrocode} - \newif\if@rowcolors - \newif\if@rowcmd -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\rownum} -% Reserve a counter register. -% \begin{macrocode} - \@ifundefined{rownum}{\newcount\rownum}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\CT@extract} -% This is a fix for active `!' character to enable color expressions; it is apparently only necessary for |\columncolor| commands within |\multicolumn|. -% \begin{macrocode} - \def\CT@extract#1\columncolor#2#3\@nil - {\if!#2% - \let\CT@column@color\@empty - \else - \if[#2% - \expandafter\CT@extractb - \else - \XC@edef\XC@@tmp{#2}% - \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% - \expandafter\CT@extractd - \fi - {#1}#3\@nil - \fi} -% \end{macrocode} -% \end{macro} -% -% End of conditional code for colored tables. -% \begin{macrocode} -}{} -% \end{macrocode} % % % \subsubsection{Color information} @@ -6546,10 +6445,12 @@ % % \begin{macro}{\XC@cnv@gray} % \Meta{gray}|,| +% \changes{3.0}{2022-08-10}{moved the patch from hycolor to correct Gray model, issue \#23} % \begin{macrocode} \def\XC@cnv@gray#1,% {\XC@ifxcase\tm {\XC@mod@rgb {\XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% + \XC@mod@gray{}% \XC@mod@cmy {\XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% \XC@mod@cmyk{\XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}% \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp @@ -6988,7 +6889,10 @@ % |\normalcolor| is defined (to |\relax|) in the \LaTeX\ kernel, so it is safe to use this in macros that may possibly be used in conjunction with color. % It will have no effect until the \XCP{} is also loaded. % \begin{macrocode} -\protected\def\normalcolor{\let\current@color\default@color\set@color} +\protected\def\normalcolor{% + \let\current@color\default@color + \let\XC@current@color\XC@default@color\XC@display} +\AtBeginDocument{\let\XC@default@color\XC@current@color} % \end{macrocode} % \end{macro} % @@ -8274,7 +8178,7 @@ Type test: {\immediate\write\@tempa{\@@tmp}}} \immediate\closeout\@tempa \@@end}% end of driver list construction code -\edef\Options{\expandafter\@gobble\XC@@opt} +\edef\Options{} \@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}{dviwindo}% {emtex}{oztex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xdvi}{xetex}% diff --git a/Master/texmf-dist/tex/latex/xcolor/svgnam.def b/Master/texmf-dist/tex/latex/xcolor/svgnam.def index 0b445d03f13..2d2a07ad1f5 100644 --- a/Master/texmf-dist/tex/latex/xcolor/svgnam.def +++ b/Master/texmf-dist/tex/latex/xcolor/svgnam.def @@ -22,13 +22,14 @@ %% in the same archive or directory.) %% \ProvidesFile{svgnam.def} - [2022/06/12 v2.14 Predefined colors according to SVG 1.1 (UK)] + [2023/11/11 v3.00 Predefined colors according to SVG 1.1 (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% + \def\colornameprefix{XC@} \preparecolorset{rgb}{}{}{% AliceBlue,.94,.972,1;% diff --git a/Master/texmf-dist/tex/latex/xcolor/x11nam.def b/Master/texmf-dist/tex/latex/xcolor/x11nam.def index 82957c001c7..d71e249939e 100644 --- a/Master/texmf-dist/tex/latex/xcolor/x11nam.def +++ b/Master/texmf-dist/tex/latex/xcolor/x11nam.def @@ -22,13 +22,14 @@ %% in the same archive or directory.) %% \ProvidesFile{x11nam.def} - [2022/06/12 v2.14 Predefined colors according to Unix/X11 (UK)] + [2023/11/11 v3.00 Predefined colors according to Unix/X11 (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% + \def\colornameprefix{XC@} \preparecolorset{rgb}{}{}{% AntiqueWhite1,1,.936,.86;% diff --git a/Master/texmf-dist/tex/latex/xcolor/xcolor-2022-06-12.sty b/Master/texmf-dist/tex/latex/xcolor/xcolor-2022-06-12.sty new file mode 100644 index 00000000000..93ae517f22e --- /dev/null +++ b/Master/texmf-dist/tex/latex/xcolor/xcolor-2022-06-12.sty @@ -0,0 +1,1465 @@ +%% +%% This is file `xcolor.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xcolor.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from xcolor.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file xcolor.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +\ProvidesPackage{xcolor-2022-06-12} + [2022/06/12 v2.14 LaTeX color extensions (UK)] +%% +%% ---------------------------------------------------------------- +%% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> +%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% ---------------------------------------------------------------- +%% +%% Please send error reports and suggestions for +%% improvements to https://github.com/latex3/xcolor/issues. +%% +%% This package contains code copied from +%% +%% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)] +%% Copyright (C) 1994--1999 David Carlisle +%% +%% which is part of the Standard LaTeX `Graphics Bundle'. +%% +\NeedsTeXFormat{LaTeX2e} +\expandafter\edef\csname XC@catcodes\endcsname + {\catcode33 \the\catcode33 % ! + \catcode34 \the\catcode34 % " + \catcode39 \the\catcode39 % ' + \catcode42 \the\catcode42 % * + \catcode44 \the\catcode44 % , + \catcode45 \the\catcode45 % - + \catcode46 \the\catcode46 % . + \catcode47 \the\catcode47 % / + \catcode58 \the\catcode58 % : + \catcode59 \the\catcode59 % ; + \catcode60 \the\catcode60 % < + \catcode61 \the\catcode61 % = + \catcode62 \the\catcode62 % > + \catcode63 \the\catcode63 % ? + \catcode64 \the\catcode64 % @ + \catcode94 \the\catcode94 % ^ + \catcode96 \the\catcode96 % ` + \catcode`\noexpand\^^A\the\catcode`\^^A\relax} +\catcode64 11 % +\@makeother\! \@makeother\" \@makeother\' \@makeother\* \@makeother\, +\@makeother\- \@makeother\. \@makeother\/ \@makeother\: \@makeother\; +\@makeother\< \@makeother\= \@makeother\> \@makeother\? \@makeother\` +\catcode94 7 % +\catcode`\^^A=14 % +\edef\XC@@{\expandafter\noexpand\csname\@backslashchar XC@@\endcsname} +\newif\ifcolors@ \colors@true +\newif\ifcolorerrors@ +\newif\ifglobalcolors \globalcolorsfalse +\newif\ifdefinecolors \definecolorstrue +\newif\ifconvertcolorsD +\newif\ifconvertcolorsU +\newif\ifblendcolors +\newif\ifmaskcolors +\newif\ifXC@@fbox \XC@@fboxtrue +\newif\ifXC@@tst +\def\c@lor@error#1% + {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc + \else\PackageWarning{xcolor}{Undefined color #1}\fi} +\def\XC@append#1#2% + {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else + \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi} +\def\XC@let@cc#1{\expandafter\XC@let@Nc\csname#1\endcsname} +\providecommand*\@namelet[1]{\expandafter\XC@let@Nc\csname#1\endcsname} +\def\XC@let@Nc#1#2{\expandafter\let\expandafter#1\csname#2\endcsname} +\def\XC@let@cN#1{\expandafter\let\csname#1\endcsname} +\def\@namexdef#1{\expandafter\xdef\csname #1\endcsname} +\def\aftergroupdef#1#2% + {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#2}} +\def\aftergroupedef#1#2% + {\edef\@@tmp{\def\noexpand#1{#2}}\expandafter\endgroup\@@tmp} +\begingroup +\catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13 +\catcode`\;=13 \catcode`\/=13 \catcode`\"=13 \catcode`\>=13 +\gdef\XC@edef#1#2% + {\begingroup + \ifnum\catcode`\!=13 \edef!{\string!}\fi + \ifnum\catcode`\:=13 \edef:{\string:}\fi + \ifnum\catcode`\-=13 \edef-{\string-}\fi + \ifnum\catcode`\+=13 \edef+{\string+}\fi + \ifnum\catcode`\;=13 \edef;{\string;}\fi + \ifnum\catcode`\"=13 \edef"{\string"}\fi + \ifnum\catcode`\>=13 \edef>{\string>}\fi + \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} +\gdef\XC@mdef#1#2% + {\begingroup + \ifnum\catcode`\/=13 \edef/{\string/}\fi + \ifnum\catcode`\:=13 \edef:{\string:}\fi + \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} +\endgroup +\def\XC@sdef#1#2{\edef#1{#2}\@onelevel@sanitize#1} +\def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@} +\def\@@ifxempty#1#2\XC@@ + {\ifx#1\@@ifxempty + \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\long\def\XC@ifxcase#1#2#3% + {\long\def\XC@if@##1##2% + {\ifx#1##1% + \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\XC@if@\fi}% + \XC@if@#2#1{#3}\@nnil\the\toks@} +\long\def\XC@ifcase#1#2#3% + {\long\def\XC@if@##1##2% + {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@ + \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\XC@if@\fi}% + \XC@if@#2{#1}{#3}\@nnil\the\toks@} +\def\XC@@opt{,} +\def\@ifXCopt#1% + {\@expandtwoargs\in@{,#1,}{\XC@@opt}% + \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\let\XC@@pkg\relax +\let\XC@declareoption\@declareoption +\long\def\@declareoption#1#2% + {\XC@declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}} +\def\selectcolormodel#1% + {\@ifundefined{XC@mod@#1}% + {\c@lor@error{target model `#1'}}% + {\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@natural + \def\XC@tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse + \else\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@named + \c@lor@error{target model `#1'} + \else + \edef\XC@tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue + \fi\fi}} +\@tfor\@@tmp:={Hsb}{tHsb}{ignore}{named}{ps}{wave}\do + {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}} +\@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do + {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}% + \edef\@@tmp + {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% + \@@tmp} +\DeclareOption{monochrome} + {\ExecuteOptions{hideerrors}% + \AtEndOfPackage + {\colors@false + \def\set@color{\c@lor@special\m@ne + {color push \current@color}\aftergroup\reset@color}% + \def\reset@color{\c@lor@special\m@ne{color pop}}% + \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} +\let\XC@@names\relax +\providecommand*\colornameprefix{XC@} +\let\XC@@nameprefix\colornameprefix +\def\XC@declarenames#1#2#3% + {\DeclareOption{#1}{\XC@append\XC@@names + {#3\definecolorstrue\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix}} + \DeclareOption{#1*}{\XC@append\XC@@names + {#3\definecolorsfalse\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix}}} +\XC@declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty} +\XC@declarenames{svgnames}{svgnam}{} +\XC@declarenames{x11names}{x11nam}{} +\XC@declarenames{hksnames}% + {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{} +\XC@declarenames{pmsnames}{pmsnam}{} +\XC@declarenames{ralnames}{ralnam}{} +\DeclareOption{table}{\XC@append\XC@@pkg{\RequirePackage{colortbl}}} +\DeclareOption{fixpdftex}{\XC@append\XC@@pkg{\RequirePackage{pdfcolmk}}} +\DeclareOption{hyperref} + {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do + {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% + {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% + \AtEndOfPackage + {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% + \@tfor\@@tmp:={dvips}\do + {\ifx\GinDriver\@@tmp + \def\KV@Hyp@xpdfborder#1% + {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% + \@break@tfor\fi}}} +\providecommand*\Gin@driver{} +\@tfor\@@tmp:={dvipdf}{dvipdfmx}{dvips}{dvipsone}{dviwin}% + {emtex}{luatex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% + {tcidvi}{textures}{truetex}{vtex}{xetex}{dvisvgm}\do + {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% + {\def\noexpand\Gin@driver{\@@tmp.def}}}% + \@@tmp} +\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} +\DeclareOption{oztex}{\ExecuteOptions{dvips}} +\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} +\DeclareOption{dvipdfm}{\ExecuteOptions{dvipdfmx}} +\DeclareOption{xcdraw}{\def\XC@@xcd@{1}} +\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}} +\DeclareOption{fixinclude}{\def\XC@@xcf@{1}} +\DeclareOption{prologue}{\def\XC@@xcp@{1}} +\DeclareOption{kernelfbox}{\XC@@fboxfalse} +\DeclareOption{showerrors}{\colorerrors@true} +\DeclareOption{hideerrors}{\colorerrors@false} +\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} +\DeclareOption*% + {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} +\def\XC@@xcd@{-1} +\def\XC@@xcf@{-1} +\def\XC@@xcp@{-1} +\ExecuteOptions{natural,showerrors} +\InputIfFileExists{color.cfg}{}{} +\let\@declareoption\XC@declareoption +\ProcessOptions\relax +\edef\Gin@driver{\Gin@driver} +\if!\Gin@driver! + \PackageError{xcolor} + {No driver specified} + {You should make a default driver option in a file \MessageBreak + color.cfg\MessageBreak + eg: \protect\ExecuteOptions{dvips}} +\else + \PackageInfo{xcolor}{Driver file: \Gin@driver} + \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{} + \def\@@tmp#1.def{\def\XC@@drv{#1}} + \expandafter\@@tmp\Gin@driver +\fi +\count@\XC@@xcd@ \advance\count@\XC@@xcf@ \advance\count@\XC@@xcp@\relax +\ifnum\count@>-3 + \XC@ifcase\XC@@drv + {{dvips,pctex32}% + {\def\@tempa{0} + \def\XC@special#1{\special{ps:XC!b}\special{"#1}\special{ps:XC!e}}}% + {pdftex}% + {\def\@tempa{1} + \def\XC@special#1{\pdfliteral{ q #1 Q }}}% + {luatex}% + {\def\@tempa{1} + \ifnum\luatexversion<87% + \def\XC@special#1{\pdfliteral{ q #1 Q }}% + \else% + \def\XC@special#1{\pdfextension literal{ q #1 Q }}% + \fi}% + {dvipdfm}% + {\def\@tempa{1} + \def\XC@special#1{\special{pdf: content #1}}}% + }{\def\@tempa{-1}} + \ifnum\XC@@xcd@>\m@ne\let\XC@@xcd@\@tempa\fi + \ifnum\XC@@xcf@>\m@ne\let\XC@@xcf@\@tempa\fi + \ifnum\XC@@xcp@>\m@ne\let\XC@@xcp@\@tempa\fi + \ifnum\@tempa=0 \AtBeginDvi{\special{header=xcolor.pro}}\fi + \ifcase\XC@@xcf@ + \AtBeginDvi{\special{! XCfixnormalscale}} + \fi + \ifcase\XC@@xcp@ + \AtBeginDvi{\special{header=\jobname.xcp}} + \newwrite\XC@@xcp\immediate\openout\XC@@xcp=\jobname.xcp + \immediate\write\XC@@xcp{\@percentchar!} + \immediate\write\XC@@xcp{TeXDict begin} + \AtEndDocument + {\immediate\write\XC@@xcp{end}\immediate\closeout\XC@@xcp} + \fi +\fi +\@namedef{ver@color.sty}{1999/02/16} +\XC@@pkg +\long\def\@secondoffive#1#2#3#4#5{#2} +\long\def\@thirdoffive#1#2#3#4#5{#3} +\def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test} +\def\xglobal@test + {\expandafter\@tfor\expandafter\@@tmp + \expandafter:\expandafter=\xglobal@list\do + {\expandafter\ifx\@@tmp\@@tok + \aftergroup\let\aftergroup\xglobal@\@break@tfor\fi}% + \endgroup\global} +\def\xglobal@stop{\let\xglobal@\@empty} +\xglobal@stop +\def\xglobal@list + {\definecolor\definecolors\definecolorset\colorlet\providecolor + \providecolors\providecolorset\blendcolors\maskcolors + \substitutecolormodel} +\def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi} +\def\GetGinDriver + {\@tempswafalse + \@tfor\@@tmp:={dvips}{luatex}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}% + \do{\ifx\XC@@drv\@@tmp\@tempswatrue\@break@tfor\fi}% + \edef\GinDriver{\if@tempswa\XC@@drv\else hypertex\fi}} +\def\@hex@Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi} +\def\@hex@@Hex#1% + {\if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else + \if e#1E\else \if f#1F\else #1\fi\fi\fi\fi\fi\fi \@hex@Hex} +\def\XC@strip@comma#1,#2% + {\ifx,#2% + #1\expandafter\remove@to@nnil\else#1 \expandafter\XC@strip@comma\fi + #2} +{\catcode`Q=3 + \gdef\XC@replace#1#2#3% + {\begingroup + \def\XC@repl@ce##1#2##2Q##3% + {\@ifxempty{##2}{\XC@r@pl@ce##1Q}{\XC@repl@ce##1##3##2Q{##3}}}% + \def\XC@r@pl@ce##1\@empty Q% + {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{##1}}% + \expandafter\XC@repl@ce\expandafter\@empty #1\@empty#2Q{#3}} +} +\def\XC@clean#1% + {\edef#1{ #1 }% + \XC@cle@n#1,{ }\XC@cle@n#1{. }{ }\XC@cle@n#1{ },% + \edef#1{\expandafter\@gobbletwo#1}} +\def\XC@cle@n#1#2#3% + {\def\XC@cl@@n##1#2##2{#3##1\ifx##2\@empty\else\expandafter\XC@cl@@n\fi##2}% + \edef#1{\expandafter\XC@cl@@n#1#2\@empty}}% +\def\rdivide#1#2% + {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}% + \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax + \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else + \def\@sign{}\fi + \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi + \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen + \lshift\@tempdima \lshift\@tempdimb \fi\fi + \@tempcnta=\@tempdima \@tempcntb=\@tempdimb + \count@=\@tempcnta \divide\count@\@tempcntb + \edef\@@tmp{\number\count@.}% + \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide + \@tempswafalse \@rdivide + \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen@1sp\fi + \dimen@\@sign\dimen@ + \edef\@@tmp{\the\toks@\the\dimen@}% + \expandafter\endgroup\@@tmp} +\def\@rdivide + {\multiply\count@\@tempcntb \advance\@tempcnta-\count@ + \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb + \if@tempswa\edef\@@tmp{\@@tmp\number\count@}\fi} +\def\rmultiply#1#2% + {\begingroup + \edef\@@mul{#2}\@tempdima\the#1\relax + \afterassignment\@tempdimb\@tempcntb=\@@mul\p@ + \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else + \def\@sign{}\fi + \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi + \lshift\@tempdima \dimen@\z@ + \expandafter\@rmultiply\@@mul.0.\@nil + \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@ + \dimen@\@sign\dimen@ + \edef\@@tmp{#1\the\dimen@}% + \expandafter\endgroup\@@tmp} +\def\@rmultiply#1.#2.#3\@nil + {\def\@@tmp{}% + \@tfor\@@mul:=#2\do + {\edef\@@tmp + {\advance\dimen@\@@mul\@tempdima \divide\dimen@10 \@@tmp}}% + \@@tmp} +\def\lshift#1{#1\expandafter\lshift@\the#1} +\def\llshift#1{\lshift#1\lshift#1} +\def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:} +\def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z@.#3\fi} +\def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:} +\def\llshiftnum@#1.#2#3#4.#5:% + {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z@.#4\fi} +\def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@} +\def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@} +\def\rshift#1{#1\expandafter\rshift@\the#1} +\def\rrshift#1{\rshift#1\rshift#1} +\begingroup +\catcode`P=12 +\catcode`T=12 +\lowercase + {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z@.##3\fi\p@} + \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}} +\expandafter\endgroup\@@tmp +\def\rshift@@#1#2% + {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi} +\def\XC@inflate#1#2#3#4% + {\edef#4{#2,\ifx#1\XC@mod@cmyk #3\else + \ifx#1\XC@mod@gray ,,,#3,,,\else ,#3,\fi\fi}} +\def\XC@vec#1,#2,#3,#4,#5,#6,#7,#8,#9% + {\def\@@tmp{}% + \XC@vec@{#1}{#5}% + \ifx,#2,\else + \XC@vec@{#2}{#6}\XC@vec@{#3}{#7}\ifx,#4,\else\XC@vec@{#4}{#8}\fi\fi + \aftergroupdef#9\@@tmp} +\def\XC@vec@@{\edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} +\def\XC@add{\begingroup \let\XC@vec@\XC@add@ \XC@vec} +\def\XC@add@#1#2% + {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}% + \advance\dimen@\@tempdima \rrshift\dimen@ \XC@vec@@} +\def\XC@sub{\begingroup \let\XC@vec@\XC@sub@ \XC@vec} +\def\XC@sub@#1#2{\XC@add@{#1}{-#2}} +\def\XC@mul{\begingroup \let\XC@vec@\XC@mul@ \XC@vec} +\def\XC@mul@#1#2% + {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \XC@vec@@} +\def\XC@mix% + {\begingroup + \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima + \let\XC@vec@\XC@mix@ \XC@vec} +\def\XC@mix@#1#2% + {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \XC@vec@@} +\def\XC@calc@#1,#2,#3,#4,#5:#6% + {\XC@let@Nc\@@cmd{XC@calc#6}\@@cmd{#1}\@@tmp + \ifx,#2,\else + \@@cmd{#2}\@tempa\@@cmd{#3}\@tempb + \ifx,#4,% + \edef\@@tmp{\@@tmp,\@tempa,\@tempb}\else + \@@cmd{#4}\@tempc\edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}\fi\fi} +\def\XC@calcC#1#2% + {\llshiftset\dimen@{-#1}\advance\dimen@100\p@ + \rrshift\dimen@ \XC@calcN{\strip@pt\dimen@}#2} +\def\XC@calcD{\XC@c@lcD\@@scl{}} +\def\XC@c@lcD#1#2#3#4% + {\dimen@#3\p@ \rdivide\dimen@{#1}\edef#4{\strip@pt\dimen@#2}} +\def\XC@calcF#1#2% + {\edef#2{#1}\expandafter\XC@c@lcF#2.0.:#2} +\def\XC@c@lcF#1.#2.#3:#4% + {\edef#4{\XC@c@@cR#200000:}% + \dimen@#1.5\p@ \afterassignment\dimen@\count@=\the\dimen@ + \edef#4% + {\ifnum#4>0 \ifnum\count@=0 \ifdim#1.5\p@<\z@ -\fi\fi\fi + \number\count@.#4}} +\def\XC@calcH#1#2% + {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}% + \multiply\count@-\sixt@@n \advance\count@#1 + \edef#2{\XC@@tmp\hexnumber@\count@}} +\def\XC@calcM#1#2% + {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen@.5\p@ + \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}} +\def\XC@calcN#1#2% + {\XC@calcR{#1}#2\edef#2{\expandafter\XC@c@lcN#200000:}} +\def\XC@c@lcN#1.#200000#3:{#1\ifnum0#2=0 \else.#2\fi} +\def\XC@calcR#1#2{\edef#2{#1}\edef#2{\expandafter\XC@c@lcR#2.0.:}} +\def\XC@c@lcR#1.#2.#3:% + {\ifnum#10>0 1.00000\else 0.\ifnum#11<0 00000\else + \XC@c@@cR#200000:\fi\fi} +\def\XC@c@@cR#1#2#3#4#5#6:{#1#2#3#4#5} +\def\XC@calcS{\XC@c@lcS\@@scl{}} +\def\XC@c@lcS#1#2#3#4% + {\lshiftset\dimen@{#3}% + \ifdim#1\p@<100\p@ + \dimen@\lshiftnum#1\dimen@ \rrshift\dimen@ \else + \dimen@#1\dimen@ \rshift\dimen@ \fi + \edef#4{\strip@pt\dimen@#2}} +\def\XC@calcT#1#2% + {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@ + \edef#2% + {\ifdim\dimen@>\p@1\else\ifdim\dimen@<\z@0\else\strip@pt\dimen@\fi\fi}} +\def\XC@calcU#1#2% + {\dimen@#1\p@ + \ifdim\dimen@=\p@\else + \afterassignment\dimen@\count@=\the\dimen@ + \relax\ifdim\dimen@=\z@\else + \ifdim#1\p@<\z@ \dimen@-\dimen@ \advance\dimen@\p@ \fi + \fi + \fi + \edef#2{\strip@pt\dimen@}} +\providecommand*\rangeRGB{255} +\providecommand*\rangeHSB{240} +\providecommand*\rangeHsb{360} +\providecommand*\rangetHsb{60,30;120,60;180,120;210,180;240,240} +\providecommand*\rangeGray{15} +\providecommand*\adjustUCRBG{1,1,1,1} +\providecommand*\paperquality{1} +\providecommand*\colorseriescycle{16} +\def\XC@clr@rgb@white{1,1,1} +\def\XC@clr@cmy@white{0,0,0} +\def\XC@clr@cmyk@white{0,0,0,0} +\def\XC@clr@hsb@white{\@@hue,0,1} +\def\XC@clr@hsb@gray{\@@hue,0,0.5} +\def\XC@clr@hsb@black{\@@hue,0,0} +\def\XC@clr@gray@white{1} +\@tfor\@@tmp:={grad}{last}{step}\do + {\XC@let@cN{XC@met@\@@tmp}\@@tmp} +\protected\def\definecolor{\@testopt{\XC@definecolor}{}} +\def\XC@definecolor[#1]#2% + {\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix} +\def\XC@definec@lor[#1]#2[#3]#4#5% + {\begingroup + \XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}% + \XC@logdef\@@nam + \XC@getmodclr02{#4}{#5}{\let\@@tmp\relax}% + {\ifx\@@mod\XC@mod@named + \XC@c@l@rlet\@@nam\@@clr + \else + \ifx\@@cls\XC@mod@ps + \edef\@@drv{\@@mod\space\@@clr}\def\@@hue{0}% + \edef\@@clr{\@nameuse{XC@clr@\@@mod @white}}% + \else + \ifconvertcolorsD + \let\@@tmp\@@mod\XC@sdef\@@mod{\XC@tgt@mod\@@tmp}% + \convertcolorspec\@@tmp\@@clr\@@mod\@@clr + \fi + \XC@coremodel\@@mod\@@clr + \csname color@\@@mod\expandafter\endcsname + \expandafter\@@drv\expandafter{\@@clr}% + \ifcase\XC@@xcp@ + \immediate\write\XC@@xcp{/\colornameprefix\@@nam{\expandafter + \XC@strip@comma\@@clr,,\@nnil}XC\@@mod}% + \let\@@cls\XC@mod@named + \fi + \ifx\@@cls\@empty\else + \let\@@tmp\@@cls + \@nameuse{define@color@\@@cls}\@@nam\@@drv + \csname color@\@@tmp\expandafter\endcsname + \expandafter\@@drv\expandafter{\@@nam}% + \fi + \fi + \toks@\expandafter{\@@drv}% + \edef\@@tmp + {\ifglobalcolors\global\else\xglobal@\fi + \noexpand\@namedef{\@backslashchar color@\@@nam}% + {\noexpand\xcolor@{\@@cls}{\the\toks@}{\@@mod}{\@@clr}}}% + \fi}% + \expandafter\endgroup\@@tmp\xglobal@stop} +\def\XC@getmodclr#1#2#3#4% + {\ifnum\ifcase#1 \ifXC@@getmod1\else0 \fi \or1 \fi>0 + \XC@mdef\@@mod{#3}\expandafter\XC@getmod\@@mod////////\XC@@ + \@ifundefinedmodel\@@Mod{\let\@@Mod\XC@mod@ignore}{}\fi + \@ifundefined{XC@mod@\@@mod}% + {\c@lor@error{model `\@@mod'}\@firstoftwo}% + {\ifcase#2\else + \XC@mdef\@@clr{#4}% + \edef\@@clr{\expandafter\XC@getclr\@@clr////////\XC@@}% + \ifx\@@cls\XC@mod@ps\else\XC@clean\@@clr\fi + \ifx\@@Mod\XC@mod@ignore\else + \convertcolorspec\@@mod\@@clr\@@Mod\@@clr + \ifnum#2>1 \let\@@mod\@@Mod\fi + \fi + \fi \@secondoftwo}} +\def\XC@getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ + {\XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}% + \XC@getm@d3{#4}\XC@getm@d4{#5}\XC@getm@d5{#6}\XC@getm@d6{#7}% + \XC@getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}% +\def\XC@getm@d#1#2% + {\edef\XC@@pos{#2}\XC@sdef\@@mod{\XC@tgt@mod\XC@@pos}% + \ifx\XC@@pos\@@mod\def\XC@@pos{#1}\expandafter\remove@to@nnil\fi}% +\def\XC@g@tm@d#1#2:#3:#4\XC@@ + {\@ifxempty{#3}{\let\@@Mod\XC@mod@ignore\XC@getm@d0{#2}}% + {\def\@@Mod{#2}\XC@getm@d0{#3}}}% +\def\XC@getclr#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ + {\ifcase\XC@@pos\space #1\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi} +\newif\ifXC@@getmod \XC@@getmodtrue +\let\xdefinecolor\definecolor +\def\providecolor{\@testopt{\XC@providecolor}{}} +\def\XC@providecolor[#1]#2% + {\@testopt{\XC@providec@lor[#1]{#2}}\colornameprefix} +\def\XC@providec@lor[#1]#2[#3]% + {\XC@edef\XC@@tmp{#2}% + \@ifundefinedcolor\XC@@tmp{\XC@definecolor[#1]{#2}[#3]}% + {\ifnum\XC@tracing>0 + \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi + \@gobbletwo}} +\def\xcolor@#1#2#3#4{#2} +\def\colorlet{\@testopt{\XC@colorlet}{}} +\def\XC@colorlet[#1]#2{\@testopt{\XC@col@rlet[#1]{#2}}{}} +\def\XC@col@rlet[#1]#2[#3]#4% + {\begingroup + \edef\@@cls{#1}\XC@edef\@@nam{#2}\XC@sdef\@@mod{#3}\XC@edef\@@clr{#4}% + \XC@info\@@clr\@@tmp\XC@@tstfalse + \ifnum\@@tmp=\@ne\ifx\@@mod\@empty + \ifx\@@cls\@empty + \XC@@tsttrue + \else + \edef\@@tmp + {\expandafter\expandafter\expandafter\@secondoffive + \csname\@backslashchar color@\@@clr\endcsname}% + \ifx\@@cls\@@tmp\XC@@tsttrue\fi + \fi + \fi\fi + \ifXC@@tst + \XC@logdef\@@nam\XC@c@l@rlet\@@nam\@@clr + \else + \extractcolorspec\@@clr\@@clr + \ifx\@@mod\@empty\else + \expandafter\convertcolorspec\@@clr\@@mod\@@clr + \edef\@@clr{{\@@mod}{\@@clr}}\fi + \edef\@@tmp{\noexpand\XC@definecolor[\@@cls]{\@@nam}\@@clr}% + \fi + \expandafter\endgroup\@@tmp\xglobal@stop} +\def\XC@c@l@rlet#1#2% + {\@ifundefinedcolor{#2}% + {\c@lor@error{`#2'}\let\@@tmp\@empty}% + {\edef\@@tmp + {\ifglobalcolors\global\else\xglobal@\fi + \noexpand\XC@let@cc{\@backslashchar color@#1}{\@backslashchar color@#2}}}} +\protected\def\DefineNamedColor#1% + {\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]} +\def\preparecolor{\@testopt{\XC@preparecolor}{}} +\def\XC@preparecolor[#1]#2% + {\@testopt{\XC@preparec@lor[#1]{#2}}\colornameprefix} +\def\XC@preparec@lor[#1]#2[#3]#4#5% + {\XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}% + \XC@getmodclr01{#4}{#5}{}% + {\xdef\XC@@stack + {\ifx\XC@@stack\@empty\else\XC@@stack,\fi{#1}{\@@nam}{#3}% + {\ifx\@@Mod\XC@mod@ignore\@@mod\else\@@Mod\fi}{\@@clr}}}} +\let\XC@@stack\@empty +\def\definecolors#1% + {\let\XC@@cmd\definecolor\let\XC@@glb\xglobal@ + \expandafter\XC@definecolors#1,,} +\def\XC@definecolors#1,% + {\@ifxempty{#1}{}{\expandafter\XC@definec@lors#1=#1=:\XC@definecolors}} +\def\XC@definec@lors#1=#2=#3:% + {\XC@edef\@@nam{#1}\XC@edef\@@arg{#2}% + \let\next\XC@definec@l@rs\expandafter\next\XC@@stack,,\@nnil} +\def\XC@definec@l@rs#1,% + {\ifx,#1,\let\next\remove@to@nnil\else\XC@defin@c@l@rs#1\fi\next} +\def\XC@defin@c@l@rs#1#2#3#4#5% + {\def\@@tmp{#2}% + \ifx\@@tmp\@@arg + \let\xglobal@\XC@@glb\XC@@cmd[#1]{\@@nam}[#3]{#4}{#5}% + \let\next\remove@to@nnil + \fi} +\def\providecolors#1% + {\let\XC@@cmd\providecolor\let\XC@@glb\xglobal@ + \expandafter\XC@definecolors#1,,} +\def\definecolorset + {\let\XC@@cmd\definecolor\@testopt{\XC@definecolorset}{}} +\def\XC@definecolorset[#1]#2#3#4#5% + {\XC@getmodclr10{#2}{}{}% + {\XC@@getmodfalse\XC@edef\XC@@tmp{#5}\let\XC@@glb\xglobal@ + \def\XC@definec@lorset##1,##2;% + {\@ifxempty{##1}{}% + {\let\xglobal@\XC@@glb + \XC@@cmd[#1]{#3##1#4}{\@@mod}{##2}\XC@definec@lorset}}% + \expandafter\XC@definec@lorset\XC@@tmp;,;\XC@@getmodtrue}} +\def\providecolorset + {\let\XC@@cmd\providecolor\@testopt{\XC@definecolorset}{}} +\def\preparecolorset + {\ifdefinecolors\let\XC@@cmd\definecolor\else\let\XC@@cmd\preparecolor\fi + \@testopt{\XC@definecolorset}{}} +\def\definecolorseries#1#2#3% + {\@testopt{\XC@definecolorseries{#1}{#2}{#3}}{}} +\def\XC@definecolorseries#1#2#3[#4]#5% + {\@testopt{\XC@definec@lorseries{#1}{#2}{#3}[#4]{#5}}{}} +\def\XC@definec@lorseries#1#2#3[#4]#5[#6]#7% + {\begingroup + \XC@sdef\@@mod{#2}% + \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}% + \expandafter\convertcolorspec\@@clr\@@mod\@@clr + \@namexdef{\@backslashchar colorB@#1}{{\@@mod}{\@@clr}}% + \edef\@@met{#3}% + \ifx\@@met\XC@met@last + \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}% + \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp + \XC@inflate\@@mod\@@tmp\@@clr\@@tmp + \expandafter\XC@sub\@@tmp,\@@tmp + \else + \edef\@@tmp{#7}% + \fi + \@namexdef{\@backslashchar colorD@#1}{{\@@met}{\@@tmp}}% + \endgroup} +\def\resetcolorseries{\@testopt{\XC@resetcolorseries}{}} +\def\XC@resetcolorseries[#1]#2% + {\begingroup + \@namexdef + {\@backslashchar color@#2}{\noexpand\xcolor@{}{}\@nameuse{\@backslashchar colorB@#2}}% + \XC@let@Nc\@@tmp{\@backslashchar colorD@#2}% + \edef\@@met{\expandafter\@firstoftwo\@@tmp}% + \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% + \ifx\@@met\XC@met@step\else + \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}% + \expandafter\XC@calc@\@@tmp,,,,:D% + \fi + \@namexdef{\@backslashchar colorS@#2}{\@@tmp}% + \endgroup} +\def\XC@step#1% + {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\@backslashchar color@#1}}% + \expandafter\XC@st@p\@@tmp{#1}% + \@namexdef{\@backslashchar color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}} +\def\XC@st@p#1#2#3% + {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\@backslashchar colorS@#3}}% + \@whilenum\@tempcnta>\z@\do + {\XC@inflate\@@mod\@@tmp\@@vec\@@tmp + \expandafter\XC@add\@@tmp,\@@tmp \expandafter\XC@calc@\@@tmp,,,,:U% + \advance\@tempcnta\m@ne}} +\def\XC@stepabs#1% + {\edef\@@tmp{\@nameuse{\@backslashchar colorB@#1}}% + \expandafter\XC@st@p\@@tmp{#1}% + \edef\@@tmp + {\def\noexpand\@@mod{\@@mod}\def\noexpand\@@clr{\@@tmp}}} +\def\blendcolors{\@ifstar{\XC@blendcolors\colorblend}{\XC@blendcolors{}}} +\def\XC@blendcolors#1#2% + {\edef\colorblend{#1}\XC@edef\XC@@tmp{#2}% + \ifx\XC@@tmp\@empty + \xglobal@\blendcolorsfalse + \else + \xglobal@\blendcolorstrue + \expandafter\XC@blendc@lors\XC@@tmp!!\@nil + \fi + \xglobalize@\colorblend \xglobal@stop} +\def\XC@blendc@lors!#1!#2!#3\@nil + {\@ifxempty{#1}{}% + {\@ifxempty{#2}% + {\edef\colorblend{\colorblend!#1!white}}% + {\edef\colorblend{\colorblend!#1!#2}\XC@blendc@lors!#3!\@nil}}} +\blendcolors{} +\def\maskcolors{\@testopt{\XC@maskcolors}{}} +\def\XC@maskcolors[#1]#2% + {\XC@edef\colormask{#2}% + \ifx\colormask\@empty + \xglobal@\maskcolorsfalse \def\XC@mmod{}\def\XC@mclr{}% + \else + \xglobal@\maskcolorstrue \extractcolorspecs\colormask\XC@mmod\XC@mclr + \@ifxempty{#1}{}% + {\convertcolorspec\XC@mmod\XC@mclr{#1}\XC@mclr \XC@sdef\XC@mmod{#1}}% + \XC@coremodel\XC@mmod\XC@mclr + \fi + \xglobalize@\colormask \xglobalize@\XC@mmod \xglobalize@\XC@mclr + \xglobal@stop} +\maskcolors{} +\DeclareRobustCommand\color + {\@ifnextchar[\@undeclaredcolor\@declaredcolor} +\def\@undeclaredcolor[#1]#2% + {\begingroup + \let\@@cls\@empty + \XC@getmodclr12{#1}{#2}{}% + {\ifblendcolors + \ifx\colorblend\@empty\else + \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse + \XC@coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr + \fi + \fi + \ifconvertcolorsU + \edef\@@tmp{\XC@tgt@mod{\@@mod}}% + \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp + \fi + \ifmaskcolors + \convertcolorspec\@@mod\@@clr\XC@mmod\@@clr + \let\@@mod\XC@mmod + \XC@inflate\@@mod\XC@mclr\@@clr\@@tmp + \expandafter\XC@mul\@@tmp,\@@clr + \fi + \edef\@@tmp{\noexpand\XC@undeclaredcolor{\@@mod}{\@@clr}}% + \expandafter\endgroup\@@tmp}} +\def\XC@undeclaredcolor#1#2% + {\@ifundefinedmodel{#1}% + {\c@lor@error{model `#1'}}% + {\@nameuse{color@#1}\current@color{#2}% + \edef\XC@current@color{\noexpand\xcolor@{}{\current@color}{#1}{#2}}% + \XC@display}} +\def\@declaredcolor#1% + {\XC@edef\XC@@tmp{#1}\XC@@tstfalse + \ifcase\XC@type\XC@@tmp\relax \XC@@tsttrue\or \relax\else + \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi + \ifconvertcolorsU\XC@@tsttrue\fi + \fi + \ifXC@@tst + \expandafter\XC@declaredcolor\else + \expandafter\XC@declaredc@lor\fi} +\def\XC@declaredcolor + {\XC@split\XC@@tmp + \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}% + \expandafter\endgroup\@@tmp} +\def\XC@declaredc@lor + {\XC@let@Nc\XC@current@color{\@backslashchar color@\XC@@tmp}% + \edef\current@color{\XC@current@color}% + \XC@display} +\protected\def\textcolor#1#{\@textcolor{#1}} +\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}} +\protected\def\pagecolor + {\begingroup + \let\ignorespaces\endgroup \let\set@color\set@page@color + \color} +\protected\def\nopagecolor + {\@ifundefined{no@page@color}% + {\PackageInfo{xcolor}{\@backslashchar nopagecolor\space is not supported}}% + {\no@page@color}} +\InputIfFileExists{mathcolor.ltx}{}{} +\protected\def\colorbox#1#{\color@box{#1}} +\def\color@box#1#2{\color@b@x\relax{\color#1{#2}}} +\protected\def\fcolorbox#1#{\color@fbox{#1}} +\def\color@fbox#1#2#3#{\protect\color@fb@x{#1}{#2}{#3}} +\def\color@fb@x#1#2#3#4% + {\color@b@x{\fboxsep\z@\color#1{#2}\XC@fbox}% + {\@ifxempty{#3}{\color#1}{\color#3}{#4}}} +\long\def\color@b@x#1#2#3% + {\leavevmode + \setbox\z@\hbox{\kern\fboxsep{\set@color#3}\kern\fboxsep}% + \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ + \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ + {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}} +\def\XC@frameb@x#1% + {\hbox + {\@tempdima\fboxrule \advance\@tempdima\fboxsep + \advance\@tempdima\dp\@tempboxa + \setbox\@tempboxa\hbox + {\lower\@tempdima\hbox + {\vbox + {\kern\fboxrule + \hbox{\kern\fboxrule#1% + \vbox{\kern\fboxsep\box\@tempboxa\kern\fboxsep}% + #1\kern\fboxrule}% + \kern\fboxrule}}}% + \@tempdima\wd\@tempboxa + \edef\@tempa{{\the\@tempdima}{\the\ht\@tempboxa}{\the\dp\@tempboxa}}% + \box\@tempboxa\kern-\@tempdima\expandafter\boxframe\@tempa}} +\ifXC@@fbox + \let\@frameb@x\XC@frameb@x \let\XC@fbox\fbox +\else + \def\XC@fbox{\let\@frameb@x\XC@frameb@x\fbox} +\fi + +\ifnum\XC@@xcd@>\m@ne +\def\XC@boxframe#1#2#3#4% + {\hbox{\sbox\z@{\ifdim\fboxrule>\z@ #4\fi}% + \wd\z@#1\relax\ht\z@#2\relax\dp\z@#3\relax\box\z@}} +\fi +\ifcase\XC@@xcd@ +\providecommand*\color@block[3]% + {{\set@color\hbox + {\dimen@#3\edef\@tempa{ \number\dimen@\space}% + \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% + \dimen@#1\relax + \XC@special{\number\dimen@\@tempa XCcolorblock}}}} +\providecommand*\boxframe[3]% + {\XC@boxframe{#1}{#2}{#3}% + {\dimen@#3\edef\@tempa{ \number\dimen@\space}% + \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% + \dimen@#1\relax + \XC@special{\number\fboxrule\space\number\dimen@\@tempa XCboxframe}}} +\or +\providecommand*\boxframe[3]% + {\XC@boxframe{#1}{#2}{#3}% + {\dimen@#3\edef\@tempa{ 0 -\strip@pt\dimen@\space}% + \edef\@tempb{\advance\dimen@\the\dimen@}% + \dimen@#2\advance\dimen@-\fboxrule\@tempb + \edef\@tempb{ \strip@pt\dimen@\space re s}% + \dimen@#1\advance\dimen@-\fboxrule + \edef\@tempb{ cm\@tempa\strip@pt\dimen@\@tempb}% + \dimen@.5\fboxrule\edef\@tempa{ \strip@pt\dimen@}% + \XC@special + {0.996264 0 0 0.996264 0 0 cm + \strip@pt\fboxrule\space w [] 0 d 2 J 0 j 4 M + 1 0 0 1\@tempa\@tempa\@tempb}}} +\fi +\providecommand*\color@block[3]% + {{\set@color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}} +\providecommand*\boxframe[3]% + {\hbox + {\dimen@#2\advance\dimen@#3\relax + \lower#3\vbox + {\hrule\@height\fboxrule + \@tempdima-0.5\fboxrule \ifodd\fboxrule\advance\@tempdima\m@ne sp\fi + \kern\@tempdima + \hbox + {\advance\dimen@-\fboxrule + \vrule\@width\fboxrule\@height\dimen@\@depth\z@ + \@tempdima#1\advance\@tempdima-\tw@\fboxrule \kern\@tempdima + \vrule\@width\fboxrule\@height\dimen@\@depth\z@}% + \kern-0.5\fboxrule + \hrule\@height\fboxrule}}} +\def\@xcolor@#1#2#3#4% + {\XC@sdef\@@mod{#3}\edef\@@clr{#4}% + \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi + \if@tempswa + \XC@let@Nc\@@tmp{XC@cnv@\@@mod @compl}% + \ifx\@@tmp\relax \expandafter\XC@calc@\@@clr,,,,:C\else + \expandafter\@@tmp\@@clr,\fi + \let\@@clr\@@tmp + \fi} +\def\@xcolor@@#1!#2!#3!#4!#5\@nil + {\dimen@\@ifxempty{#1}{100}{#1}\p@ + \edef\@@mix{\@ifxempty{#2}{white}{#2}}% + \ifdim\dimen@=100\p@ + \expandafter\XC@postfix\@@mix]\relax + \else\ifdim\dimen@=\z@ + \extractcolorspecs\@@mix\@@mod\@@clr + \else + \XC@let@Nc\@@tmp{XC@clr@\@@mod @\@@mix}% + \ifx\@@tmp\relax + \extractcolorspec\@@mix\@@tmp + \ifx\@@mod\XC@mod@gray + \edef\@@mod{\expandafter\@firstoftwo\@@tmp}% + \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% + \convertcolorspec\XC@mod@gray\@@clr\@@mod\@@clr + \else + \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp + \fi + \else + \ifx\@@mod\XC@mod@hsb\expandafter\XC@extract@hue\@@clr:\@@hue\fi + \fi + \XC@inflate\@@mod\@@clr\@@tmp\@@tmp + \expandafter\XC@mix\@@tmp,\@@clr + \fi\fi + \@ifxempty{#3}% + {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}% + {\@xcolor@@#3!#4!#5\@nil}} +\def\XC@split#1% + {\begingroup\XC@edef\@@tmp{#1}\expandafter\XC@split@i\@@tmp>>\@nnil} +\def\XC@split@i#1>% + {\def\@@tmp{#1}\XC@split@ii#1:\@nil \XC@func} +\def\XC@split@ii#1:#2\@nil + {\@ifxempty{#2}{\XC@split@vi}{\XC@split@iii#1,,:#2}} +\def\XC@split@iii#1,#2,#3:#4:% + {\edef\XC@@mod{#1}\let\@tempa\@empty + \ifx,#2,\XC@@tsttrue\@tempdima\z@\else\XC@@tstfalse\@tempdima#2\p@\fi + \XC@split@iv#4;,;} +\def\XC@split@iv#1,#2;% + {\@ifxempty{#1}% + {\let\XC@@clr\@empty \@tempa \expandafter\XC@calc@\XC@@clr,,,,:U% + \let\@@mod\XC@@mod \let\@@clr\@@tmp} + {\XC@append\@tempa{\XC@split@v{#1}{#2}}% + \ifXC@@tst\advance\@tempdima#2\p@\fi + \XC@split@iv}} +\def\XC@split@v#1#2% + {\def\@@tmp{#1}\XC@split@vi + \ifx\@@mod\XC@@mod\else + \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr + \fi + \dimen@#2\p@ \rdivide\dimen@\@tempdima + \edef\@@scl{\strip@pt\dimen@}% + \expandafter\XC@calc@\@@clr,,,,:S% + \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else + \XC@inflate\XC@@mod\XC@@clr\@@tmp\@@tmp + \expandafter\XC@add\@@tmp,\XC@@clr + \fi} +\def\XC@split@vi{\count@\z@ \expandafter\XC@split@vii\@@tmp!\@nil} +\def\XC@split@vii#1% + {\ifx#1-\advance\count@\@ne\expandafter\XC@split@vii + \else\expandafter\XC@split@viii\expandafter#1\fi} +\def\XC@split@viii#1!#2\@nil + {\edef\@@nam{#1}\edef\@@mix{#2}% + \ifodd\count@\@tempswatrue\else\@tempswafalse\fi + \@ifundefinedcolor\@@nam + {\c@lor@error{`\@@nam'}\def\@@nam{black}}{}% + \let\xcolor@\@xcolor@\@nameuse{\@backslashchar color@\@@nam}} +\def\XC@postfix#1#2]#3\relax + {\begingroup + \if[#1\@tempcnta#2\relax\XC@stepabs\@@nam + \else\@tempcnta\z@ + \@tfor\@@tok:=#1#2\do + {\if+\@@tok\advance\@tempcnta\@ne + \else\if-\@@tok\advance\@tempcnta\m@ne + \else\@tempcnta\z@\expandafter\@break@tfor\fi\fi}% + \ifnum\@tempcnta=\z@\relax\else\XC@step\@@nam\fi + \let\@@tmp\@empty + \fi\expandafter\endgroup\@@tmp} +\def\XC@func#1>{\@ifxempty{#1}{\remove@to@nnil}{\XC@fun@#1,>\XC@func}} +\def\XC@fun@#1,#2>{\@nameuse{XC@func@#1}#2,,>} +\def\XC@func@wheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}0} +\def\XC@func@twheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}1} +\def\XC@func@wh@el#1#2#3% + {\convertcolorspec\@@mod\@@clr + {\ifcase#3 \XC@mod@Hsb\or\XC@mod@tHsb\fi}\@@clr + \expandafter\XC@extract@hue\@@clr:\@@hue \dimen@#1\p@ + \@ifxempty{#2}{}% + {\rdivide\dimen@{#2}\lshift\dimen@ + \dimen@\rangeHsb\dimen@\rshift\dimen@}% + \advance\dimen@\@@hue\p@ \rdivide\dimen@\rangeHsb + \edef\@@hue{\strip@pt\dimen@}\XC@calcU\@@hue\@@hue + \ifcase#3 + \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr + \or + \XC@c@lcS\rangeHsb{}\@@hue\@@hue + \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr + \convertcolorspec\XC@mod@tHsb\@@clr\XC@mod@hsb\@@clr + \fi + \let\@@mod\XC@mod@hsb} +\def\XC@display + {\XC@bcolor\XC@let@cN{\@backslashchar color@.}\XC@current@color + \ifnum\XC@type{.}=1 + \PackageWarning{xcolor}{Incompatible color definition}\else + \ifnum\XC@tracing>2 + \begingroup \let\xcolor@\@empty \def\@nil{\@backslashchar @nil}% + \PackageInfo{xcolor}{Setting color `\XC@current@color'}% + \endgroup + \fi\fi + \XC@mcolor\set@color\XC@ecolor\ignorespaces} +\let\XC@bcolor\relax +\let\XC@mcolor\relax +\let\XC@ecolor\relax +\def\XC@bordercolor#1#2% + {\extractcolorspec{#2}\XC@@tmp + \expandafter\convertcolorspec\XC@@tmp\XC@mod@rgb\XC@@tmp + \expandafter\edef\csname @#1bordercolor\endcsname + {\expandafter\XC@strip@comma\XC@@tmp,,\@nnil}} +\def\XC@pdfborder#1 #2 #3\relax + {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S% + \edef\@pdfborder{\expandafter\XC@strip@comma\@@tmp,,\@nnil}} +\@ifXCopt{table}{% + \def\rowcolors + {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} + \def\rowc@lors{\@testopt{\rowc@l@rs}{}} + \def\rowc@l@rs[#1]#2#3#4% + {\global\rownum=\z@ + \global\@rowcolorstrue + \@ifxempty{#3}% + {\def\@oddrowcolor{\@norowcolor}}% + {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% + \@ifxempty{#4}% + {\def\@evenrowcolor{\@norowcolor}}% + {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% + \if@rowcmd + \def\@rowcolors + {#1\if@rowcolors + \noalign{\relax\ifnum\rownum<#2\@norowcolor\else + \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% + \fi}% + \else + \def\@rowcolors + {\if@rowcolors + \ifnum\rownum<#2\noalign{\@norowcolor}\else + #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi + \fi}% + \fi + \CT@everycr{\@rowc@lors\the\everycr}% + \ignorespaces} + \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} + \let\@rowcolors\@empty + \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} + \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} + \def\@norowcolor{\global\let\CT@row@color\relax} + \@norowcolor + \newif\if@rowcolors + \newif\if@rowcmd + \@ifundefined{rownum}{\newcount\rownum}{} + \def\CT@extract#1\columncolor#2#3\@nil + {\if!#2% + \let\CT@column@color\@empty + \else + \if[#2% + \expandafter\CT@extractb + \else + \XC@edef\XC@@tmp{#2}% + \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% + \expandafter\CT@extractd + \fi + {#1}#3\@nil + \fi} +}{} +\def\extractcolorspec#1#2% + {\XC@split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp} +\def\extractcolorspecs#1#2#3% + {\extractcolorspec{#1}#3% + \edef#2{\expandafter\@firstoftwo#3}% + \edef#3{\expandafter\@secondoftwo#3}} +\def\XC@extract@hue#1,#2:#3{\edef#3{#1}} +\def\XC@replace@hue#1,#2:#3,#4{\edef#4{#3,#2}} +\def\@ifundefinedcolor#1{\@ifundefined{\@backslashchar color@#1}} +\def\@ifundefinedmodel#1{\@ifundefined{color@#1}} +\def\XC@type#1% + {\expandafter\expandafter\expandafter\XC@typ@ + \csname\@backslashchar color@#1\endcsname\@empty\@empty\@empty\XC@@} +\def\XC@typ@#1#2#3#4\XC@@ + {\ifx#1\relax 0\else + \ifx#1\xcolor@ + \ifx$#2$% + \ifx$#3$4\else3\fi\@gobbletwo + \else2\fi\@gobbletwo + \else1\fi + \fi} +\def\XC@info#1#2% + {\XC@edef#2{#1}% + \expandafter\in@\expandafter>\expandafter{#2}% + \ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}% + \ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}% + \ifin@\def#2{2}\else % now there's no >,:,! + \if-\expandafter\@car#2\relax\@nil\def#2{2}\else % catches -red + \edef#2{\noexpand\in@{/./}{/#2/}}#2% + \edef#2{\ifin@0\else1\fi}\fi\fi\fi\fi} +\def\tracingcolors{\begingroup\afterassignment\XC@tracingcolors\count@} +\def\XC@tracingcolors{\aftergroupdef\XC@tracing{\the\count@}} +\tracingcolors=0 +\def\XC@logdef#1% + {\ifnum\XC@tracing>1 + \@ifundefinedcolor{#1}% + {\ifnum\XC@tracing>2 + \PackageInfo{xcolor}{Defining color `#1'}% + \fi}% + {\PackageInfo{xcolor}{Redefining color `#1'}}% + \fi} +\newenvironment*{testcolors}[1][rgb,cmyk,hsb,HTML]% + {\let\@@nam\@empty\count@\z@ + \@for\@@tmp:=#1\do + {\advance\count@\@ne + \XC@sdef\@@tmp{\@@tmp}\edef\@@nam{\@@nam{\@@tmp}}}% + \edef\@@num{\the\count@}% + \def\XC@@gt{\textgreater}\def\@@tmp{OT1}% + \ifx\f@encoding\@@tmp + \@expandtwoargs\in@{,\f@family,}{,cmtt,pcr,}% + \ifin@\def\XC@@gt{>}\fi + \fi + \def\XC@@xcp@{-1}\ifnum\XC@tracing>1 \def\XC@tracing{1}\fi + \def\testcolor{\@testopt{\@testcolor}{}}% + \def\@testcolor[##1]##2% + {\XC@mdef\@@mod{##1}\XC@edef\@@clr{##2}% + \ifx\@@mod\@empty + \let\@@arg\@@clr\XC@replace\@@arg>\XC@@gt\else + \edef\@@arg{[\@@mod]{\@@clr}}\XC@definecolor[]{*}\@@mod\@@clr + \def\@@clr{*}\fi + \XC@append\@@arg{&}\extractcolorspecs\@@clr\@@mod\@@clr + \@testc@lor}% + \def\@testc@lor + {\count@\z@ + \expandafter\@tfor\expandafter\@@tmp\expandafter:\expandafter=\@@nam\do + {\ifx\@@clr\@empty + \edef\@@cmd{\noexpand\textbf{\@@tmp}}% + \else + \convertcolorspec\@@mod\@@clr\@@tmp\@@cmd + \edef\@@cmd + {\noexpand\@testc@l@r{\@@tmp}{\@@cmd}% + \ifx\@@mod\@@tmp\noexpand\underline\fi + {\expandafter\XC@strip@comma\@@cmd,,\@nnil}}% + \fi + \expandafter\XC@append\expandafter\@@arg\expandafter{\@@cmd}% + \advance\count@\@ne + \ifnum\count@=\@@num\XC@append\@@arg{\\}\else\XC@append\@@arg{&}\fi}% + \@@arg}% + \def\@testc@l@r##1##2% + {\fboxsep\z@\fbox{\colorbox[##1]{##2}{\phantom{XX}}} }% + \tabular{@{}l*{\@@num}{l}@{}}% + \def\@@arg{\textbf{color}& }\let\@@clr\@empty\@testc@lor}% + {\endtabular\ignorespacesafterend} +\def\color@setgroup{\begingroup\set@color} +\let\color@begingroup\begingroup +\def\color@endgroup{\endgraf\endgroup} +\def\color@hbox{\hbox\bgroup\color@begingroup} +\def\color@vbox{\vbox\bgroup\color@begingroup} +\def\color@endbox{\color@endgroup\egroup} +\def\convertcolorspec#1#2#3#4% + {\begingroup + \XC@sdef\sm{#1}\XC@sdef\tm{#3}\edef\@@tmp{#2}% + \ifx\sm\XC@mod@named\extractcolorspecs\@@tmp\sm\@@tmp\fi + \ifx\sm\tm\else\csname XC@cnv@\sm\expandafter\endcsname\@@tmp,\fi + \aftergroupdef#4\@@tmp} +\def\XC@coremodel#1#2% + {\XC@ifxcase#1% + {\XC@mod@RGB {\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% + \XC@mod@HTML{\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% + \XC@mod@Hsb {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% + \XC@mod@tHsb{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% + \XC@mod@HSB {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% + \XC@mod@Gray{\convertcolorspec#1#2\XC@mod@gray#2\let#1\XC@mod@gray}% + \XC@mod@wave{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% + \XC@mod@named{}% + \XC@mod@ps{}}% + {\expandafter\XC@calc@#2,,,,:N\let#2\@@tmp}} +\def\XC@cnv@rgb#1,#2,#3,% + {\XC@ifxcase\tm + {\XC@mod@cmy {\XC@calc@#1,#2,#3,,:C}% + \XC@mod@cmyk + {\XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,}% + \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:M}% + \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calc@#1,#2,#3,,:M% + \expandafter\XC@calc@\@@tmp,,:H% + \expandafter\XC@cnv@rgb@HTML\@@tmp,}% + \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,}% + \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@cnv@gray\@@tmp,}}% + {\XC@cnv@rgb@hsb#1,#2,#3,\XC@cnv@hsb@}} +\def\XC@cnv@rgb@ + {\ifx\tm\XC@mod@rgb\else\expandafter\XC@cnv@rgb\@@tmp,\fi} +\def\XC@cnv@rgb@hsb#1,#2,#3,% + {\count@\z@ + \ifdim#2\p@>#1\p@ \else\advance\count@4 \fi + \ifdim#3\p@>#2\p@ \else\advance\count@2 \fi + \ifdim#1\p@>#3\p@ \else\advance\count@1 \fi + \ifcase\count@\or + \XC@c@v@rgb@hsb{#3}{#2}{#1}3{}\or + \XC@c@v@rgb@hsb{#2}{#1}{#3}1{}\or + \XC@c@v@rgb@hsb{#2}{#3}{#1}3-\or + \XC@c@v@rgb@hsb{#1}{#3}{#2}5{}\or + \XC@c@v@rgb@hsb{#3}{#1}{#2}5-\or + \XC@c@v@rgb@hsb{#1}{#2}{#3}1-\or + \def\@tempa{0}\def\@tempb{0}\XC@calcN{#3}\@tempc + \fi + \edef\@@tmp{\@tempa,\@tempb,\@tempc}} +\def\XC@c@v@rgb@hsb#1#2#3#4#5% + {\XC@calcN{#1}\@tempc \llshiftset\dimen@{#1}% + \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@ + \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@ + \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}% + \edef\@tempa{\ifdim\@tempdima>\p@1\else\strip@pt\@tempdima\fi}% + \rdivide\@tempdimb\dimen@ + \edef\@tempb{\strip@pt\@tempdimb}} +\def\XC@cnv@rgb@gray#1,#2,#3,% + {\llshiftset\dimen@{#1}\@tempdima30\dimen@ + \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@ + \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@ + \rrshift\@tempdima \rdivide\@tempdima{100}% + \edef\@@tmp{\strip@pt\@tempdima}} +\def\XC@cnv@rgb@HTML#1,#2,#3,% + {\edef\@@tmp{#1#2#3}} +\def\XC@cnv@cmy#1,#2,#3,% + {\XC@ifxcase\tm + {\XC@mod@cmyk{\XC@cnv@cmy@cmyk#1,#2,#3,}% + \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp}% + \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp + \XC@cnv@gray\@@tmp,}}% + {\XC@calc@#1,#2,#3,,:C\XC@cnv@rgb@}} +\def\XC@cnv@cmy@cmyk#1,#2,#3,% + {\edef\@@scl + {\ifdim#1\p@<#2\p@ + \ifdim#1\p@<#3\p@ #1\else #3\fi \else + \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}% + \expandafter\XC@calc@\adjustUCRBG,:S% + \expandafter\XC@c@v@cmy@cmyk\@@tmp,#1,#2,#3,} +\def\XC@c@v@cmy@cmyk#1,#2,#3,#4,#5,#6,#7,% + {\XC@add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}% + \expandafter\XC@calc@\@@tmp,:N} +\def\XC@cnv@cmyk#1,#2,#3,#4,% + {\XC@ifxcase\tm + {\XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% + \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp}% + \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% + \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp \XC@cnv@gray\@@tmp,}}% + {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% + \ifx\tm\XC@mod@cmy\else\expandafter\XC@cnv@cmy\@@tmp,\fi}} +\def\XC@cnv@cmyk@cmy#1,#2,#3,#4,% + {\edef\@@arg{#4}\XC@calc@#1,#2,#3,,:T} +\def\XC@cnv@hsb#1,#2,#3,% + {\XC@ifxcase\tm + {\XC@mod@Hsb {\XC@cnv@hsb@Hsb#1,#2,#3,}% + \XC@mod@tHsb{\XC@cnv@hsb@Hsb#1,#2,#3,\expandafter\XC@cnv@Hsb\@@tmp,}% + \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:M}}% + {\XC@cnv@hsb@rgb#1,#2,#3,\XC@cnv@rgb@}} +\def\XC@cnv@hsb@ + {\ifx\tm\XC@mod@hsb\else\expandafter\XC@cnv@hsb\@@tmp,\fi} +\def\XC@cnv@hsb@rgb#1,#2,#3,% + {\llshiftset\dimen@{#1}\dimen@6\dimen@ \rrshift\dimen@ + \afterassignment\dimen@\count@=\the\dimen@ + \edef\@@tmp{\strip@pt\dimen@}% + \ifodd\count@\else\XC@calcC\@@tmp\@@tmp\fi + \edef\@@tmp + {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or + 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}% + \edef\@@scl{#2}\expandafter\XC@calc@\@@tmp,,:S% + \expandafter\XC@calc@\@@tmp,,:C% + \edef\@@scl{#3}\expandafter\XC@calc@\@@tmp,,:S% + \expandafter\XC@calc@\@@tmp,,:N} +\def\XC@cnv@hsb@Hsb#1,#2,#3,% + {\XC@c@lcS\rangeHsb{,#2,#3}{#1}\@@tmp} +\def\XC@cnv@gray#1,% + {\XC@ifxcase\tm + {\XC@mod@rgb {\XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% + \XC@mod@cmy {\XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% + \XC@mod@cmyk{\XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}% + \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp + \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% + \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calcM{#1}\@@tmp + \XC@calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}}% + \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calcM{#1}\@@tmp + \edef\@@tmp{0,0,\@@tmp}}% + \XC@mod@Gray{\edef\@@scl{\rangeGray}\XC@calcM{#1}\@@tmp}}% + {\XC@calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}} +\def\XC@cnv@RGB#1,#2,#3,% + {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:D\XC@cnv@rgb@} +\def\XC@cnv@HTML#1,% + {\edef\@@tmp{\expandafter\@hex@Hex#1\relax}\expandafter\XC@cnv@HTML@\@@tmp + \edef\@@scl{\@cclv}\expandafter\XC@calc@\@@tmp,,:D\XC@cnv@rgb@} +\def\XC@cnv@HTML@#1#2#3#4#5#6% + {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}} +\def\XC@cnv@Hsb#1,#2,#3,% + {\ifx\tm\XC@mod@tHsb\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@Hsb@ + \else\XC@cnv@Hsb@hsb#1,#2,#3,\XC@cnv@hsb@\fi} +\def\XC@cnv@Hsb@hsb#1,#2,#3,% + {\XC@c@lcD\rangeHsb{,#2,#3}{#1}\@@tmp} +\def\XC@cnv@@Hsb#1,#2,#3,#4% + {\dimen@\rangeHsb\p@ \advance\dimen@\p@ \edef\@@tmp{\strip@pt\dimen@}% + \edef\@@tmp{0,0;\rangetHsb;\rangeHsb,\rangeHsb;\@@tmp,\@@tmp;}% + \dimen@#1\p@ \expandafter#4\@@tmp\@nnil + \edef\@@tmp{\strip@pt\dimen@,#2,#3}} +\def\XC@cnv@Hsb@#1,#2;#3,#4;% + {\ifdim\dimen@<#4\p@ + \@tempdima#3\p@ \advance\@tempdima-#1\p@ + \@tempdimb#4\p@ \advance\@tempdimb-#2\p@ + \rdivide\@tempdima\@tempdimb + \advance\dimen@-#2\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% + \advance\dimen@#1\p@ \expandafter\remove@to@nnil + \else + \def\@@tmp{\XC@cnv@Hsb@#3,#4;}\expandafter\@@tmp + \fi} +\def\XC@cnv@tHsb#1,#2,#3,% + {\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@tHsb@ + \ifx\tm\XC@mod@Hsb\else\expandafter\XC@cnv@Hsb\@@tmp,\fi} +\def\XC@cnv@tHsb@#1,#2;#3,#4;% + {\ifdim\dimen@<#3\p@ + \@tempdima#4\p@ \advance\@tempdima-#2\p@ + \@tempdimb#3\p@ \advance\@tempdimb-#1\p@ + \rdivide\@tempdima\@tempdimb + \advance\dimen@-#1\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% + \advance\dimen@#2\p@ \expandafter\remove@to@nnil + \else + \def\@@tmp{\XC@cnv@tHsb@#3,#4;}\expandafter\@@tmp + \fi} +\def\XC@cnv@HSB#1,#2,#3,% + {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:D\XC@cnv@hsb@} +\def\XC@cnv@Gray#1,% + {\XC@c@lcD\rangeGray{}{#1}\@@tmp \XC@cnv@gray\@@tmp,} +\def\XC@cnv@wave#1,% + {\XC@cnv@wave@hsb#1,\XC@cnv@hsb@} +\def\XC@cnv@wave@hsb#1,% + {\@tempdima#1\p@ + \ifdim\@tempdima<440\p@ + \XC@c@v@wave@hsb{-.0166667}{7.33333}4{}\else + \ifdim\@tempdima<490\p@ + \XC@c@v@wave@hsb{.02}{-8.8}4-\else + \ifdim\@tempdima<510\p@ + \XC@c@v@wave@hsb{-.05}{25.5}2{}\else + \ifdim\@tempdima<580\p@ + \XC@c@v@wave@hsb{.0142857}{-7.28571}2-\else + \ifdim\@tempdima<645\p@ + \XC@c@v@wave@hsb{-.0153846}{9.92308}0{}\else + \dimen@\z@ \fi\fi\fi\fi\fi + \divide\dimen@6\relax + \edef\@@tmp{\strip@pt\dimen@,1,}% + \ifdim\@tempdima<420\p@ + \XC@c@v@wave@hsb{.0175}{-6.35}0{}\else + \ifdim\@tempdima>700\p@ + \XC@c@v@wave@hsb{-.00875}{7.125}0{}\else + \dimen@\p@ \fi\fi + \edef\@@tmp{\@@tmp\strip@pt\dimen@}} +\def\XC@c@v@wave@hsb#1#2#3#4% + {\dimen@#1\@tempdima \advance\dimen@#2\p@ + \XC@calcR{\strip@pt\dimen@}\@tempa + \dimen@#4\@tempa\p@ \advance\dimen@#3\p@} +\def\XC@cnv@cmyk@compl#1,#2,#3,#4,% + {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% + \expandafter\XC@calc@\@@tmp,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,} +\def\XC@cnv@hsb@compl#1,#2,#3,% + {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p@-\fi-5\p@ + \rshift\dimen@ \edef\@@tmp{\strip@pt\dimen@}% + \lshiftset\dimen@{#3}\@tempdima#2\dimen@ + \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@ + \ifdim\@tempdimb=\z@ + \edef\@@tmp{\@@tmp,0,0}% + \else + \rdivide\@tempdima\@tempdimb \rshift\@tempdimb + \edef\@@tmp{\@@tmp,\strip@pt\@tempdima,\strip@pt\@tempdimb}% + \fi} +\def\substitutecolormodel#1#2% + {\XC@sdef\XC@@tmp{\expandafter\XC@substitutecolormodel#2/ignore/\@nnil}% + \ifx\XC@@tmp\XC@mod@ignore + \XC@let@cN{color@#1}\color@ignore + \else + \expandafter\edef\csname color@#1\endcsname##1##2% + {\noexpand\convertcolorspec + \expandafter\noexpand\csname XC@mod@#1\endcsname{##2}% + \expandafter\noexpand\csname XC@mod@\XC@@tmp\endcsname + \noexpand\XC@@tmp\noexpand\expandafter + \expandafter\noexpand\csname color@\XC@@tmp\endcsname + \noexpand\expandafter##1\noexpand\expandafter{\noexpand\XC@@tmp}}% + \fi + \expandafter\xglobalize@\csname color@#1\endcsname \xglobal@stop + \PackageInfo{xcolor}{Model `#1' substituted by `\XC@@tmp'}} +\def\XC@substitutecolormodel#1/% + {\@ifundefinedmodel{#1}{\XC@substitutecolormodel}{#1\remove@to@nnil}} +\def\color@ignore#1#2{\def#1{}} +\@ifundefinedmodel{rgb}% + {\substitutecolormodel{rgb}{RGB/HTML/hsb/Hsb/HSB/cmy/cmyk/gray/Gray}}{} +\@ifundefinedmodel{cmyk}{\substitutecolormodel{cmyk}{cmy/rgb}}{} +\@ifundefinedmodel{cmy}% + {\PackageInfo{xcolor}{Model `cmy' substituted by `cmy0'} + \def\color@cmy#1#2{\color@cmyk#1{#2,0}}}{} +\@ifundefinedmodel{hsb}{\@tempswatrue}% + {\XC@ifcase\XC@@drv{{dvipdfm,textures}\@tempswatrue}\@tempswafalse} +\if@tempswa + \substitutecolormodel{hsb}{Hsb/HSB/rgb} +\fi +\@ifundefinedmodel{RGB}% + {\substitutecolormodel{RGB}{HTML/rgb}} + {\PackageInfo{xcolor}{Model `RGB' extended} + \let\XC@color@RGB\color@RGB + \def\color@RGB#1#2% + {\relax\ifnum\rangeRGB=255 + \XC@color@RGB#1{#2}% + \else + \convertcolorspec\XC@mod@RGB{#2}\XC@mod@rgb\XC@@tmp + \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}% + \fi}} +\@ifundefinedmodel{gray}{\substitutecolormodel{gray}{Gray/rgb}}{} +\@ifundefinedmodel{HTML}{\substitutecolormodel{HTML}{rgb}}{} +\@ifundefinedmodel{Hsb}{\substitutecolormodel{Hsb}{hsb}}{} +\@ifundefinedmodel{tHsb}{\substitutecolormodel{tHsb}{hsb}}{} +\@ifundefinedmodel{HSB}{\substitutecolormodel{HSB}{hsb}}{} +\@ifundefinedmodel{Gray}{\substitutecolormodel{Gray}{gray}}{} +\@ifundefinedmodel{wave}{\substitutecolormodel{wave}{hsb}}{} +\def\XC@getcolor#1#2% + {\begingroup\toks@{#1}\XC@getc@lor#1\XC@@\aftergroupdef#2{\@@tmp}} +\def\XC@getc@lor#1#2\XC@@ + {\@ifxempty{#2}% + {\expandafter\XC@getc@l@r#1\XC@@}% + {\let\set@color\relax + \ifx#1[% + \expandafter\@undeclaredcolor\the\toks@\else + \expandafter\@declaredcolor\expandafter{\the\toks@}\fi + \let\@@tmp\XC@current@color}} +\def\XC@getc@l@r#1#2\XC@@ + {\ifx#1\xcolor@ + \def\@@tmp{\xcolor@#2}% + \else + \let\set@color\relax + \expandafter\@declaredcolor\expandafter{\the\toks@}% + \let\@@tmp\XC@current@color + \fi} +\def\XC@usecolor#1{\expandafter\XC@usec@lor#1\XC@@} +\def\XC@usec@lor#1#2\XC@@ + {\ifx#1\xcolor@ + \expandafter\expandafter\expandafter\c@lor@to@ps#1#2\@@ + \else + \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\c@lor@to@ps\csname\@backslashchar color@#1#2\endcsname\@@ + \fi + \space} +\let\XC@c@lor@to@ps\XC@usecolor +\let\pst@getcolor\XC@getcolor +\let\pst@usecolor\XC@usecolor +\def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa} +\protected\def\normalcolor{\let\current@color\default@color\set@color} +\AtBeginDocument{\let\default@color\current@color} +\XC@ifcase\XC@@drv + {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}% + {\def\c@lor@@named#1,#2,#3\@@#4% + {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive + \csname\@backslashchar color@#1\endcsname}} + \def\define@color@named#1#2% + {\@namedef{\@backslashchar color@#1}{{}{}{ \colornameprefix#1}{}{}}}}% + {dvipsone,luatex,pctexps,pdftex,tcidvi,truetex,vtex,xetex}% + {\def\c@lor@@named#1,#2,#3\@@#4% + {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive + \csname\@backslashchar color@#1\endcsname}} + \def\define@color@named#1#2% + {\let\@@cls\@empty\@namedef{\@backslashchar color@#1}{{}{}{#2}{}{}}}}% + {textures}% + {\def\c@lor@@named#1,#2,#3\@@#4% + {\edef\@tempa{\color@P@custom{#1}{\if!#2!1\else#2\fi}}% + \expandafter\def\expandafter#4\@tempa} + \def\define@color@named#1#2% + {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa} + \def\c@lor@ps@#1 #2\@@ + {\expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\c@lor@to@ps@ + \csname\@backslashchar color@#1\expandafter\endcsname\space + #2. \@@{#1}}}% + }{} +\definecolorset{rgb/hsb/cmyk/gray}{}{}% + {red,1,0,0/0,1,1/0,1,1,0/.3;% + green,0,1,0/.33333,1,1/1,0,1,0/.59;% + blue,0,0,1/.66667,1,1/1,1,0,0/.11;% + brown,.75,.5,.25/.083333,.66667,.75/0,.25,.5,.25/.5475;% + lime,.75,1,0/.20833,1,1/.25,0,1,0/.815;% + orange,1,.5,0/.083333,1,1/0,.5,1,0/.595;% + pink,1,.75,.75/0,.25,1/0,.25,.25,0/.825;% + purple,.75,0,.25/.94444,1,.75/0,.75,.5,.25/.2525;% + teal,0,.5,.5/.5,1,.5/.5,0,0,.5/.35;% + violet,.5,0,.5/.83333,1,.5/0,.5,0,.5/.205}% +\definecolorset{cmyk/rgb/hsb/gray}{}{}% + {cyan,1,0,0,0/0,1,1/.5,1,1/.7;% + magenta,0,1,0,0/1,0,1/.83333,1,1/.41;% + yellow,0,0,1,0/1,1,0/.16667,1,1/.89;% + olive,0,0,1,.5/.5,.5,0/.16667,1,.5/.39} +\definecolorset{gray/rgb/hsb/cmyk}{}{}% + {black,0/0,0,0/0,0,0/0,0,0,1;% + darkgray,.25/.25,.25,.25/0,0,.25/0,0,0,.75;% + gray,.5/.5,.5,.5/0,0,.5/0,0,0,.5;% + lightgray,.75/.75,.75,.75/0,0,.75/0,0,0,.25;% + white,1/1,1,1/0,0,1/0,0,0,0} +\XC@@names +\AtBeginDocument{\let\XC@@stack\@empty} +\let\colornameprefix\XC@@nameprefix +\XC@catcodes +\csname xcolorcmd\endcsname +\color{black} +\endinput +%% +%% End of file `xcolor.sty'. diff --git a/Master/texmf-dist/tex/latex/xcolor/xcolor.sty b/Master/texmf-dist/tex/latex/xcolor/xcolor.sty index c08e1c66df3..bb4c0136aa1 100644 --- a/Master/texmf-dist/tex/latex/xcolor/xcolor.sty +++ b/Master/texmf-dist/tex/latex/xcolor/xcolor.sty @@ -22,11 +22,11 @@ %% in the same archive or directory.) %% \ProvidesPackage{xcolor} - [2022/06/12 v2.14 LaTeX color extensions (UK)] + [2023/11/11 v3.00 LaTeX color extensions (UK)] %% %% ---------------------------------------------------------------- %% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de> -%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues +%% 2021-2023 LaTeX Project https://github.com/latex3/xcolor/issues %% ---------------------------------------------------------------- %% %% Please send error reports and suggestions for @@ -39,7 +39,16 @@ %% %% which is part of the Standard LaTeX `Graphics Bundle'. %% + +\providecommand\DeclareRelease[3]{} +\providecommand\DeclareCurrentRelease[2]{} +\DeclareRelease{v2}{0000-00-00}{xcolor-2022-06-12.sty} +\DeclareCurrentRelease{}{2023-11-11} \NeedsTeXFormat{LaTeX2e} +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} +\IfFormatAtLeastTF{2022/06/01}{} + {\RequirePackageWithOptions{xcolor-2022-06-12}} +\IfFormatAtLeastTF{2022/06/01}{}{\endinput} \expandafter\edef\csname XC@catcodes\endcsname {\catcode33 \the\catcode33 % ! \catcode34 \the\catcode34 % " @@ -125,14 +134,6 @@ {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@ \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\XC@if@\fi}% \XC@if@#2{#1}{#3}\@nnil\the\toks@} -\def\XC@@opt{,} -\def\@ifXCopt#1% - {\@expandtwoargs\in@{,#1,}{\XC@@opt}% - \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\let\XC@@pkg\relax -\let\XC@declareoption\@declareoption -\long\def\@declareoption#1#2% - {\XC@declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}} \def\selectcolormodel#1% {\@ifundefined{XC@mod@#1}% {\c@lor@error{target model `#1'}}% @@ -148,26 +149,47 @@ \@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}% \edef\@@tmp - {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% + {\noexpand\DeclareKeys{\@@tmp .code= {\noexpand\selectcolormodel{\@@tmp}}}}% \@@tmp} -\DeclareOption{monochrome} - {\ExecuteOptions{hideerrors}% - \AtEndOfPackage - {\colors@false - \def\set@color{\c@lor@special\m@ne - {color push \current@color}\aftergroup\reset@color}% - \def\reset@color{\c@lor@special\m@ne{color pop}}% - \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} +\DeclareKeys + { + monochrome .code = + { + \colorerrors@false + \AtEndOfPackage + {\colors@false + \def\set@color{\c@lor@special\m@ne + {color push \current@color}\aftergroup\reset@color}% + \def\reset@color{\c@lor@special\m@ne{color pop}}% + \def\set@page@color{\c@lor@special\m@ne{background \current@color}}} + } + ,monochrome .usage = load + } \let\XC@@names\relax \providecommand*\colornameprefix{XC@} \let\XC@@nameprefix\colornameprefix \def\XC@declarenames#1#2#3% - {\DeclareOption{#1}{\XC@append\XC@@names - {#3\definecolorstrue\input{#2.def}\definecolorstrue - \let\colornameprefix\XC@@nameprefix}} - \DeclareOption{#1*}{\XC@append\XC@@names - {#3\definecolorsfalse\input{#2.def}\definecolorstrue - \let\colornameprefix\XC@@nameprefix}}} + {% + \DeclareKeys + { + #1 .code = + { + \AddToHook{package/xcolor/after} + {#3\definecolorstrue\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix}% + \DeclareKeys[xcolor]{#1 .code = {},#1* .code={}} + } + ,#1 .usage = preamble + ,#1* .code = + { + \AddToHook{package/xcolor/after} + {#3\definecolorsfalse\input{#2.def}\definecolorstrue + \let\colornameprefix\XC@@nameprefix} + \DeclareKeys[xcolor]{#1 .code = {},#1* .code={}} + } + ,#1* .usage = preamble + }% + } \XC@declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty} \XC@declarenames{svgnames}{svgnam}{} \XC@declarenames{x11names}{x11nam}{} @@ -175,47 +197,62 @@ {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{} \XC@declarenames{pmsnames}{pmsnam}{} \XC@declarenames{ralnames}{ralnam}{} -\DeclareOption{table}{\XC@append\XC@@pkg{\RequirePackage{colortbl}}} -\DeclareOption{fixpdftex}{\XC@append\XC@@pkg{\RequirePackage{pdfcolmk}}} -\DeclareOption{hyperref} - {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do - {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% - {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% - \AtEndOfPackage - {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% - \@tfor\@@tmp:={dvips}\do - {\ifx\GinDriver\@@tmp - \def\KV@Hyp@xpdfborder#1% - {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% - \@break@tfor\fi}}} +\DeclareKeys + { + table .code ={\AddToHook{package/xcolor/after}{\RequirePackage{colortbl}}} + ,table .usage = preamble + ,hyperref .code = {} + ,fixpdftex .code = {} + } \providecommand*\Gin@driver{} \@tfor\@@tmp:={dvipdf}{dvipdfmx}{dvips}{dvipsone}{dviwin}% {emtex}{luatex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% {tcidvi}{textures}{truetex}{vtex}{xetex}{dvisvgm}\do - {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% - {\def\noexpand\Gin@driver{\@@tmp.def}}}% + {\edef\@@tmp{% + \noexpand\DeclareKeys + { + \@@tmp .code = {\def\noexpand\Gin@driver{\@@tmp.def}}, + \@@tmp .usage=load + }}% \@@tmp} -\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} -\DeclareOption{oztex}{\ExecuteOptions{dvips}} -\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} -\DeclareOption{dvipdfm}{\ExecuteOptions{dvipdfmx}} -\DeclareOption{xcdraw}{\def\XC@@xcd@{1}} -\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}} -\DeclareOption{fixinclude}{\def\XC@@xcf@{1}} -\DeclareOption{prologue}{\def\XC@@xcp@{1}} -\DeclareOption{kernelfbox}{\XC@@fboxfalse} -\DeclareOption{showerrors}{\colorerrors@true} -\DeclareOption{hideerrors}{\colorerrors@false} -\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} -\DeclareOption*% - {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} +\DeclareKeys + { + ,dviwindo .code = {\SetKeys{dvipsone}} + ,dviwindo .usage = load + ,oztex .code = {\SetKeys{dvips}} + ,oztex .usage = load + ,xdvi .code = {\SetKeys{dvips,monochrome}} + ,xdvi .usage = load + ,dvipdfm .code = {\SetKeys{dvipdfmx}} + ,dvipdfm .usage = load + } +\DeclareKeys + { + ,xcdraw .code = {\def\XC@@xcd@{1}} + ,xcdraw .usage = load %TODO check + ,noxcdraw .code = {\def\XC@@xcd@{-1}} + ,noxcdraw .usage = load %TODO check + ,fixinclude .code = {\def\XC@@xcf@{1}} + ,fixinclude .usage = load %TODO check + ,prologue .code = {\def\XC@@xcp@{1}} + ,prologue .usage = load %TODO check + ,kernelfbox .code = {\XC@@fboxfalse} + ,kernelfbox .usage = load %TODO check + ,showerrors .code = {\colorerrors@true} + ,hideerrors .code = {\colorerrors@false} + ,debugshow .code = {\catcode`\^^A=9 \let\GDebug\typeout} + } \def\XC@@xcd@{-1} \def\XC@@xcf@{-1} \def\XC@@xcp@{-1} -\ExecuteOptions{natural,showerrors} +\SetKeys{natural,showerrors} +\let\XC@ExecuteOptions\ExecuteOptions +\ExplSyntaxOn +\def\ExecuteOptions{\keys_set_known:nn {xcolor}} +\ExplSyntaxOff \InputIfFileExists{color.cfg}{}{} -\let\@declareoption\XC@declareoption -\ProcessOptions\relax +\let\ExecuteOptions\XC@ExecuteOptions +\ProcessKeyOptions \edef\Gin@driver{\Gin@driver} \if!\Gin@driver! \PackageError{xcolor} @@ -266,7 +303,6 @@ \fi \fi \@namedef{ver@color.sty}{1999/02/16} -\XC@@pkg \long\def\@secondoffive#1#2#3#4#5{#2} \long\def\@thirdoffive#1#2#3#4#5{#3} \def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test} @@ -474,7 +510,8 @@ \def\XC@definecolor[#1]#2% {\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix} \def\XC@definec@lor[#1]#2[#3]#4#5% - {\begingroup + {% + \begingroup \XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}% \XC@logdef\@@nam \XC@getmodclr02{#4}{#5}{\let\@@tmp\relax}% @@ -977,57 +1014,6 @@ \def\XC@pdfborder#1 #2 #3\relax {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S% \edef\@pdfborder{\expandafter\XC@strip@comma\@@tmp,,\@nnil}} -\@ifXCopt{table}{% - \def\rowcolors - {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} - \def\rowc@lors{\@testopt{\rowc@l@rs}{}} - \def\rowc@l@rs[#1]#2#3#4% - {\global\rownum=\z@ - \global\@rowcolorstrue - \@ifxempty{#3}% - {\def\@oddrowcolor{\@norowcolor}}% - {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% - \@ifxempty{#4}% - {\def\@evenrowcolor{\@norowcolor}}% - {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% - \if@rowcmd - \def\@rowcolors - {#1\if@rowcolors - \noalign{\relax\ifnum\rownum<#2\@norowcolor\else - \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% - \fi}% - \else - \def\@rowcolors - {\if@rowcolors - \ifnum\rownum<#2\noalign{\@norowcolor}\else - #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi - \fi}% - \fi - \CT@everycr{\@rowc@lors\the\everycr}% - \ignorespaces} - \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} - \let\@rowcolors\@empty - \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} - \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} - \def\@norowcolor{\global\let\CT@row@color\relax} - \@norowcolor - \newif\if@rowcolors - \newif\if@rowcmd - \@ifundefined{rownum}{\newcount\rownum}{} - \def\CT@extract#1\columncolor#2#3\@nil - {\if!#2% - \let\CT@column@color\@empty - \else - \if[#2% - \expandafter\CT@extractb - \else - \XC@edef\XC@@tmp{#2}% - \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% - \expandafter\CT@extractd - \fi - {#1}#3\@nil - \fi} -}{} \def\extractcolorspec#1#2% {\XC@split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp} \def\extractcolorspecs#1#2#3% @@ -1232,6 +1218,7 @@ \def\XC@cnv@gray#1,% {\XC@ifxcase\tm {\XC@mod@rgb {\XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% + \XC@mod@gray{}% \XC@mod@cmy {\XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% \XC@mod@cmyk{\XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}% \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp @@ -1405,7 +1392,10 @@ \let\pst@getcolor\XC@getcolor \let\pst@usecolor\XC@usecolor \def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa} -\protected\def\normalcolor{\let\current@color\default@color\set@color} +\protected\def\normalcolor{% + \let\current@color\default@color + \let\XC@current@color\XC@default@color\XC@display} +\AtBeginDocument{\let\XC@default@color\XC@current@color} \AtBeginDocument{\let\default@color\current@color} \XC@ifcase\XC@@drv {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}% |