diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/hycolor.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/hycolor.sty | 451 |
1 files changed, 451 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty b/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty new file mode 100644 index 00000000000..e300089260b --- /dev/null +++ b/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty @@ -0,0 +1,451 @@ +%% +%% 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 <oberdiek@uni-freiburg.de> +%% +%% 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'. |