summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/hycolor.sty')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/hycolor.sty451
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'.