1%% 2%% This is file `xcolor.sty', 3%% generated with the docstrip utility. 4%% 5%% The original source files were: 6%% 7%% xcolor.dtx (with options: `package') 8%% 9%% IMPORTANT NOTICE: 10%% 11%% For the copyright see the source file. 12%% 13%% Any modified versions of this file must be renamed 14%% with new filenames distinct from xcolor.sty. 15%% 16%% For distribution of the original source see the terms 17%% for copying and modification in the file xcolor.dtx. 18%% 19%% This generated file may be distributed as long as the 20%% original source files, as listed above, are part of the 21%% same distribution. (The sources need not necessarily be 22%% in the same archive or directory.) 23%% 24\ProvidesPackage{xcolor} 25 [2005/12/21 v2.09 LaTeX color extensions (UK)] 26%% 27%% ---------------------------------------------------------------- 28%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de> 29%% ---------------------------------------------------------------- 30%% 31%% Please send error reports and suggestions for 32%% improvements to the above email address. 33%% 34%% This package contains code copied from 35%% 36%% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)] 37%% Copyright (C) 1994--1999 David Carlisle 38%% 39%% which is part of the Standard LaTeX `Graphics Bundle'. 40%% 41\NeedsTeXFormat{LaTeX2e} 42\expandafter\edef\csname XC@catcodes\endcsname 43 {\catcode`\noexpand\@\the\catcode`\@\relax 44 \catcode`\noexpand\!\the\catcode`\!\relax 45 \catcode`\noexpand\:\the\catcode`\:\relax 46 \catcode`\noexpand\-\the\catcode`\-\relax 47 \catcode`\noexpand\+\the\catcode`\+\relax 48 \catcode`\noexpand\;\the\catcode`\;\relax 49 \catcode`\noexpand\/\the\catcode`\/\relax 50 \catcode`\noexpand\"\the\catcode`\"\relax 51 \catcode`\noexpand\>\the\catcode`\>\relax 52 \catcode`\noexpand\^^A\the\catcode`\^^A\relax} 53\catcode`\@=11 54\catcode`\!=12 55\catcode`\:=12 56\catcode`\-=12 57\catcode`\+=12 58\catcode`\;=12 59\catcode`\/=12 60\catcode`\"=12 61\catcode`\>=12 62\catcode`\^^A=\catcode`\% 63\edef\XC@@{\expandafter\noexpand\csname\string\XC@@\endcsname} 64\newif\ifcolors@ \colors@true 65\newif\ifcolorerrors@ 66\newif\ifglobalcolors \globalcolorsfalse 67\newif\ifdefinecolors \definecolorstrue 68\newif\ifconvertcolorsD 69\newif\ifconvertcolorsU 70\newif\ifblendcolors 71\newif\ifmaskcolors 72\newif\ifXC@@fbox \XC@@fboxtrue 73\newif\ifXC@@tst 74\def\c@lor@error#1% 75 {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc 76 \else\PackageWarning{xcolor}{Undefined color #1}\fi} 77\def\XC@append#1#2% 78 {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else 79 \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi} 80\def\XC@let@cc#1{\expandafter\XC@let@Nc\csname#1\endcsname} 81\providecommand*\@namelet[1]{\expandafter\XC@let@Nc\csname#1\endcsname} 82\def\XC@let@Nc#1#2{\expandafter\let\expandafter#1\csname#2\endcsname} 83\def\XC@let@cN#1{\expandafter\let\csname#1\endcsname} 84\def\@namexdef#1{\expandafter\xdef\csname #1\endcsname} 85\def\aftergroupdef#1#2% 86 {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#2}} 87\def\aftergroupedef#1#2% 88 {\edef\@@tmp{\def\noexpand#1{#2}}\expandafter\endgroup\@@tmp} 89\begingroup 90\catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13 91\catcode`\;=13 \catcode`\/=13 \catcode`\"=13 \catcode`\>=13 92\gdef\XC@edef#1#2% 93 {\begingroup 94 \ifnum\catcode`\!=13 \edef!{\string!}\fi 95 \ifnum\catcode`\:=13 \edef:{\string:}\fi 96 \ifnum\catcode`\-=13 \edef-{\string-}\fi 97 \ifnum\catcode`\+=13 \edef+{\string+}\fi 98 \ifnum\catcode`\;=13 \edef;{\string;}\fi 99 \ifnum\catcode`\"=13 \edef"{\string"}\fi 100 \ifnum\catcode`\>=13 \edef>{\string>}\fi 101 \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} 102\gdef\XC@mdef#1#2% 103 {\begingroup 104 \ifnum\catcode`\/=13 \edef/{\string/}\fi 105 \ifnum\catcode`\:=13 \edef:{\string:}\fi 106 \edef#1{#2}\@onelevel@sanitize#1\aftergroupdef#1#1} 107\endgroup 108\def\XC@sdef#1#2{\edef#1{#2}\@onelevel@sanitize#1} 109\def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@} 110\def\@@ifxempty#1#2\XC@@ 111 {\ifx#1\@@ifxempty 112 \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} 113\long\def\XC@ifxcase#1#2#3% 114 {\long\def\@@tmp##1##2% 115 {\ifx#1##1% 116 \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\@@tmp\fi}% 117 \@@tmp#2#1{#3}\@nnil\the\toks@} 118\long\def\XC@ifcase#1#2#3% 119 {\long\def\@@tmp##1##2% 120 {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@ 121 \toks@{##2}\expandafter\remove@to@nnil\else\expandafter\@@tmp\fi}% 122 \@@tmp#2{#1}{#3}\@nnil\the\toks@} 123\def\XC@@opt{,} 124\def\@ifXCopt#1% 125 {\@expandtwoargs\in@{,#1,}{\XC@@opt}% 126 \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} 127\let\XC@@pkg\relax 128\let\XC@declareoption\@declareoption 129\long\def\@declareoption#1#2% 130 {\XC@declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}} 131\def\selectcolormodel#1% 132 {\@ifundefined{XC@mod@#1}% 133 {\c@lor@error{target model `#1'}}% 134 {\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@natural 135 \def\XC@tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse 136 \else\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@named 137 \c@lor@error{target model `#1'} 138 \else 139 \edef\XC@tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue 140 \fi\fi}} 141\@tfor\@@tmp:={Hsb}{tHsb}{ignore}{named}{ps}{wave}\do 142 {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}} 143\@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do 144 {\expandafter\XC@sdef\csname XC@mod@\@@tmp\endcsname{\@@tmp}% 145 \edef\@@tmp 146 {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}% 147 \@@tmp} 148\DeclareOption{monochrome} 149 {\ExecuteOptions{hideerrors}% 150 \AtEndOfPackage 151 {\colors@false 152 \def\set@color{\c@lor@special\m@ne 153 {color push \current@color}\aftergroup\reset@color}% 154 \def\reset@color{\c@lor@special\m@ne{color pop}}% 155 \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}} 156\let\XC@@names\relax 157\providecommand*\colornameprefix{XC@} 158\let\XC@@nameprefix\colornameprefix 159\def\XC@declarenames#1#2#3% 160 {\DeclareOption{#1}{\XC@append\XC@@names 161 {#3\definecolorstrue\input{#2.def}\definecolorstrue 162 \let\colornameprefix\XC@@nameprefix}} 163 \DeclareOption{#1*}{\XC@append\XC@@names 164 {#3\definecolorsfalse\input{#2.def}\definecolorstrue 165 \let\colornameprefix\XC@@nameprefix}}} 166\XC@declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty} 167\XC@declarenames{svgnames}{svgnam}{} 168\XC@declarenames{x11names}{x11nam}{} 169\XC@declarenames{hksnames}% 170 {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{} 171\XC@declarenames{pmsnames}{pmsnam}{} 172\XC@declarenames{ralnames}{ralnam}{} 173\DeclareOption{table}{\XC@append\XC@@pkg{\RequirePackage{colortbl}}} 174\DeclareOption{fixpdftex}{\XC@append\XC@@pkg{\RequirePackage{pdfcolmk}}} 175\DeclareOption{pst}{\def\XC@pst{\RequirePackage{pstcol}}} 176\DeclareOption{hyperref} 177 {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do 178 {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1% 179 {\noexpand\XC@bordercolor{\@@tmp}{#1}}}% 180 \AtEndOfPackage 181 {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}% 182 \@tfor\@@tmp:={dvips}\do 183 {\ifx\GinDriver\@@tmp 184 \def\KV@Hyp@xpdfborder#1% 185 {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}% 186 \@break@tfor\fi}}} 187\providecommand*\Gin@driver{} 188\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}% 189 {emtex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}% 190 {tcidvi}{textures}{truetex}{vtex}{xetex}\do 191 {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}% 192 {\def\noexpand\Gin@driver{\@@tmp.def}}}% 193 \@@tmp} 194\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} 195\DeclareOption{oztex}{\ExecuteOptions{dvips}} 196\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}} 197\DeclareOption{xcdraw}{\def\XC@@xcd@{1}} 198\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}} 199\DeclareOption{prologue}{\def\XC@@xcp@{1}} 200\DeclareOption{kernelfbox}{\XC@@fboxfalse} 201\DeclareOption{showerrors}{\colorerrors@true} 202\DeclareOption{hideerrors}{\colorerrors@false} 203\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout} 204\DeclareOption*% 205 {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}} 206\def\XC@@xcd@{-1} 207\def\XC@@xcp@{-1} 208\ExecuteOptions{natural,showerrors} 209\InputIfFileExists{color.cfg}{}{} 210\let\@declareoption\XC@declareoption 211\ProcessOptions\relax 212\edef\Gin@driver{\Gin@driver} 213\if!\Gin@driver! 214 \PackageError{xcolor} 215 {No driver specified} 216 {You should make a default driver option in a file \MessageBreak 217 color.cfg\MessageBreak 218 eg: \protect\ExecuteOptions{dvips}} 219\else 220 \PackageInfo{xcolor}{Driver file: \Gin@driver} 221 \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{} 222 \def\@@tmp#1.def{\def\XC@@drv{#1}} 223 \expandafter\@@tmp\Gin@driver 224\fi 225\count@\XC@@xcd@ \advance\count@\XC@@xcp@\relax 226\ifnum\count@>-2 227 \XC@ifcase\XC@@drv 228 {{dvips,pctex32}% 229 {\def\@tempa{0} 230 \def\XC@special#1{\special{ps:XC!b}\special{"#1}\special{ps:XC!e}}}% 231 {pdftex}% 232 {\def\@tempa{1} 233 \def\XC@special#1{\pdfliteral{ q #1 Q }}}% 234 {dvipdfm}% 235 {\def\@tempa{1} 236 \def\XC@special#1{\special{pdf: content #1}}}% 237 }{\def\@tempa{-1}} 238 \ifnum\XC@@xcd@>\m@ne\let\XC@@xcd@\@tempa\fi 239 \ifnum\XC@@xcp@>\m@ne\let\XC@@xcp@\@tempa\fi 240 \ifnum\@tempa=0 \AtBeginDvi{\special{header=xcolor.pro}}\fi 241 \ifcase\XC@@xcp@ 242 \AtBeginDvi{\special{header=\jobname.xcp}} 243 \newwrite\XC@@xcp\immediate\openout\XC@@xcp=\jobname.xcp 244 \immediate\write\XC@@xcp{\@percentchar!} 245 \immediate\write\XC@@xcp{TeXDict begin} 246 \AtEndDocument 247 {\immediate\write\XC@@xcp{end}\immediate\closeout\XC@@xcp} 248 \fi 249\fi 250\@nameuse{XC@pst} 251\@namedef{ver@color.sty}{1999/02/16} 252\XC@@pkg 253\long\def\@secondoffive#1#2#3#4#5{#2} 254\long\def\@thirdoffive#1#2#3#4#5{#3} 255\def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test} 256\def\xglobal@test 257 {\expandafter\@tfor\expandafter\@@tmp 258 \expandafter:\expandafter=\xglobal@list\do 259 {\expandafter\ifx\@@tmp\@@tok 260 \aftergroup\let\aftergroup\xglobal@\@break@tfor\fi}% 261 \endgroup\global} 262\def\xglobal@stop{\let\xglobal@\@empty} 263\xglobal@stop 264\def\xglobal@list 265 {\definecolor\definecolors\definecolorset\colorlet\providecolor 266 \providecolors\providecolorset\blendcolors\maskcolors 267 \substitutecolormodel} 268\def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi} 269\def\GetGinDriver 270 {\@tempswafalse 271 \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}% 272 \do{\ifx\XC@@drv\@@tmp\@tempswatrue\@break@tfor\fi}% 273 \edef\GinDriver{\if@tempswa\XC@@drv\else hypertex\fi}} 274\def\@hex@Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi} 275\def\@hex@@Hex#1% 276 {\if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else 277 \if e#1E\else \if f#1f\else #1\fi\fi\fi\fi\fi\fi \@hex@Hex} 278\def\XC@strip@comma#1,#2% 279 {\ifx,#2% 280 #1\expandafter\remove@to@nnil\else#1 \expandafter\XC@strip@comma\fi 281 #2} 282{\catcode`Q=3 283 \gdef\XC@replace#1#2#3% 284 {\begingroup 285 \def\XC@repl@ce##1#2##2Q##3% 286 {\@ifxempty{##2}{\XC@r@pl@ce##1Q}{\XC@repl@ce##1##3##2Q{##3}}}% 287 \def\XC@r@pl@ce##1\@empty Q% 288 {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{##1}}% 289 \expandafter\XC@repl@ce\expandafter\@empty #1\@empty#2Q{#3}} 290} 291\def\XC@clean#1% 292 {\edef#1{ #1 }\edef#1{\expandafter\XC@strip@comma#1,,\@nnil}% 293 \edef#1{\expandafter\XC@cle@n#1\@empty}% 294 \edef#1{\expandafter\@gobbletwo#1}} 295\def\XC@cle@n#1 #2{,#1\ifx#2\@empty\else\expandafter\XC@cle@n\fi#2} 296\def\rdivide#1#2% 297 {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}% 298 \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax 299 \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else 300 \def\@sign{}\fi 301 \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi 302 \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen 303 \lshift\@tempdima \lshift\@tempdimb \fi\fi 304 \@tempcnta=\@tempdima \@tempcntb=\@tempdimb 305 \count@=\@tempcnta \divide\count@\@tempcntb 306 \edef\@@tmp{\number\count@.}% 307 \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide 308 \@tempswafalse \@rdivide 309 \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen@1sp\fi 310 \dimen@\@sign\dimen@ 311 \edef\@@tmp{\the\toks@\the\dimen@}% 312 \expandafter\endgroup\@@tmp} 313\def\@rdivide 314 {\multiply\count@\@tempcntb \advance\@tempcnta-\count@ 315 \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb 316 \if@tempswa\edef\@@tmp{\@@tmp\number\count@}\fi} 317\def\rmultiply#1#2% 318 {\begingroup 319 \edef\@@mul{#2}\@tempdima\the#1\relax 320 \afterassignment\@tempdimb\@tempcntb=\@@mul\p@ 321 \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else 322 \def\@sign{}\fi 323 \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi 324 \lshift\@tempdima \dimen@\z@ 325 \expandafter\@rmultiply\@@mul.0.\@nil 326 \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@ 327 \dimen@\@sign\dimen@ 328 \edef\@@tmp{#1\the\dimen@}% 329 \expandafter\endgroup\@@tmp} 330\def\@rmultiply#1.#2.#3\@nil 331 {\def\@@tmp{}% 332 \@tfor\@@mul:=#2\do 333 {\edef\@@tmp 334 {\advance\dimen@\@@mul\@tempdima \divide\dimen@10 \@@tmp}}% 335 \@@tmp} 336\def\lshift#1{#1\expandafter\lshift@\the#1} 337\def\llshift#1{\lshift#1\lshift#1} 338\def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:} 339\def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z@.#3\fi} 340\def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:} 341\def\llshiftnum@#1.#2#3#4.#5:% 342 {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z@.#4\fi} 343\def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@} 344\def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@} 345\def\rshift#1{#1\expandafter\rshift@\the#1} 346\def\rrshift#1{\rshift#1\rshift#1} 347\begingroup 348\catcode`P=12 349\catcode`T=12 350\lowercase 351 {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z@.##3\fi\p@} 352 \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}} 353\expandafter\endgroup\@@tmp 354\def\rshift@@#1#2% 355 {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi} 356\def\XC@inflate#1#2#3#4% 357 {\edef#4{#2,\ifx#1\XC@mod@cmyk #3\else 358 \ifx#1\XC@mod@gray ,,,#3,,,\else ,#3,\fi\fi}} 359\def\XC@vec#1,#2,#3,#4,#5,#6,#7,#8,#9% 360 {\def\@@tmp{}% 361 \XC@vec@{#1}{#5}% 362 \ifx,#2,\else 363 \XC@vec@{#2}{#6}\XC@vec@{#3}{#7}\ifx,#4,\else\XC@vec@{#4}{#8}\fi\fi 364 \aftergroupdef#9\@@tmp} 365\def\XC@vec@@{\edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}} 366\def\XC@add{\begingroup \let\XC@vec@\XC@add@ \XC@vec} 367\def\XC@add@#1#2% 368 {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}% 369 \advance\dimen@\@tempdima \rrshift\dimen@ \XC@vec@@} 370\def\XC@sub{\begingroup \let\XC@vec@\XC@sub@ \XC@vec} 371\def\XC@sub@#1#2{\XC@add@{#1}{-#2}} 372\def\XC@mul{\begingroup \let\XC@vec@\XC@mul@ \XC@vec} 373\def\XC@mul@#1#2% 374 {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \XC@vec@@} 375\def\XC@mix% 376 {\begingroup 377 \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima 378 \let\XC@vec@\XC@mix@ \XC@vec} 379\def\XC@mix@#1#2% 380 {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \XC@vec@@} 381\def\XC@calc@#1,#2,#3,#4,#5:#6% 382 {\XC@let@Nc\@@cmd{XC@calc#6}\@@cmd{#1}\@@tmp 383 \ifx,#2,\else 384 \@@cmd{#2}\@tempa\@@cmd{#3}\@tempb 385 \ifx,#4,% 386 \edef\@@tmp{\@@tmp,\@tempa,\@tempb}\else 387 \@@cmd{#4}\@tempc\edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}\fi\fi} 388\def\XC@calcC#1#2% 389 {\llshiftset\dimen@{-#1}\advance\dimen@100\p@ 390 \rrshift\dimen@ \XC@calcN{\strip@pt\dimen@}#2} 391\def\XC@calcD{\XC@c@lcD\@@scl{}} 392\def\XC@c@lcD#1#2#3#4% 393 {\dimen@#3\p@ \rdivide\dimen@{#1}\edef#4{\strip@pt\dimen@#2}} 394\def\XC@calcF#1#2% 395 {\edef#2{#1}\expandafter\XC@c@lcF#2.0.:#2} 396\def\XC@c@lcF#1.#2.#3:#4% 397 {\edef#4{\XC@c@@cR#200000:}% 398 \dimen@#1.5\p@ \afterassignment\dimen@\count@=\the\dimen@ 399 \edef#4% 400 {\ifnum#4>0 \ifnum\count@=0 \ifdim#1.5\p@<\z@ -\fi\fi\fi 401 \number\count@.#4}} 402\def\XC@calcH#1#2% 403 {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}% 404 \multiply\count@-\sixt@@n \advance\count@#1 405 \edef#2{\XC@@tmp\hexnumber@\count@}} 406\def\XC@calcM#1#2% 407 {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen@.5\p@ 408 \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}} 409\def\XC@calcN#1#2% 410 {\XC@calcR{#1}#2\edef#2{\expandafter\XC@c@lcN#200000:}} 411\def\XC@c@lcN#1.#200000#3:{#1\ifnum0#2=0 \else.#2\fi} 412\def\XC@calcR#1#2{\edef#2{#1}\edef#2{\expandafter\XC@c@lcR#2.0.:}} 413\def\XC@c@lcR#1.#2.#3:% 414 {\ifnum#10>0 1.00000\else 0.\ifnum#11<0 00000\else 415 \XC@c@@cR#200000:\fi\fi} 416\def\XC@c@@cR#1#2#3#4#5#6:{#1#2#3#4#5} 417\def\XC@calcS{\XC@c@lcS\@@scl{}} 418\def\XC@c@lcS#1#2#3#4% 419 {\lshiftset\dimen@{#3}% 420 \ifdim#1\p@<100\p@ 421 \dimen@\lshiftnum#1\dimen@ \rrshift\dimen@ \else 422 \dimen@#1\dimen@ \rshift\dimen@ \fi 423 \edef#4{\strip@pt\dimen@#2}} 424\def\XC@calcT#1#2% 425 {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@ 426 \edef#2% 427 {\ifdim\dimen@>\p@1\else\ifdim\dimen@<\z@0\else\strip@pt\dimen@\fi\fi}} 428\def\XC@calcU#1#2% 429 {\dimen@#1\p@ 430 \ifdim\dimen@=\p@\else 431 \afterassignment\dimen@\count@=\the\dimen@ 432 \relax\ifdim\dimen@=\z@\else 433 \ifdim#1\p@<\z@ \dimen@-\dimen@ \advance\dimen@\p@ \fi 434 \fi 435 \fi 436 \edef#2{\strip@pt\dimen@}} 437\providecommand*\rangeRGB{255} 438\providecommand*\rangeHSB{240} 439\providecommand*\rangeHsb{360} 440\providecommand*\rangetHsb{60,30;120,60;180,120;210,180;240,240} 441\providecommand*\rangeGray{15} 442\providecommand*\adjustUCRBG{1,1,1,1} 443\providecommand*\paperquality{1} 444\providecommand*\colorseriescycle{16} 445\def\XC@clr@rgb@white{1,1,1} 446\def\XC@clr@cmy@white{0,0,0} 447\def\XC@clr@cmyk@white{0,0,0,0} 448\def\XC@clr@hsb@white{\@@hue,0,1} 449\def\XC@clr@hsb@gray{\@@hue,0,0.5} 450\def\XC@clr@hsb@black{\@@hue,0,0} 451\def\XC@clr@gray@white{1} 452\@tfor\@@tmp:={grad}{last}{step}\do 453 {\XC@let@cN{XC@met@\@@tmp}\@@tmp} 454\def\definecolor{\@testopt{\XC@definecolor}{}} 455\def\XC@definecolor[#1]#2% 456 {\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix} 457\def\XC@definec@lor[#1]#2[#3]#4#5% 458 {\begingroup 459 \XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}% 460 \XC@logdef\@@nam 461 \XC@getmodclr02{#4}{#5}{\let\@@tmp\relax}% 462 {\ifx\@@mod\XC@mod@named 463 \XC@c@l@rlet\@@nam\@@clr 464 \else 465 \ifx\@@cls\XC@mod@ps 466 \edef\@@drv{\@@mod\space\@@clr}\def\@@hue{0}% 467 \edef\@@clr{\@nameuse{XC@clr@\@@mod @white}}% 468 \else 469 \ifconvertcolorsD 470 \let\@@tmp\@@mod\XC@sdef\@@mod{\XC@tgt@mod\@@tmp}% 471 \convertcolorspec\@@tmp\@@clr\@@mod\@@clr 472 \fi 473 \XC@coremodel\@@mod\@@clr 474 \csname color@\@@mod\expandafter\endcsname 475 \expandafter\@@drv\expandafter{\@@clr}% 476 \ifcase\XC@@xcp@ 477 \immediate\write\XC@@xcp{/\colornameprefix\@@nam{\expandafter 478 \XC@strip@comma\@@clr,,\@nnil}XC\@@mod}% 479 \let\@@cls\XC@mod@named 480 \fi 481 \ifx\@@cls\@empty\else 482 \let\@@tmp\@@cls 483 \@nameuse{define@color@\@@cls}\@@nam\@@drv 484 \csname color@\@@tmp\expandafter\endcsname 485 \expandafter\@@drv\expandafter{\@@nam}% 486 \fi 487 \fi 488 \toks@\expandafter{\@@drv}% 489 \edef\@@tmp 490 {\ifglobalcolors\global\else\xglobal@\fi 491 \noexpand\@namedef{\string\color@\@@nam}% 492 {\noexpand\xcolor@{\@@cls}{\the\toks@}{\@@mod}{\@@clr}}}% 493 \fi}% 494 \expandafter\endgroup\@@tmp\xglobal@stop} 495\def\XC@getmodclr#1#2#3#4% 496 {\ifnum\ifcase#1 \ifXC@@getmod1\else0 \fi \or1 \fi>0 497 \XC@mdef\@@mod{#3}\expandafter\XC@getmod\@@mod////////\XC@@ 498 \@ifundefinedmodel\@@Mod{\let\@@Mod\XC@mod@ignore}{}\fi 499 \@ifundefined{XC@mod@\@@mod}% 500 {\c@lor@error{model `\@@mod'}\@firstoftwo}% 501 {\ifcase#2\else 502 \XC@mdef\@@clr{#4}% 503 \edef\@@clr{\expandafter\XC@getclr\@@clr////////\XC@@}% 504 \ifx\@@cls\XC@mod@ps\else\XC@clean\@@clr\fi 505 \ifx\@@Mod\XC@mod@ignore\else 506 \convertcolorspec\@@mod\@@clr\@@Mod\@@clr 507 \ifnum#2>1 \let\@@mod\@@Mod\fi 508 \fi 509 \fi \@secondoftwo}} 510\def\XC@getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ 511 {\XC@g@tm@d0#1::\XC@@ \XC@getm@d1{#2}\XC@getm@d2{#3}% 512 \XC@getm@d3{#4}\XC@getm@d4{#5}\XC@getm@d5{#6}\XC@getm@d6{#7}% 513 \XC@getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}% 514\def\XC@getm@d#1#2% 515 {\edef\XC@@pos{#2}\XC@sdef\@@mod{\XC@tgt@mod\XC@@pos}% 516 \ifx\XC@@pos\@@mod\def\XC@@pos{#1}\expandafter\remove@to@nnil\fi}% 517\def\XC@g@tm@d#1#2:#3:#4\XC@@ 518 {\@ifxempty{#3}{\let\@@Mod\XC@mod@ignore\XC@getm@d0{#2}}% 519 {\def\@@Mod{#2}\XC@getm@d0{#3}}}% 520\def\XC@getclr#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@ 521 {\ifcase\XC@@pos\space #1\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi} 522\newif\ifXC@@getmod \XC@@getmodtrue 523\let\xdefinecolor\definecolor 524\def\providecolor{\@testopt{\XC@providecolor}{}} 525\def\XC@providecolor[#1]#2% 526 {\@testopt{\XC@providec@lor[#1]{#2}}\colornameprefix} 527\def\XC@providec@lor[#1]#2[#3]% 528 {\XC@edef\XC@@tmp{#2}% 529 \@ifundefinedcolor\XC@@tmp{\XC@definecolor[#1]{#2}[#3]}% 530 {\ifnum\XC@tracing>0 531 \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi 532 \@gobbletwo}} 533\def\xcolor@#1#2#3#4{#2} 534\def\colorlet{\@testopt{\XC@colorlet}{}} 535\def\XC@colorlet[#1]#2{\@testopt{\XC@col@rlet[#1]{#2}}{}} 536\def\XC@col@rlet[#1]#2[#3]#4% 537 {\begingroup 538 \edef\@@cls{#1}\XC@edef\@@nam{#2}\XC@sdef\@@mod{#3}\XC@edef\@@clr{#4}% 539 \XC@info\@@clr\@@tmp\XC@@tstfalse 540 \ifnum\@@tmp=\@ne\ifx\@@mod\@empty 541 \ifx\@@cls\@empty 542 \XC@@tsttrue 543 \else 544 \edef\@@tmp 545 {\expandafter\expandafter\expandafter\@secondoffive 546 \csname\string\color@\@@clr\endcsname}% 547 \ifx\@@cls\@@tmp\XC@@tsttrue\fi 548 \fi 549 \fi\fi 550 \ifXC@@tst 551 \XC@logdef\@@nam\XC@c@l@rlet\@@nam\@@clr 552 \else 553 \extractcolorspec\@@clr\@@clr 554 \ifx\@@mod\@empty\else 555 \expandafter\convertcolorspec\@@clr\@@mod\@@clr 556 \edef\@@clr{{\@@mod}{\@@clr}}\fi 557 \edef\@@tmp{\noexpand\XC@definecolor[\@@cls]{\@@nam}\@@clr}% 558 \fi 559 \expandafter\endgroup\@@tmp\xglobal@stop} 560\def\XC@c@l@rlet#1#2% 561 {\@ifundefinedcolor{#2}% 562 {\c@lor@error{`#2'}\let\@@tmp\@empty}% 563 {\edef\@@tmp 564 {\ifglobalcolors\global\else\xglobal@\fi 565 \noexpand\XC@let@cc{\string\color@#1}{\string\color@#2}}}} 566\def\DefineNamedColor#1% 567 {\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]} 568\def\preparecolor{\@testopt{\XC@preparecolor}{}} 569\def\XC@preparecolor[#1]#2% 570 {\@testopt{\XC@preparec@lor[#1]{#2}}\colornameprefix} 571\def\XC@preparec@lor[#1]#2[#3]#4#5% 572 {\XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}% 573 \XC@getmodclr01{#4}{#5}{}% 574 {\xdef\XC@@stack 575 {\ifx\XC@@stack\@empty\else\XC@@stack,\fi{#1}{\@@nam}{#3}% 576 {\ifx\@@Mod\XC@mod@ignore\@@mod\else\@@Mod\fi}{\@@clr}}}} 577\let\XC@@stack\@empty 578\def\definecolors#1% 579 {\let\XC@@cmd\definecolor\let\XC@@glb\xglobal@ 580 \expandafter\XC@definecolors#1,,} 581\def\XC@definecolors#1,% 582 {\@ifxempty{#1}{}{\expandafter\XC@definec@lors#1=#1=:\XC@definecolors}} 583\def\XC@definec@lors#1=#2=#3:% 584 {\XC@edef\@@nam{#1}\XC@edef\@@arg{#2}% 585 \let\next\XC@definec@l@rs\expandafter\next\XC@@stack,,\@nnil} 586\def\XC@definec@l@rs#1,% 587 {\ifx,#1,\let\next\remove@to@nnil\else\XC@defin@c@l@rs#1\fi\next} 588\def\XC@defin@c@l@rs#1#2#3#4#5% 589 {\def\@@tmp{#2}% 590 \ifx\@@tmp\@@arg 591 \let\xglobal@\XC@@glb\XC@@cmd[#1]{\@@nam}[#3]{#4}{#5}% 592 \let\next\remove@to@nnil 593 \fi} 594\def\providecolors#1% 595 {\let\XC@@cmd\providecolor\let\XC@@glb\xglobal@ 596 \expandafter\XC@definecolors#1,,} 597\def\definecolorset 598 {\let\XC@@cmd\definecolor\@testopt{\XC@definecolorset}{}} 599\def\XC@definecolorset[#1]#2#3#4#5% 600 {\XC@getmodclr10{#2}{}{}% 601 {\XC@@getmodfalse\XC@edef\XC@@tmp{#5}\let\XC@@glb\xglobal@ 602 \def\XC@definec@lorset##1,##2;% 603 {\@ifxempty{##1}{}% 604 {\let\xglobal@\XC@@glb 605 \XC@@cmd[#1]{#3##1#4}{\@@mod}{##2}\XC@definec@lorset}}% 606 \expandafter\XC@definec@lorset\XC@@tmp;,;\XC@@getmodtrue}} 607\def\providecolorset 608 {\let\XC@@cmd\providecolor\@testopt{\XC@definecolorset}{}} 609\def\preparecolorset 610 {\ifdefinecolors\let\XC@@cmd\definecolor\else\let\XC@@cmd\preparecolor\fi 611 \@testopt{\XC@definecolorset}{}} 612\def\definecolorseries#1#2#3% 613 {\@testopt{\XC@definecolorseries{#1}{#2}{#3}}{}} 614\def\XC@definecolorseries#1#2#3[#4]#5% 615 {\@testopt{\XC@definec@lorseries{#1}{#2}{#3}[#4]{#5}}{}} 616\def\XC@definec@lorseries#1#2#3[#4]#5[#6]#7% 617 {\begingroup 618 \XC@sdef\@@mod{#2}% 619 \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}% 620 \expandafter\convertcolorspec\@@clr\@@mod\@@clr 621 \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}% 622 \edef\@@met{#3}% 623 \ifx\@@met\XC@met@last 624 \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}% 625 \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp 626 \XC@inflate\@@mod\@@tmp\@@clr\@@tmp 627 \expandafter\XC@sub\@@tmp,\@@tmp 628 \else 629 \edef\@@tmp{#7}% 630 \fi 631 \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}% 632 \endgroup} 633\def\resetcolorseries{\@testopt{\XC@resetcolorseries}{}} 634\def\XC@resetcolorseries[#1]#2% 635 {\begingroup 636 \@namexdef 637 {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}% 638 \XC@let@Nc\@@tmp{\string\colorD@#2}% 639 \edef\@@met{\expandafter\@firstoftwo\@@tmp}% 640 \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% 641 \ifx\@@met\XC@met@step\else 642 \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}% 643 \expandafter\XC@calc@\@@tmp,,,,:D% 644 \fi 645 \@namexdef{\string\colorS@#2}{\@@tmp}% 646 \endgroup} 647\def\XC@step#1% 648 {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}% 649 \expandafter\XC@st@p\@@tmp{#1}% 650 \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}} 651\def\XC@st@p#1#2#3% 652 {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}% 653 \@whilenum\@tempcnta>\z@\do 654 {\XC@inflate\@@mod\@@tmp\@@vec\@@tmp 655 \expandafter\XC@add\@@tmp,\@@tmp \expandafter\XC@calc@\@@tmp,,,,:U% 656 \advance\@tempcnta\m@ne}} 657\def\XC@stepabs#1% 658 {\edef\@@tmp{\@nameuse{\string\colorB@#1}}% 659 \expandafter\XC@st@p\@@tmp{#1}% 660 \edef\@@tmp 661 {\def\noexpand\@@mod{\@@mod}\def\noexpand\@@clr{\@@tmp}}} 662\def\blendcolors{\@ifstar{\XC@blendcolors\colorblend}{\XC@blendcolors{}}} 663\def\XC@blendcolors#1#2% 664 {\edef\colorblend{#1}\XC@edef\XC@@tmp{#2}% 665 \ifx\XC@@tmp\@empty 666 \xglobal@\blendcolorsfalse 667 \else 668 \xglobal@\blendcolorstrue 669 \expandafter\XC@blendc@lors\XC@@tmp!!\@nil 670 \fi 671 \xglobalize@\colorblend \xglobal@stop} 672\def\XC@blendc@lors!#1!#2!#3\@nil 673 {\@ifxempty{#1}{}% 674 {\@ifxempty{#2}% 675 {\edef\colorblend{\colorblend!#1!white}}% 676 {\edef\colorblend{\colorblend!#1!#2}\XC@blendc@lors!#3!\@nil}}} 677\blendcolors{} 678\def\maskcolors{\@testopt{\XC@maskcolors}{}} 679\def\XC@maskcolors[#1]#2% 680 {\XC@edef\colormask{#2}% 681 \ifx\colormask\@empty 682 \xglobal@\maskcolorsfalse \def\XC@mmod{}\def\XC@mclr{}% 683 \else 684 \xglobal@\maskcolorstrue \extractcolorspecs\colormask\XC@mmod\XC@mclr 685 \@ifxempty{#1}{}% 686 {\convertcolorspec\XC@mmod\XC@mclr{#1}\XC@mclr \XC@sdef\XC@mmod{#1}}% 687 \XC@coremodel\XC@mmod\XC@mclr 688 \fi 689 \xglobalize@\colormask \xglobalize@\XC@mmod \xglobalize@\XC@mclr 690 \xglobal@stop} 691\maskcolors{} 692\DeclareRobustCommand\color 693 {\@ifnextchar[\@undeclaredcolor\@declaredcolor} 694\def\@undeclaredcolor[#1]#2% 695 {\begingroup 696 \let\@@cls\@empty 697 \XC@getmodclr12{#1}{#2}{}% 698 {\ifblendcolors 699 \ifx\colorblend\@empty\else 700 \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse 701 \XC@coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr 702 \fi 703 \fi 704 \ifconvertcolorsU 705 \edef\@@tmp{\XC@tgt@mod{\@@mod}}% 706 \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp 707 \fi 708 \ifmaskcolors 709 \convertcolorspec\@@mod\@@clr\XC@mmod\@@clr 710 \let\@@mod\XC@mmod 711 \XC@inflate\@@mod\XC@mclr\@@clr\@@tmp 712 \expandafter\XC@mul\@@tmp,\@@clr 713 \fi 714 \edef\@@tmp{\noexpand\XC@undeclaredcolor{\@@mod}{\@@clr}}% 715 \expandafter\endgroup\@@tmp}} 716\def\XC@undeclaredcolor#1#2% 717 {\@ifundefinedmodel{#1}% 718 {\c@lor@error{model `#1'}}% 719 {\@nameuse{color@#1}\current@color{#2}% 720 \edef\XC@current@color{\noexpand\xcolor@{}{\current@color}{#1}{#2}}% 721 \XC@display}} 722\def\@declaredcolor#1% 723 {\XC@edef\XC@@tmp{#1}\XC@@tstfalse 724 \ifcase\XC@type\XC@@tmp\relax \XC@@tsttrue\or \relax\else 725 \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi 726 \ifconvertcolorsU\XC@@tsttrue\fi 727 \fi 728 \ifXC@@tst 729 \expandafter\XC@declaredcolor\else 730 \expandafter\XC@declaredc@lor\fi} 731\def\XC@declaredcolor 732 {\XC@split\XC@@tmp 733 \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}% 734 \expandafter\endgroup\@@tmp} 735\def\XC@declaredc@lor 736 {\XC@let@Nc\XC@current@color{\string\color@\XC@@tmp}% 737 \edef\current@color{\XC@current@color}% 738 \XC@display} 739\def\textcolor#1#{\@textcolor{#1}} 740\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}} 741\def\pagecolor 742 {\begingroup 743 \let\ignorespaces\endgroup \let\set@color\set@page@color 744 \color} 745\def\colorbox#1#{\color@box{#1}} 746\def\color@box#1#2{\color@b@x\relax{\color#1{#2}}} 747\def\fcolorbox#1#{\color@fbox{#1}} 748\def\color@fbox#1#2#3#{\color@fb@x{#1}{#2}{#3}} 749\def\color@fb@x#1#2#3#4% 750 {\color@b@x{\fboxsep\z@\color#1{#2}\XC@fbox}% 751 {\@ifxempty{#3}{\color#1}{\color#3}{#4}}} 752\long\def\color@b@x#1#2#3% 753 {\leavevmode 754 \setbox\z@\hbox{\kern\fboxsep{\set@color#3}\kern\fboxsep}% 755 \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ 756 \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ 757 {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}} 758\def\XC@frameb@x#1% 759 {\hbox 760 {\@tempdima\fboxrule \advance\@tempdima\fboxsep 761 \advance\@tempdima\dp\@tempboxa 762 \setbox\@tempboxa\hbox 763 {\lower\@tempdima\hbox 764 {\vbox 765 {\kern\fboxrule 766 \hbox 767 {\kern\fboxrule#1% 768 \vbox{\kern\fboxsep\box\@tempboxa\kern\fboxsep}% 769 #1\kern\fboxrule}% 770 \kern\fboxrule}}}% 771 \@tempdima\wd\@tempboxa 772 \edef\@tempa{{\the\@tempdima}{\the\ht\@tempboxa}{\the\dp\@tempboxa}}% 773 \box\@tempboxa\kern-\@tempdima\expandafter\boxframe\@tempa}} 774\ifXC@@fbox 775 \let\@frameb@x\XC@frameb@x \let\XC@fbox\fbox 776\else 777 \def\XC@fbox{\let\@frameb@x\XC@frameb@x\fbox} 778\fi 779 780\ifnum\XC@@xcd@>\m@ne 781\def\XC@boxframe#1#2#3#4% 782 {\hbox{\sbox\z@{\ifdim\fboxrule>\z@ #4\fi}% 783 \wd\z@#1\relax\ht\z@#2\relax\dp\z@#3\relax\box\z@}} 784\fi 785\ifcase\XC@@xcd@ 786\providecommand*\color@block[3]% 787 {{\set@color\hbox 788 {\dimen@#3\edef\@tempa{ \number\dimen@\space}% 789 \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% 790 \dimen@#1\relax 791 \XC@special{\number\dimen@\@tempa XCcolorblock}}}} 792\providecommand*\boxframe[3]% 793 {\XC@boxframe{#1}{#2}{#3}% 794 {\dimen@#3\edef\@tempa{ \number\dimen@\space}% 795 \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}% 796 \dimen@#1\relax 797 \XC@special{\number\fboxrule\space\number\dimen@\@tempa XCboxframe}}} 798\or 799\providecommand*\boxframe[3]% 800 {\XC@boxframe{#1}{#2}{#3}% 801 {\dimen@#3\edef\@tempa{ 0 -\strip@pt\dimen@\space}% 802 \edef\@tempb{\advance\dimen@\the\dimen@}% 803 \dimen@#2\advance\dimen@-\fboxrule\@tempb 804 \edef\@tempb{ \strip@pt\dimen@\space re s}% 805 \dimen@#1\advance\dimen@-\fboxrule 806 \edef\@tempb{ cm\@tempa\strip@pt\dimen@\@tempb}% 807 \dimen@.5\fboxrule\edef\@tempa{ \strip@pt\dimen@}% 808 \XC@special 809 {0.996264 0 0 0.996264 0 0 cm 810 \strip@pt\fboxrule\space w [] 0 d 2 J 0 j 4 M 811 1 0 0 1\@tempa\@tempa\@tempb}}} 812\fi 813\providecommand*\color@block[3]% 814 {{\set@color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}} 815\providecommand*\boxframe[3]% 816 {\hbox 817 {\dimen@#2\advance\dimen@#3\relax 818 \lower#3\vbox 819 {\hrule\@height\fboxrule 820 \@tempdima-0.5\fboxrule \ifodd\fboxrule\advance\@tempdima\m@ne sp\fi 821 \kern\@tempdima 822 \hbox 823 {\advance\dimen@-\fboxrule 824 \vrule\@width\fboxrule\@height\dimen@\@depth\z@ 825 \@tempdima#1\advance\@tempdima-\tw@\fboxrule \kern\@tempdima 826 \vrule\@width\fboxrule\@height\dimen@\@depth\z@}% 827 \kern-0.5\fboxrule 828 \hrule\@height\fboxrule}}} 829\def\@xcolor@#1#2#3#4% 830 {\edef\@@mod{#3}\edef\@@clr{#4}% 831 \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi 832 \if@tempswa 833 \XC@let@Nc\@@tmp{XC@cnv@\@@mod @compl}% 834 \ifx\@@tmp\relax \expandafter\XC@calc@\@@clr,,,,:C\else 835 \expandafter\@@tmp\@@clr,\fi 836 \let\@@clr\@@tmp 837 \fi} 838\def\@xcolor@@#1!#2!#3!#4!#5\@nil 839 {\dimen@\@ifxempty{#1}{100}{#1}\p@ 840 \edef\@@mix{\@ifxempty{#2}{white}{#2}}% 841 \ifdim\dimen@=100\p@ 842 \expandafter\XC@postfix\@@mix]\relax 843 \else\ifdim\dimen@=\z@ 844 \extractcolorspecs\@@mix\@@mod\@@clr 845 \else 846 \XC@let@Nc\@@tmp{XC@clr@\@@mod @\@@mix}% 847 \ifx\@@tmp\relax 848 \extractcolorspec\@@mix\@@tmp 849 \ifx\@@mod\XC@mod@gray 850 \edef\@@mod{\expandafter\@firstoftwo\@@tmp}% 851 \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}% 852 \convertcolorspec\XC@mod@gray\@@clr\@@mod\@@clr 853 \else 854 \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp 855 \fi 856 \else 857 \ifx\@@mod\XC@mod@hsb\expandafter\XC@extract@hue\@@clr:\@@hue\fi 858 \fi 859 \XC@inflate\@@mod\@@clr\@@tmp\@@tmp 860 \expandafter\XC@mix\@@tmp,\@@clr 861 \fi\fi 862 \@ifxempty{#3}% 863 {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}% 864 {\@xcolor@@#3!#4!#5\@nil}} 865\def\XC@split#1% 866 {\begingroup\XC@edef\@@tmp{#1}\expandafter\XC@split@i\@@tmp>>\@nnil} 867\def\XC@split@i#1>% 868 {\def\@@tmp{#1}\XC@split@ii#1:\@nil \XC@func} 869\def\XC@split@ii#1:#2\@nil 870 {\@ifxempty{#2}{\XC@split@vi}{\XC@split@iii#1,,:#2}} 871\def\XC@split@iii#1,#2,#3:#4:% 872 {\edef\XC@@mod{#1}\let\@tempa\@empty 873 \ifx,#2,\XC@@tsttrue\@tempdima\z@\else\XC@@tstfalse\@tempdima#2\p@\fi 874 \XC@split@iv#4;,;} 875\def\XC@split@iv#1,#2;% 876 {\@ifxempty{#1}% 877 {\let\XC@@clr\@empty \@tempa \expandafter\XC@calc@\XC@@clr,,,,:U% 878 \let\@@mod\XC@@mod \let\@@clr\@@tmp} 879 {\XC@append\@tempa{\XC@split@v{#1}{#2}}% 880 \ifXC@@tst\advance\@tempdima#2\p@\fi 881 \XC@split@iv}} 882\def\XC@split@v#1#2% 883 {\def\@@tmp{#1}\XC@split@vi 884 \ifx\@@mod\XC@@mod\else 885 \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr 886 \fi 887 \dimen@#2\p@ \rdivide\dimen@\@tempdima 888 \edef\@@scl{\strip@pt\dimen@}% 889 \expandafter\XC@calc@\@@clr,,,,:S% 890 \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else 891 \XC@inflate\XC@@mod\XC@@clr\@@tmp\@@tmp 892 \expandafter\XC@add\@@tmp,\XC@@clr 893 \fi} 894\def\XC@split@vi{\count@\z@ \expandafter\XC@split@vii\@@tmp!\@nil} 895\def\XC@split@vii#1% 896 {\ifx#1-\advance\count@\@ne\expandafter\XC@split@vii 897 \else\expandafter\XC@split@viii\expandafter#1\fi} 898\def\XC@split@viii#1!#2\@nil 899 {\edef\@@nam{#1}\edef\@@mix{#2}% 900 \ifodd\count@\@tempswatrue\else\@tempswafalse\fi 901 \@ifundefinedcolor\@@nam 902 {\c@lor@error{`\@@nam'}\def\@@nam{black}}{}% 903 \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}} 904\def\XC@postfix#1#2]#3\relax 905 {\begingroup 906 \if[#1\@tempcnta#2\relax\XC@stepabs\@@nam 907 \else\@tempcnta\z@ 908 \@tfor\@@tok:=#1#2\do 909 {\if+\@@tok\advance\@tempcnta\@ne 910 \else\if-\@@tok\advance\@tempcnta\m@ne 911 \else\@tempcnta\z@\expandafter\@break@tfor\fi\fi}% 912 \ifnum\@tempcnta=\z@\relax\else\XC@step\@@nam\fi 913 \let\@@tmp\@empty 914 \fi\expandafter\endgroup\@@tmp} 915\def\XC@func#1>{\@ifxempty{#1}{\remove@to@nnil}{\XC@fun@#1,>\XC@func}} 916\def\XC@fun@#1,#2>{\@nameuse{XC@func@#1}#2,,>} 917\def\XC@func@wheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}0} 918\def\XC@func@twheel#1,#2,#3>{\XC@func@wh@el{#1}{#2}1} 919\def\XC@func@wh@el#1#2#3% 920 {\convertcolorspec\@@mod\@@clr 921 {\ifcase#3 \XC@mod@Hsb\or\XC@mod@tHsb\fi}\@@clr 922 \expandafter\XC@extract@hue\@@clr:\@@hue \dimen@#1\p@ 923 \@ifxempty{#2}{}% 924 {\rdivide\dimen@{#2}\lshift\dimen@ 925 \dimen@\rangeHsb\dimen@\rshift\dimen@}% 926 \advance\dimen@\@@hue\p@ \rdivide\dimen@\rangeHsb 927 \edef\@@hue{\strip@pt\dimen@}\XC@calcU\@@hue\@@hue 928 \ifcase#3 929 \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr 930 \or 931 \XC@c@lcS\rangeHsb{}\@@hue\@@hue 932 \expandafter\XC@replace@hue\@@clr:\@@hue,\@@clr 933 \convertcolorspec\XC@mod@tHsb\@@clr\XC@mod@hsb\@@clr 934 \fi 935 \let\@@mod\XC@mod@hsb} 936\def\XC@display 937 {\XC@bcolor\XC@let@cN{\string\color@.}\XC@current@color 938 \ifnum\XC@type{.}=1 939 \PackageWarning{xcolor}{Incompatible color definition}\else 940 \ifnum\XC@tracing>2 941 \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}% 942 \PackageInfo{xcolor}{Setting color `\XC@current@color'}% 943 \endgroup 944 \fi\fi 945 \XC@mcolor\set@color\XC@ecolor\ignorespaces} 946\let\XC@bcolor\relax 947\let\XC@mcolor\relax 948\let\XC@ecolor\relax 949\def\XC@bordercolor#1#2% 950 {\extractcolorspec{#2}\XC@@tmp 951 \expandafter\convertcolorspec\XC@@tmp\XC@mod@rgb\XC@@tmp 952 \expandafter\edef\csname @#1bordercolor\endcsname 953 {\expandafter\XC@strip@comma\XC@@tmp,\@nnil}} 954\def\XC@pdfborder#1 #2 #3\relax 955 {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S% 956 \edef\@pdfborder{\expandafter\XC@strip@comma\@@tmp,\@nnil}} 957\@ifXCopt{table}{% 958 \def\rowcolors 959 {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} 960 \def\rowc@lors{\@testopt{\rowc@l@rs}{}} 961 \def\rowc@l@rs[#1]#2#3#4% 962 {\global\rownum=\z@ 963 \global\@rowcolorstrue 964 \@ifxempty{#3}% 965 {\def\@oddrowcolor{\@norowcolor}}% 966 {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% 967 \@ifxempty{#4}% 968 {\def\@evenrowcolor{\@norowcolor}}% 969 {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% 970 \if@rowcmd 971 \def\@rowcolors 972 {#1\if@rowcolors 973 \noalign{\relax\ifnum\rownum<#2\@norowcolor\else 974 \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% 975 \fi}% 976 \else 977 \def\@rowcolors 978 {\if@rowcolors 979 \ifnum\rownum<#2\noalign{\@norowcolor}\else 980 #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi 981 \fi}% 982 \fi 983 \CT@everycr{\@rowc@lors\the\everycr}% 984 \ignorespaces} 985 \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} 986 \let\@rowcolors\@empty 987 \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} 988 \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} 989 \def\@norowcolor{\global\let\CT@row@color\relax} 990 \@norowcolor 991 \newif\if@rowcolors 992 \newif\if@rowcmd 993 \@ifundefined{rownum}{\newcount\rownum}{} 994 \def\CT@extract#1\columncolor#2#3\@nil 995 {\if!#2% 996 \let\CT@column@color\@empty 997 \else 998 \if[#2% 999 \expandafter\CT@extractb 1000 \else 1001 \XC@edef\XC@@tmp{#2}% 1002 \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}% 1003 \expandafter\CT@extractd 1004 \fi 1005 {#1}#3\@nil 1006 \fi} 1007}{} 1008\def\extractcolorspec#1#2% 1009 {\XC@split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp} 1010\def\extractcolorspecs#1#2#3% 1011 {\extractcolorspec{#1}#3% 1012 \edef#2{\expandafter\@firstoftwo#3}% 1013 \edef#3{\expandafter\@secondoftwo#3}} 1014\def\XC@extract@hue#1,#2:#3{\edef#3{#1}} 1015\def\XC@replace@hue#1,#2:#3,#4{\edef#4{#3,#2}} 1016\def\@ifundefinedcolor#1{\@ifundefined{\string\color@#1}} 1017\def\@ifundefinedmodel#1{\@ifundefined{color@#1}} 1018\def\XC@type#1% 1019 {\expandafter\expandafter\expandafter\XC@typ@ 1020 \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@} 1021\def\XC@typ@#1#2#3#4\XC@@ 1022 {\ifx#1\relax 0\else 1023 \ifx#1\xcolor@ 1024 \ifx$#2$% 1025 \ifx$#3$4\else3\fi\@gobbletwo 1026 \else2\fi\@gobbletwo 1027 \else1\fi 1028 \fi} 1029\def\XC@info#1#2% 1030 {\XC@edef#2{#1}% 1031 \if.#2\def#2{0}\else\expandafter\in@\expandafter>\expandafter{#2}% 1032 \ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}% 1033 \ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}% 1034 \ifin@\def#2{2}\else\edef#2{\noexpand\in@{/-}{/#2}}#2% 1035 \edef#2{\ifin@2\else1\fi}\fi\fi\fi\fi} 1036\def\tracingcolors{\begingroup\afterassignment\XC@tracingcolors\count@} 1037\def\XC@tracingcolors{\aftergroupdef\XC@tracing{\the\count@}} 1038\tracingcolors=0 1039\def\XC@logdef#1% 1040 {\ifnum\XC@tracing>1 1041 \@ifundefinedcolor{#1}% 1042 {\ifnum\XC@tracing>2 1043 \PackageInfo{xcolor}{Defining color `#1'}% 1044 \fi}% 1045 {\PackageInfo{xcolor}{Redefining color `#1'}}% 1046 \fi} 1047\newenvironment*{testcolors}[1][rgb,cmyk,hsb,HTML]% 1048 {\let\@@nam\@empty\count@\z@ 1049 \@for\@@tmp:=#1\do 1050 {\advance\count@\@ne 1051 \XC@sdef\@@tmp{\@@tmp}\edef\@@nam{\@@nam{\@@tmp}}}% 1052 \edef\@@num{\the\count@}% 1053 \def\XC@@gt{\textgreater}\def\@@tmp{OT1}% 1054 \ifx\f@encoding\@@tmp 1055 \@expandtwoargs\in@{,\f@family,}{,cmtt,pcr,}% 1056 \ifin@\def\XC@@gt{>}\fi 1057 \fi 1058 \def\XC@@xcp@{-1}\ifnum\XC@tracing>1 \def\XC@tracing{1}\fi 1059 \def\testcolor{\@testopt{\@testcolor}{}}% 1060 \def\@testcolor[##1]##2% 1061 {\XC@mdef\@@mod{##1}\XC@edef\@@clr{##2}% 1062 \ifx\@@mod\@empty 1063 \let\@@arg\@@clr\XC@replace\@@arg>\XC@@gt\else 1064 \edef\@@arg{[\@@mod]{\@@clr}}\XC@definecolor[]{*}\@@mod\@@clr 1065 \def\@@clr{*}\fi 1066 \XC@append\@@arg{&}\extractcolorspecs\@@clr\@@mod\@@clr 1067 \@testc@lor}% 1068 \def\@testc@lor 1069 {\count@\z@ 1070 \expandafter\@tfor\expandafter\@@tmp\expandafter:\expandafter=\@@nam\do 1071 {\ifx\@@clr\@empty 1072 \edef\@@cmd{\noexpand\textbf{\@@tmp}}% 1073 \else 1074 \convertcolorspec\@@mod\@@clr\@@tmp\@@cmd 1075 \edef\@@cmd 1076 {\noexpand\@testc@l@r{\@@tmp}{\@@cmd}% 1077 \ifx\@@mod\@@tmp\noexpand\underline\fi 1078 {\expandafter\XC@strip@comma\@@cmd,,\@nnil}}% 1079 \fi 1080 \expandafter\XC@append\expandafter\@@arg\expandafter{\@@cmd}% 1081 \advance\count@\@ne 1082 \ifnum\count@=\@@num\XC@append\@@arg{\\}\else\XC@append\@@arg{&}\fi}% 1083 \@@arg}% 1084 \def\@testc@l@r##1##2% 1085 {\fboxsep\z@\fbox{\colorbox[##1]{##2}{\phantom{XX}}} }% 1086 \tabular{@{}l*{\@@num}{l}@{}}% 1087 \def\@@arg{\textbf{color}& }\let\@@clr\@empty\@testc@lor}% 1088 {\endtabular\ignorespacesafterend} 1089\def\color@setgroup{\begingroup\set@color} 1090\let\color@begingroup\begingroup 1091\def\color@endgroup{\endgraf\endgroup} 1092\def\color@hbox{\hbox\bgroup\color@begingroup} 1093\def\color@vbox{\vbox\bgroup\color@begingroup} 1094\def\color@endbox{\color@endgroup\egroup} 1095\def\convertcolorspec#1#2#3#4% 1096 {\begingroup 1097 \XC@sdef\sm{#1}\XC@sdef\tm{#3}\edef\@@tmp{#2}% 1098 \ifx\sm\XC@mod@named\extractcolorspecs\@@tmp\sm\@@tmp\fi 1099 \ifx\sm\tm\else\csname XC@cnv@\sm\expandafter\endcsname\@@tmp,\fi 1100 \aftergroupdef#4\@@tmp} 1101\def\XC@coremodel#1#2% 1102 {\XC@ifxcase#1% 1103 {\XC@mod@RGB {\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% 1104 \XC@mod@HTML{\convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb}% 1105 \XC@mod@Hsb {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% 1106 \XC@mod@tHsb{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% 1107 \XC@mod@HSB {\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% 1108 \XC@mod@Gray{\convertcolorspec#1#2\XC@mod@gray#2\let#1\XC@mod@gray}% 1109 \XC@mod@wave{\convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb}% 1110 \XC@mod@named{}% 1111 \XC@mod@ps{}}% 1112 {\expandafter\XC@calc@#2,,,,:N\let#2\@@tmp}} 1113\def\XC@cnv@rgb#1,#2,#3,% 1114 {\XC@ifxcase\tm 1115 {\XC@mod@cmy {\XC@calc@#1,#2,#3,,:C}% 1116 \XC@mod@cmyk 1117 {\XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,}% 1118 \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:M}% 1119 \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calc@#1,#2,#3,,:M% 1120 \expandafter\XC@calc@\@@tmp,,:H% 1121 \expandafter\XC@cnv@rgb@HTML\@@tmp,}% 1122 \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,}% 1123 \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@cnv@gray\@@tmp,}}% 1124 {\XC@cnv@rgb@hsb#1,#2,#3,\XC@cnv@hsb@}} 1125\def\XC@cnv@rgb@ 1126 {\ifx\tm\XC@mod@rgb\else\expandafter\XC@cnv@rgb\@@tmp,\fi} 1127\def\XC@cnv@rgb@hsb#1,#2,#3,% 1128 {\count@\z@ 1129 \ifdim#2\p@>#1\p@ \else\advance\count@4 \fi 1130 \ifdim#3\p@>#2\p@ \else\advance\count@2 \fi 1131 \ifdim#1\p@>#3\p@ \else\advance\count@1 \fi 1132 \ifcase\count@\or 1133 \XC@c@v@rgb@hsb{#3}{#2}{#1}3{}\or 1134 \XC@c@v@rgb@hsb{#2}{#1}{#3}1{}\or 1135 \XC@c@v@rgb@hsb{#2}{#3}{#1}3-\or 1136 \XC@c@v@rgb@hsb{#1}{#3}{#2}5{}\or 1137 \XC@c@v@rgb@hsb{#3}{#1}{#2}5-\or 1138 \XC@c@v@rgb@hsb{#1}{#2}{#3}1-\or 1139 \def\@tempa{0}\def\@tempb{0}\XC@calcN{#3}\@tempc 1140 \fi 1141 \edef\@@tmp{\@tempa,\@tempb,\@tempc}} 1142\def\XC@c@v@rgb@hsb#1#2#3#4#5% 1143 {\XC@calcN{#1}\@tempc \llshiftset\dimen@{#1}% 1144 \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@ 1145 \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@ 1146 \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}% 1147 \edef\@tempa{\ifdim\@tempdima>\p@1\else\strip@pt\@tempdima\fi}% 1148 \rdivide\@tempdimb\dimen@ 1149 \edef\@tempb{\strip@pt\@tempdimb}} 1150\def\XC@cnv@rgb@gray#1,#2,#3,% 1151 {\llshiftset\dimen@{#1}\@tempdima30\dimen@ 1152 \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@ 1153 \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@ 1154 \rrshift\@tempdima \rdivide\@tempdima{100}% 1155 \edef\@@tmp{\strip@pt\@tempdima}} 1156\def\XC@cnv@rgb@HTML#1,#2,#3,% 1157 {\edef\@@tmp{#1#2#3}} 1158\def\XC@cnv@cmy#1,#2,#3,% 1159 {\XC@ifxcase\tm 1160 {\XC@mod@cmyk{\XC@cnv@cmy@cmyk#1,#2,#3,}% 1161 \XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp}% 1162 \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp 1163 \XC@cnv@gray\@@tmp,}}% 1164 {\XC@calc@#1,#2,#3,,:C\XC@cnv@rgb@}} 1165\def\XC@cnv@cmy@cmyk#1,#2,#3,% 1166 {\edef\@@scl 1167 {\ifdim#1\p@<#2\p@ 1168 \ifdim#1\p@<#3\p@ #1\else #3\fi \else 1169 \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}% 1170 \expandafter\XC@calc@\adjustUCRBG,:S% 1171 \expandafter\XC@c@v@cmy@cmyk\@@tmp,#1,#2,#3,} 1172\def\XC@c@v@cmy@cmyk#1,#2,#3,#4,#5,#6,#7,% 1173 {\XC@add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}% 1174 \expandafter\XC@calc@\@@tmp,:N} 1175\def\XC@cnv@cmyk#1,#2,#3,#4,% 1176 {\XC@ifxcase\tm 1177 {\XC@mod@gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% 1178 \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp}% 1179 \XC@mod@Gray{\XC@cnv@rgb@gray#1,#2,#3,\edef\@@arg{#4}% 1180 \XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp \XC@cnv@gray\@@tmp,}}% 1181 {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% 1182 \ifx\tm\XC@mod@cmy\else\expandafter\XC@cnv@cmy\@@tmp,\fi}} 1183\def\XC@cnv@cmyk@cmy#1,#2,#3,#4,% 1184 {\edef\@@arg{#4}\XC@calc@#1,#2,#3,,:T} 1185\def\XC@cnv@hsb#1,#2,#3,% 1186 {\XC@ifxcase\tm 1187 {\XC@mod@Hsb {\XC@cnv@hsb@Hsb#1,#2,#3,}% 1188 \XC@mod@tHsb{\XC@cnv@hsb@Hsb#1,#2,#3,\expandafter\XC@cnv@Hsb\@@tmp,}% 1189 \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:M}}% 1190 {\XC@cnv@hsb@rgb#1,#2,#3,\XC@cnv@rgb@}} 1191\def\XC@cnv@hsb@ 1192 {\ifx\tm\XC@mod@hsb\else\expandafter\XC@cnv@hsb\@@tmp,\fi} 1193\def\XC@cnv@hsb@rgb#1,#2,#3,% 1194 {\llshiftset\dimen@{#1}\dimen@6\dimen@ \rrshift\dimen@ 1195 \afterassignment\dimen@\count@=\the\dimen@ 1196 \edef\@@tmp{\strip@pt\dimen@}% 1197 \ifodd\count@\else\XC@calcC\@@tmp\@@tmp\fi 1198 \edef\@@tmp 1199 {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or 1200 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}% 1201 \edef\@@scl{#2}\expandafter\XC@calc@\@@tmp,,:S% 1202 \expandafter\XC@calc@\@@tmp,,:C% 1203 \edef\@@scl{#3}\expandafter\XC@calc@\@@tmp,,:S% 1204 \expandafter\XC@calc@\@@tmp,,:N} 1205\def\XC@cnv@hsb@Hsb#1,#2,#3,% 1206 {\XC@c@lcS\rangeHsb{,#2,#3}{#1}\@@tmp} 1207\def\XC@cnv@gray#1,% 1208 {\XC@ifxcase\tm 1209 {\XC@mod@rgb {\XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% 1210 \XC@mod@cmy {\XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% 1211 \XC@mod@cmyk{\XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}% 1212 \XC@mod@RGB {\edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp 1213 \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}% 1214 \XC@mod@HTML{\edef\@@scl{\@cclv}\XC@calcM{#1}\@@tmp 1215 \XC@calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}}% 1216 \XC@mod@HSB {\edef\@@scl{\rangeHSB}\XC@calcM{#1}\@@tmp 1217 \edef\@@tmp{0,0,\@@tmp}}% 1218 \XC@mod@Gray{\edef\@@scl{\rangeGray}\XC@calcM{#1}\@@tmp}}% 1219 {\XC@calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}} 1220\def\XC@cnv@RGB#1,#2,#3,% 1221 {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:D\XC@cnv@rgb@} 1222\def\XC@cnv@HTML#1,% 1223 {\edef\@@tmp{\expandafter\@hex@Hex#1\relax}\expandafter\XC@cnv@HTML@\@@tmp 1224 \edef\@@scl{\@cclv}\expandafter\XC@calc@\@@tmp,,:D\XC@cnv@rgb@} 1225\def\XC@cnv@HTML@#1#2#3#4#5#6% 1226 {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}} 1227\def\XC@cnv@Hsb#1,#2,#3,% 1228 {\ifx\tm\XC@mod@tHsb\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@Hsb@ 1229 \else\XC@cnv@Hsb@hsb#1,#2,#3,\XC@cnv@hsb@\fi} 1230\def\XC@cnv@Hsb@hsb#1,#2,#3,% 1231 {\XC@c@lcD\rangeHsb{,#2,#3}{#1}\@@tmp} 1232\def\XC@cnv@@Hsb#1,#2,#3,#4% 1233 {\dimen@\rangeHsb\p@ \advance\dimen@\p@ \edef\@@tmp{\strip@pt\dimen@}% 1234 \edef\@@tmp{0,0;\rangetHsb;\rangeHsb,\rangeHsb;\@@tmp,\@@tmp;}% 1235 \dimen@#1\p@ \expandafter#4\@@tmp\@nnil 1236 \edef\@@tmp{\strip@pt\dimen@,#2,#3}} 1237\def\XC@cnv@Hsb@#1,#2;#3,#4;% 1238 {\ifdim\dimen@<#4\p@ 1239 \@tempdima#3\p@ \advance\@tempdima-#1\p@ 1240 \@tempdimb#4\p@ \advance\@tempdimb-#2\p@ 1241 \rdivide\@tempdima\@tempdimb 1242 \advance\dimen@-#2\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% 1243 \advance\dimen@#1\p@ \expandafter\remove@to@nnil 1244 \else 1245 \def\@@tmp{\XC@cnv@Hsb@#3,#4;}\expandafter\@@tmp 1246 \fi} 1247\def\XC@cnv@tHsb#1,#2,#3,% 1248 {\XC@cnv@@Hsb#1,#2,#3,\XC@cnv@tHsb@ 1249 \ifx\tm\XC@mod@Hsb\else\expandafter\XC@cnv@Hsb\@@tmp,\fi} 1250\def\XC@cnv@tHsb@#1,#2;#3,#4;% 1251 {\ifdim\dimen@<#3\p@ 1252 \@tempdima#4\p@ \advance\@tempdima-#2\p@ 1253 \@tempdimb#3\p@ \advance\@tempdimb-#1\p@ 1254 \rdivide\@tempdima\@tempdimb 1255 \advance\dimen@-#1\p@ \rmultiply\dimen@{\strip@pt\@tempdima}% 1256 \advance\dimen@#2\p@ \expandafter\remove@to@nnil 1257 \else 1258 \def\@@tmp{\XC@cnv@tHsb@#3,#4;}\expandafter\@@tmp 1259 \fi} 1260\def\XC@cnv@HSB#1,#2,#3,% 1261 {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:D\XC@cnv@hsb@} 1262\def\XC@cnv@Gray#1,% 1263 {\XC@c@lcD\rangeGray{}{#1}\@@tmp \XC@cnv@gray\@@tmp,} 1264\def\XC@cnv@wave#1,% 1265 {\XC@cnv@wave@hsb#1,\XC@cnv@hsb@} 1266\def\XC@cnv@wave@hsb#1,% 1267 {\@tempdima#1\p@ 1268 \ifdim\@tempdima<440\p@ 1269 \XC@c@v@wave@hsb{-.0166667}{7.33333}4{}\else 1270 \ifdim\@tempdima<490\p@ 1271 \XC@c@v@wave@hsb{.02}{-8.8}4-\else 1272 \ifdim\@tempdima<510\p@ 1273 \XC@c@v@wave@hsb{-.05}{25.5}2{}\else 1274 \ifdim\@tempdima<580\p@ 1275 \XC@c@v@wave@hsb{.0142857}{-7.28571}2-\else 1276 \ifdim\@tempdima<645\p@ 1277 \XC@c@v@wave@hsb{-.0153846}{9.92308}0{}\else 1278 \dimen@\z@ \fi\fi\fi\fi\fi 1279 \divide\dimen@6\relax 1280 \edef\@@tmp{\strip@pt\dimen@,1,}% 1281 \ifdim\@tempdima<420\p@ 1282 \XC@c@v@wave@hsb{.0175}{-6.35}0{}\else 1283 \ifdim\@tempdima>700\p@ 1284 \XC@c@v@wave@hsb{-.00875}{7.125}0{}\else 1285 \dimen@\p@ \fi\fi 1286 \edef\@@tmp{\@@tmp\strip@pt\dimen@}} 1287\def\XC@c@v@wave@hsb#1#2#3#4% 1288 {\dimen@#1\@tempdima \advance\dimen@#2\p@ 1289 \XC@calcR{\strip@pt\dimen@}\@tempa 1290 \dimen@#4\@tempa\p@ \advance\dimen@#3\p@} 1291\def\XC@cnv@cmyk@compl#1,#2,#3,#4,% 1292 {\XC@cnv@cmyk@cmy#1,#2,#3,#4,% 1293 \expandafter\XC@calc@\@@tmp,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,} 1294\def\XC@cnv@hsb@compl#1,#2,#3,% 1295 {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p@-\fi-5\p@ 1296 \rshift\dimen@ \edef\@@tmp{\strip@pt\dimen@}% 1297 \lshiftset\dimen@{#3}\@tempdima#2\dimen@ 1298 \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@ 1299 \ifdim\@tempdimb=\z@ 1300 \edef\@@tmp{\@@tmp,0,0}% 1301 \else 1302 \rdivide\@tempdima\@tempdimb \rshift\@tempdimb 1303 \edef\@@tmp{\@@tmp,\strip@pt\@tempdima,\strip@pt\@tempdimb}% 1304 \fi} 1305\def\substitutecolormodel#1#2% 1306 {\XC@sdef\XC@@tmp{\expandafter\XC@substitutecolormodel#2/ignore/\@nnil}% 1307 \ifx\XC@@tmp\XC@mod@ignore 1308 \XC@let@cN{color@#1}\color@ignore 1309 \else 1310 \expandafter\edef\csname color@#1\endcsname##1##2% 1311 {\noexpand\convertcolorspec 1312 \expandafter\noexpand\csname XC@mod@#1\endcsname{##2}% 1313 \expandafter\noexpand\csname XC@mod@\XC@@tmp\endcsname 1314 \noexpand\XC@@tmp\noexpand\expandafter 1315 \expandafter\noexpand\csname color@\XC@@tmp\endcsname 1316 \noexpand\expandafter##1\noexpand\expandafter{\noexpand\XC@@tmp}}% 1317 \fi 1318 \expandafter\xglobalize@\csname color@#1\endcsname \xglobal@stop 1319 \PackageInfo{xcolor}{Model `#1' substituted by `\XC@@tmp'}} 1320\def\XC@substitutecolormodel#1/% 1321 {\@ifundefinedmodel{#1}{\XC@substitutecolormodel}{#1\remove@to@nnil}} 1322\def\color@ignore#1#2{\def#1{}} 1323\@ifundefinedmodel{rgb}% 1324 {\substitutecolormodel{rgb}{RGB/HTML/hsb/Hsb/HSB/cmy/cmyk/gray/Gray}}{} 1325\@ifundefinedmodel{cmyk}{\substitutecolormodel{cmyk}{cmy/rgb}}{} 1326\@ifundefinedmodel{cmy}% 1327 {\PackageInfo{xcolor}{Model `cmy' substituted by `cmy0'} 1328 \def\color@cmy#1#2{\color@cmyk#1{#2,0}}}{} 1329\@ifundefinedmodel{hsb}{\@tempswatrue}% 1330 {\XC@ifcase\XC@@drv{{dvipdfm,textures}\@tempswatrue}\@tempswafalse} 1331\if@tempswa 1332 \substitutecolormodel{hsb}{Hsb/HSB/rgb} 1333\fi 1334\@ifundefinedmodel{RGB}% 1335 {\substitutecolormodel{RGB}{HTML/rgb}} 1336 {\PackageInfo{xcolor}{Model `RGB' extended} 1337 \let\XC@color@RGB\color@RGB 1338 \def\color@RGB#1#2% 1339 {\relax\ifnum\rangeRGB=255 1340 \XC@color@RGB#1{#2}% 1341 \else 1342 \convertcolorspec\XC@mod@RGB{#2}\XC@mod@rgb\XC@@tmp 1343 \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}% 1344 \fi}} 1345\@ifundefinedmodel{gray}{\substitutecolormodel{gray}{Gray/rgb}}{} 1346\@ifundefinedmodel{HTML}{\substitutecolormodel{HTML}{rgb}}{} 1347\@ifundefinedmodel{Hsb}{\substitutecolormodel{Hsb}{hsb}}{} 1348\@ifundefinedmodel{tHsb}{\substitutecolormodel{tHsb}{hsb}}{} 1349\@ifundefinedmodel{HSB}{\substitutecolormodel{HSB}{hsb}}{} 1350\@ifundefinedmodel{Gray}{\substitutecolormodel{Gray}{gray}}{} 1351\@ifundefinedmodel{wave}{\substitutecolormodel{wave}{hsb}}{} 1352\@ifundefined{XC@pst}{% 1353\def\XC@getcolor#1#2% 1354 {\begingroup\toks@{#1}\XC@getc@lor#1\XC@@\aftergroupdef#2{\@@tmp}} 1355\def\XC@getc@lor#1#2\XC@@ 1356 {\@ifxempty{#2}% 1357 {\expandafter\XC@getc@l@r#1\XC@@}% 1358 {\let\set@color\relax 1359 \ifx#1[% 1360 \expandafter\@undeclaredcolor\the\toks@\else 1361 \expandafter\@declaredcolor\expandafter{\the\toks@}\fi 1362 \let\@@tmp\XC@current@color}} 1363\def\XC@getc@l@r#1#2\XC@@ 1364 {\ifx#1\xcolor@ 1365 \def\@@tmp{\xcolor@#2}% 1366 \else 1367 \let\set@color\relax 1368 \expandafter\@declaredcolor\expandafter{\the\toks@}% 1369 \let\@@tmp\XC@current@color 1370 \fi} 1371}{% compatibility code begin 1372\def\XC@getcolor#1#2% 1373 {\@ifundefinedcolor{#1}% 1374 {\begingroup\color{#1}% 1375 \edef\@@tmp 1376 {\edef\noexpand#2{\noexpand\expandafter\noexpand\c@lor@to@ps 1377 \current@color\noexpand\@@}}% 1378 \expandafter\endgroup\@@tmp}% 1379 {\edef#2{\XC@usecolor{#1}}}} 1380}% compatibility code end 1381\def\XC@usecolor#1{\expandafter\XC@usec@lor#1\XC@@} 1382\def\XC@usec@lor#1#2\XC@@ 1383 {\ifx#1\xcolor@ 1384 \expandafter\expandafter\expandafter\c@lor@to@ps#1#2\@@ 1385 \else 1386 \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter 1387 \expandafter\c@lor@to@ps\csname\string\color@#1#2\endcsname\@@ 1388 \fi 1389 \space} 1390\let\XC@c@lor@to@ps\XC@usecolor 1391\let\pst@getcolor\XC@getcolor 1392\@ifundefined{XC@pst}{% 1393 \let\pst@usecolor\XC@usecolor 1394}{} 1395\def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa} 1396\def\normalcolor{\let\current@color\default@color\set@color} 1397\AtBeginDocument{\let\default@color\current@color} 1398\XC@ifcase\XC@@drv 1399 {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}% 1400 {\def\c@lor@@named#1,#2,#3\@@#4% 1401 {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive 1402 \csname\string\color@#1\endcsname}} 1403 \def\define@color@named#1#2% 1404 {\@namedef{\string\color@#1}{{}{}{ \colornameprefix#1}{}{}}}}% 1405 {dvipsone,pctexps,pdftex,tcidvi,truetex,vtex,xetex}% 1406 {\def\c@lor@@named#1,#2,#3\@@#4% 1407 {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive 1408 \csname\string\color@#1\endcsname}} 1409 \def\define@color@named#1#2% 1410 {\let\@@cls\@empty\@namedef{\string\color@#1}{{}{}{#2}{}{}}}}% 1411 {textures}% 1412 {\def\c@lor@@named#1,#2,#3\@@#4% 1413 {\edef\@tempa{\color@P@custom{#1}{\if!#2!1\else#2\fi}}% 1414 \expandafter\def\expandafter#4\@tempa} 1415 \def\define@color@named#1#2% 1416 {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa} 1417 \def\c@lor@ps@#1 #2\@@ 1418 {\expandafter\expandafter\expandafter\expandafter\expandafter 1419 \expandafter\expandafter\c@lor@to@ps@ 1420 \csname\string\color@#1\expandafter\endcsname\space 1421 #2. \@@{#1}}}% 1422 }{} 1423\definecolorset{rgb/hsb/cmyk/gray}{}{}% 1424 {red,1,0,0/0,1,1/0,1,1,0/.3;% 1425 green,0,1,0/.33333,1,1/1,0,1,0/.59;% 1426 blue,0,0,1/.66667,1,1/1,1,0,0/.11;% 1427 orange,1,.5,0/.083333,1,1/0,.5,1,0/.595;% 1428 violet,.5,0,.5/.83333,1,.5/0,.5,0,.5/.205;% 1429 purple,.75,0,.25/.94444,1,.75/0,.75,.5,.25/.2525;% 1430 brown,.75,.5,.25/.083333,.66667,.75/0,.25,.5,.25/.5475;% 1431 pink,1,.75,.75/0,.25,1/0,.25,.25,0/.825}% 1432\definecolorset{cmyk/rgb/hsb/gray}{}{}% 1433 {cyan,1,0,0,0/0,1,1/.5,1,1/.7;% 1434 magenta,0,1,0,0/1,0,1/.83333,1,1/.41;% 1435 yellow,0,0,1,0/1,1,0/.16667,1,1/.89;% 1436 olive,0,0,1,.5/.5,.5,0/.16667,1,.5/.39} 1437\definecolorset{gray/rgb/hsb/cmyk}{}{}% 1438 {black,0/0,0,0/0,0,0/0,0,0,1;% 1439 darkgray,.25/.25,.25,.25/0,0,.25/0,0,0,.75;% 1440 gray,.5/.5,.5,.5/0,0,.5/0,0,0,.5;% 1441 lightgray,.75/.75,.75,.75/0,0,.75/0,0,0,.25;% 1442 white,1/1,1,1/0,0,1/0,0,0,0} 1443\XC@@names 1444\AtBeginDocument{\let\XC@@stack\@empty} 1445\let\colornameprefix\XC@@nameprefix 1446\XC@catcodes 1447\csname xcolorcmd\endcsname 1448\color{black} 1449\endinput 1450%% 1451%% End of file `xcolor.sty'. 1452