Current File : //proc/self/root/kunden/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty |
%%
%% 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.
%%
%% Project: hycolor
%% Version: 2020-01-27 v1.10
%%
%% Copyright (C)
%% 2007-2011 Heiko Oberdiek
%% 2016-2020 Oberdiek Package Support Group
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%% https://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%% https://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".
%%
%% The Current Maintainers of this work are
%% Heiko Oberdiek and the Oberdiek Package Support Group
%% https://github.com/ho-tex/hycolor/issues
%%
%% This work consists of the main source file hycolor.dtx
%% and the derived files
%% hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv,
%% xcolor-patch.sty
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hycolor}%
[2020-01-27 v1.10 Color options for hyperref/bookmark (HO)]%
\AtBeginDocument{%
\def\@tempa#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}%
}%
}%
\ifx\XC@cnv@gray\@tempa
\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
\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}%
}%
}%
\fi
\let\@tempa\relax
}
\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\relax#1\@empty
\else
\ifx\@empty#1\@empty
\else
\expandafter\expandafter\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
}
\newif\ifHyColor@result
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfmatch\endcsname\relax
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{%
\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%
}%
\HyColor@resulttrue
\expandafter\@firstoftwo
\else
\HyColor@resultfalse
\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
}%
}
\def\HyColor@DetectPdfVersion{%
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname Hy@pdfversion\endcsname\relax
\global\chardef\HyColor@PdfVersion=0 %
\else
\global\chardef\HyColor@PdfVersion=\Hy@pdfversion\relax
\fi
\global\let\HyColor@DetectPdfVersion\relax
}
\def\HyColor@SpaceToComma#1 #2\@nil{%
#1%
\ifx\relax#2\relax
\expandafter\@gobble
\else
,%
\expandafter\@firstofone
\fi
{%
\HyColor@SpaceToComma#2\@nil
}%
}%
\def\HyColor@AttachfileColor#1#2#3#4#5#6{%
\def#2{#1}%
\ifx#2\@empty
\let#3\@gobble
\let#4\@empty
\else
\HyColor@resultfalse
\HyColor@XZeroOneThreeFour{#1}#3{#5}{#6}%
\ifHyColor@result
\edef#2{%
[rgb]{\expandafter\HyColor@SpaceToComma#3 \@nil}%
}%
\fi
\ifx\HyColor@model\HyColor@model@rgb
\edef#4{/C[#3]}% hash-ok
\edef#3##1{%
#3 %
\noexpand\csname atfi@SETRGBCOLOR##1\noexpand\endcsname
}%
\else
\ifx\HyColor@model\HyColor@model@gray
\HyColor@DetectPdfVersion
\ifnum\HyColor@PdfVersion<7 %
\edef#4{/C[#3 #3 #3]}% hash-ok
\else
\edef#4{/C[#3]}% hash-ok
\fi
\edef#3##1{%
#3 %
\noexpand\csname atfi@SETGRAYCOLOR##1\noexpand\endcsname
}%
\else
\ifx\HyColor@model\HyColor@model@cmyk
\HyColor@DetectPdfVersion
\ifnum\HyColor@PdfVersion<7 %
\HyColor@IfModel{#1}{%
\HyColor@IfXcolor{%
\convertcolorspec\HyColor@model\HyColor@values
\HyColor@model@rgb#4%
\expandafter\HyColor@NormalizeCommaRGB#4\@nil#4%
\edef#4{/C[#4]}% hash-ok
}{%
\let#4\@empty
\HyColor@ErrorModelNoXcolor{#5}{#6}%
}%
}{%
\HyColor@IfXcolor{%
\extractcolorspec{#1}#4%
\expandafter\convertcolorspec#4%
\HyColor@model@rgb#4%
\expandafter\HyColor@NormalizeCommaRGB#4\@nil#4%
\edef#4{/C[#4]}% hash-ok
}{%
\let#4\@empty
\HyColor@ErrorSpecNoXcolor{#5}{#6}%
}%
}%
\else
\edef#4{/C[#3]}% hash-ok
\fi
\edef#3##1{%
#3 %
\noexpand\csname atfi@SETCMYKCOLOR##1\noexpand\endcsname
}%
\else
\ifx\HyColor@model\HyColor@model@empty
\PackageError{#5}{%
Color model `empty' is not permitted for option `#6'%
}\@ehc
\let#2\@empty
\let#3\@gobble
\let#4\@empty
\else
\ifx\HyColor@model\relax % (missing xcolor)
\let#3\@gobble
\let#4\@empty
\else
\PackageError{#5}{%
Internal error: unsupported color model%
}\@ehc
\fi
\fi
\fi
\fi
\fi
\fi
}
%% \section{Installation}
\endinput
%%
%% End of file `hycolor.sty'.