%% %% This is file `hycolor.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% hycolor.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2007 by Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any later %% version. The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% This Current Maintainer of this work is Heiko Oberdiek. %% %% This work consists of the main source file hycolor.dtx %% and the derived files %% hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv, %% hycolor-test1.tex, hycolor-test2.tex. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{hycolor}% [2007/04/11 v1.1 Code for color options of hyperref/bookmark (HO)]% \begingroup \catcode`\!=13 % \catcode`\:=13 % \catcode`\-=13 % \catcode`\+=13 % \catcode`\;=13 % \catcode`\"=13 % \catcode`\>=13 % \edef\x{% \def\noexpand!{\string!}% \def\noexpand:{\string:}% \def\noexpand-{\string-}% \def\noexpand+{\string+}% \def\noexpand;{\string;}% \def\noexpand"{\string"}% \def\noexpand>{\string>}% }% \def\y#1{\endgroup \def\HyColor@DefSanitized##1##2{% \begingroup \csname @safe@activestrue\endcsname #1% \edef\x{\endgroup \def\noexpand##1{##2}% }% \x \@onelevel@sanitize##1% }% }% \expandafter\y\expandafter{\x} \def\HyColor@NormalizeNum#1#2{% \ifdim#1pt<\z@ \def#2{0}% \else \edef#2{\zap@space#1 \@empty}% \expandafter\HyColor@CheckDot#2..\@nil#2% \fi } \def\HyColor@CheckDot#1.#2.#3\@nil#4{% \ifnum0#1<\@ne \ifx\\#2\\% \def#4{0}% \else \edef#4{\HyColor@ReverseString#2\@nil{}}% \edef#4{\expandafter\HyColor@StripLeadingZeros#4\@empty}% \ifx#4\@empty \def#4{0}% \else \edef#4{.\expandafter\HyColor@ReverseString#4\@nil{}}% \fi \fi \else \def#4{1}% \fi } \def\HyColor@ReverseString#1#2\@nil#3{% \ifx\\#2\\% #1#3% \else \@ReturnAfterFi{% \HyColor@ReverseString#2\@nil{#1#3}% }% \fi } \long\def\@ReturnAfterFi#1\fi{\fi#1} \def\HyColor@StripLeadingZeros#1{% \ifx#10% \expandafter\HyColor@StripLeadingZeros \else #1% \fi } \def\HyColor@NormalizeCommaRGB#1,#2,#3\@nil#4{% \HyColor@NormalizeNum{#1}\HyColor@temp \let#4\HyColor@temp \HyColor@NormalizeNum{#2}\HyColor@temp \edef#4{#4 \HyColor@temp}% \HyColor@NormalizeNum{#3}\HyColor@temp \edef#4{#4 \HyColor@temp}% } \def\HyColor@NormalizeCommaCMYK#1,#2,#3,#4\@nil#5{% \HyColor@NormalizeNum{#1}\HyColor@temp \let#5\HyColor@temp \HyColor@NormalizeNum{#2}\HyColor@temp \edef#5{#5 \HyColor@temp}% \HyColor@NormalizeNum{#3}\HyColor@temp \edef#5{#5 \HyColor@temp}% \HyColor@NormalizeNum{#4}\HyColor@temp \edef#5{#5 \HyColor@temp}% } \def\HyColor@BookmarkColor#1#2#3#4{% \HyColor@IfModel{#1}{% \HyColor@IfXcolor{% \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% }{% \ifx\HyColor@model\HyColor@model@rgb \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% \else \ifx\HyColor@model\HyColor@model@gray \expandafter\HyColor@NormalizeNum \expandafter{\HyColor@values}#2% \edef#2{#2 #2 #2}% \else \let#2\@empty \HyColor@ErrorModelNoXcolor{#3}{#4}% \fi \fi }% }{% \let#2\HyColor@values \ifx#2\@empty \else \HyColor@IfXcolor{% \extractcolorspec{#1}#2% \expandafter\convertcolorspec#2\HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% }{% \let#2\@empty \HyColor@ErrorSpecNoXcolor{#3}{#4}% }% \fi }% } \def\HyColor@ErrorModelNoXcolor#1#2{% \PackageError{#1}{% Color model `\HyColor@model' is not supported\MessageBreak without package `xcolor' in\MessageBreak `#2=[\HyColor@model]{\HyColor@values}'% }\@ehc } \def\HyColor@ErrorSpecNoXcolor#1#2{% \PackageError{#1}{% This color specification is not supported\MessageBreak without package `xcolor' in\MessageBreak `#2=\HyColor@values'% }\@ehc } \def\HyColor@IfModel#1{% \@ifnextchar[{% \HyColor@WithModel }{% \HyColor@WithoutModel }% #1\@nil } \def\HyColor@WithModel[#1]#2\@nil{% \HyColor@DefSanitized\HyColor@model{#1}% \HyColor@DefSanitized\HyColor@values{#2}% \@firstoftwo } \def\HyColor@WithoutModel#1\@nil{% \let\HyColor@model\relax \HyColor@DefSanitized\HyColor@values{#1}% \@secondoftwo } \long\def\@ReturnAfterFi#1\fi{\fi#1} \def\HyColor@IfXcolor{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname convertcolorspec\endcsname\relax \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi } \def\HyColor@model@empty{empty} \@onelevel@sanitize\HyColor@model@empty \def\HyColor@model@gray{gray} \@onelevel@sanitize\HyColor@model@gray \def\HyColor@model@rgb{rgb} \@onelevel@sanitize\HyColor@model@rgb \def\HyColor@model@cmyk{cmyk} \@onelevel@sanitize\HyColor@model@cmyk \def\HyColor@model@Gray{Gray} \@onelevel@sanitize\HyColor@model@Gray \def\HyColor@UseColor#1{% \ifx#1\relax \else \ifx#1\@empty \else \expandafter\HyColor@@UseColor#1\@nil \fi \fi } \def\HyColor@@UseColor{% \@ifnextchar[\HyColor@@@UseColor\HyColor@@@@UseColor } \def\HyColor@@@UseColor[#1]#2\@nil{% \color[{#1}]{#2}% } \def\HyColor@@@@UseColor#1\@nil{% \color{#1}% } \def\HyColor@HyperrefColor#1#2{% \HyColor@IfModel{#1}{% \edef#2{[{\HyColor@model}]{\HyColor@values}}% }{% \let#2\HyColor@values \ifx#2\@empty \let#2\relax \fi }% } \def\HyColor@XZeroOneThreeFour#1#2#3#4{% \HyColor@IfModel{#1}{% \ifx\HyColor@model\HyColor@model@empty \let#2\@empty \else\ifx\HyColor@model\HyColor@model@gray \expandafter\HyColor@NormalizeNum \expandafter{\HyColor@values}#2% \else\ifx\HyColor@model\HyColor@model@rgb \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% \else\ifx\HyColor@model\HyColor@model@cmyk \expandafter\HyColor@NormalizeCommaCMYK\HyColor@values\@nil#2% \else\ifx\HyColor@model\HyColor@model@Gray \HyColor@IfXcolor{% \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@gray#2% \expandafter\HyColor@NormalizeNum\expandafter{#2}#2% \let\HyColor@model\HyColor@model@gray }{% \let#2\relax \HyColor@ErrorModelNoXcolor{#3}{#4}% }% \else \HyColor@IfXcolor{% \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% \let\HyColor@model\HyColor@model@rgb }{% \let#2\relax \HyColor@ErrorModelNoXcolor{#3}{#4}% }% \fi\fi\fi\fi\fi }{% \let#2\HyColor@values \ifx#2\@empty \let#2\relax \else \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% }{% \HyColor@IfXcolor{% \expandafter\extractcolorspec\expandafter{\HyColor@values}#2% \edef\HyColor@model{\expandafter\@firstoftwo#2}% \edef\HyColor@values{\expandafter\@secondoftwo#2}% \ifx\HyColor@model\HyColor@model@gray \expandafter\HyColor@NormalizeNum\expandafter {\HyColor@values}#2% \else\ifx\HyColor@model\HyColor@model@rgb \expandafter\HyColor@NormalizeCommaRGB \HyColor@values\@nil#2% \else\ifx\HyColor@model\HyColor@model@cmyk \expandafter\HyColor@NormalizeCommaCMYK \HyColor@values\@nil#2% \else\ifx\HyColor@model\HyColor@model@Gray \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@gray#2% \expandafter\HyColor@NormalizeNum\expandafter {\HyColor@values}#2% \let\HyColor@model\HyColor@model@gray \else \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% \let\HyColor@model\HyColor@model@rgb \fi\fi\fi\fi }{% \let#2\relax \HyColor@ErrorSpecNoXcolor{#3}{#4}% }% }% \fi }% } \let\HyColor@FieldBColor\HyColor@XZeroOneThreeFour \def\HyColor@FieldColor#1#2#3#4{% \let\HyColor@model\@empty \HyColor@XZeroOneThreeFour{#1}{#2}{#3}{#4}% \ifx#2\relax \let#2\@empty \else \ifx#2\@empty \else \ifx\HyColor@model\HyColor@model@gray \edef#2{#2 g}% \else\ifx\HyColor@model\HyColor@model@rgb \edef#2{#2 rg}% \else\ifx\HyColor@model\HyColor@model@cmyk \edef#2{#2 k}% \else \PackageError{#3}{Internal error: unsupported color model}\@ehc \fi\fi\fi \fi \fi } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfmatch\endcsname\relax \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi {% \newif\ifHyColor@result \begingroup \def\x#1{\endgroup \def\HyColor@IfRGB##1{% \HyColor@@IfRGB##1#1#1#1\@nil }% }% \x{ }% \edef\HyColor@TwoSpaces{\space\space}% \def\HyColor@@IfRGB#1 #2 #3 #4\@nil{% \HyColor@resulttrue \def\HyColor@temp{#4}% \ifx\HyColor@temp\HyColor@TwoSpaces \HyColor@CheckNum{#1}% \ifHyColor@result \HyColor@CheckNum{#2}% \ifHyColor@result \HyColor@CheckNum{#3}% \fi \fi \else \HyColor@resultfalse \fi \ifHyColor@result \let\HyColor@model\HyColor@model@rgb \edef\HyColor@values{#1,#2,#3}% \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% \def\HyColor@zero{0}% \def\HyColor@one{1}% \def\HyColor@dot{.}% \def\HyColor@CheckNum#1{% \def\HyColor@temp{#1}% \ifx\HyColor@temp\@empty \HyColor@resultfalse \else \edef\HyColor@temp{\@car#1\@nil}% \ifx\HyColor@temp\HyColor@zero \else \ifx\HyColor@temp\HyColor@one \else \ifx\HyColor@temp\HyColor@dot \else \HyColor@resultfalse \fi \fi \fi \fi }% }{% \def\HyColor@MatchNum{% (0*1\string\.0*|0*1|0+\string\.?[0-9]*|\string\.[0-9]+)% }% \def\HyColor@IfRGB#1{% \ifnum\pdfmatch{^\HyColor@MatchNum\space\HyColor@MatchNum \space\HyColor@MatchNum$}{#1}>\z@ \let\HyColor@model\HyColor@model@rgb \edef\HyColor@values{% \expandafter\strip@prefix\pdflastmatch1,% \expandafter\strip@prefix\pdflastmatch2,% \expandafter\strip@prefix\pdflastmatch3% }% \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% } \def\HyColor@HyperrefBorderColor#1#2#3#4{% \HyColor@IfModel{#1}{% \HyColor@IfXcolor{% \convertcolorspec\HyColor@model\HyColor@values \HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% }{% \ifx\HyColor@model\HyColor@model@rgb \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% \else \ifx\HyColor@model\HyColor@model@gray \expandafter\HyColor@NormalizeNum \expandafter{\HyColor@values}#2% \edef#2{#2 #2 #2}% \else \let#2\relax \HyColor@ErrorModelNoXcolor{#3}{#4}% \fi \fi }% }{% \let#2\HyColor@values \ifx#2\@empty \let#2\relax \else \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% }{% \HyColor@IfXcolor{% \extractcolorspec{#1}#2% \expandafter\convertcolorspec#2\HyColor@model@rgb#2% \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% }{% \let#2\relax \HyColor@ErrorSpecNoXcolor{#3}{#4}% }% }% \fi }% } \endinput %% %% End of file `hycolor.sty'.