%PDF- %PDF-
| Direktori : /proc/self/root/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/ |
| Current File : //proc/self/root/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-context.def |
% Copyright 2006, 2011 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
% The aux files, needed for reading back coordinates
\def\pgfutil@aux@read@hook{
\pgfutil@IfFileExists{\jobname.pgf}{\input \jobname.pgf\relax}{}
\csname newwrite\endcsname\pgfutil@auxout
\csname openout\endcsname\pgfutil@auxout\jobname.pgf
}
% XColor-like support for ConTeXt
\def\pgfutil@definecolor#1#2#3{\csname pgfutil@emu@#2\endcsname{#1}#3\@nil}
\def\pgfutil@emu@rgb#1#2,#3,#4\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#3,#4}}}
\def\pgfutil@emu@gray#1#2\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#2,#2}}}
\pgfutil@definecolor{white}{gray}{1}
\pgfutil@definecolor{black}{gray}{0}
\pgfutil@definecolor{gray}{gray}{0.5}
\pgfutil@definecolor{red}{rgb}{1,0,0}
\pgfutil@definecolor{green}{rgb}{0,1,0}
\pgfutil@definecolor{blue}{rgb}{0,0,1}
\pgfutil@definecolor{cyan}{rgb}{0,1,1}
\pgfutil@definecolor{magenta}{rgb}{1,0,1}
\pgfutil@definecolor{yellow}{rgb}{1,1,0}
\pgfutil@definecolor{orange}{rgb}{1,0.5,0}
\pgfutil@definecolor{violet}{rgb}{0.5,0,0.5}
\pgfutil@definecolor{purple}{rgb}{0.75,0,0.25}
\pgfutil@definecolor{brown}{rgb}{0.75,0.5,0.25}
\def\pgfutil@color#1{%
\pgfutil@colorlet{.}{#1}%
\pgfsysprotocol@getcurrentprotocol\pgfutil@emu@temp%
{%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsetcolor{.}%
\expandafter\pgfsys@outerinvoke\expandafter{\pgfsysprotocol@currentprotocol}%
}%
\pgfsysprotocol@setcurrentprotocol\pgfutil@emu@temp%
\aftergroup\pgfutil@reset@color%
}
\def\pgfutil@extractcolorspec#1#2{%
\def#2{{#1}}%
}
\def\pgfutil@convertcolorspec#1#2#3{%
\edef#3{\expandafter\expandafter\expandafter\pgfutil@emu@select\csname\string\color@#1\endcsname}%
}
\def\pgfutil@doifcolorelse#1#2#3{%
\expandafter\ifx\csname\string\color@#1\endcsname\relax%
\doifcolorelse{#1}{\let\pgf@next=\pgfutil@firstoftwo}{\let\pgf@next=\pgfutil@secondoftwo}%
\else
\let\pgf@next=\pgfutil@firstoftwo%
\fi%
\pgf@next{#2}{#3}%
}
\def\pgfutil@reset@color{%
\pgfsysprotocol@getcurrentprotocol\pgfutil@emu@temp%
{%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsetcolor{.}%
\expandafter\pgfsys@outerinvoke\expandafter{\pgfsysprotocol@currentprotocol}%
}%
\pgfsysprotocol@setcurrentprotocol\pgfutil@emu@temp%
}
\expandafter\def\csname\string\color@.\endcsname{\xcolor@{}{}{rgb}{0,0,0}}
\def\pgfutil@colorlet#1#2{%
\edef\pgf@marshal{#2}%
\expandafter\pgfutil@in@\expandafter!\expandafter{\pgf@marshal}%
\ifpgfutil@in@%
% compute mixture
{%
\expandafter\pgfutil@emu@mix\pgf@marshal!white!\@nil%
\xdef\pgf@marshal{\noexpand\def\expandafter\noexpand\csname\string\color@#1\endcsname{%
\noexpand\xcolor@{}{}{rgb}{\pgf@sys@tonumber\pgf@xa,\pgf@sys@tonumber\pgf@xb,\pgf@sys@tonumber\pgf@xc}}}%
}%
\pgf@marshal%
\else%
\expandafter\ifx\csname\string\color@#2\endcsname\relax%
\pgfutil@registercolor{#2}%
\fi%
\edef\pgf@marshal{\noexpand\let\expandafter\noexpand\csname\string\color@#1\endcsname=%
\expandafter\noexpand\csname\string\color@#2\endcsname}%
\pgf@marshal%
\fi%
}
\def\pgfutil@emu@mix#1!#2!#3!#4\@nil{%
\expandafter\ifx\csname\string\color@#1\endcsname\relax%
\pgfutil@registercolor{#1}%
\fi%
\expandafter\ifx\csname\string\color@#3\endcsname\relax%
\pgfutil@registercolor{#3}%
\fi%
\expandafter\expandafter\expandafter\pgfutil@emu@unpack\csname\string\color@#1\endcsname%
\pgf@ya=\pgf@xa%
\pgf@yb=\pgf@xb%
\pgf@yc=\pgf@xc%
\expandafter\expandafter\expandafter\pgfutil@emu@unpack\csname\string\color@#3\endcsname%
\c@pgf@counta=#2\relax%
\c@pgf@countb=100\relax%
\advance\c@pgf@countb by-\c@pgf@counta\relax%
\pgf@xa=\c@pgf@countb\pgf@xa%
\advance\pgf@xa by\c@pgf@counta\pgf@ya%
\divide\pgf@xa by 100\relax%
\pgf@xb=\c@pgf@countb\pgf@xb%
\advance\pgf@xb by\c@pgf@counta\pgf@yb%
\divide\pgf@xb by 100\relax%
\pgf@xc=\c@pgf@countb\pgf@xc%
\advance\pgf@xc by\c@pgf@counta\pgf@yc%
\divide\pgf@xc by 100\relax%
}
\def\pgfutil@emu@unpack#1#2#3#4#5{%
\pgfutil@emu@@unpack#5\@nil%
}
\def\pgfutil@emu@@unpack#1,#2,#3\@nil{%
\pgf@xa=#1pt%
\pgf@xb=#2pt%
\pgf@xc=#3pt%
}
\def\pgfutil@emu@select#1#2#3#4#5{#5}
\def\pgfutil@registercolor#1{%
\edef\pgf@temp{\PDFcolor{#1}}%
\edef\pgf@marshal{\noexpand\pgfutil@in@{ g}{\pgf@temp}}%
\pgf@marshal%
\ifpgfutil@in@%
\expandafter\pgfutil@context@parse@gray\pgf@temp\pgf@stop{#1}%
\else%
\edef\pgf@marshal{\noexpand\pgfutil@in@{ rg}{\pgf@temp}}%
\pgf@marshal%
\ifpgfutil@in@%
\expandafter\pgfutil@context@parse@rgb\pgf@temp\pgf@stop{#1}%
\else%
\PackageError{pgf}{Color #1 has an unsupported color model.}{}%
\pgfutil@definecolor{#1}{gray}{0}
\fi%
\fi%
}
\def\pgfutil@context@parse@gray#1 g#2\pgf@stop#3{%
\pgfutil@definecolor{#3}{gray}{#1}
}
\def\pgfutil@context@parse@rgb#1 #2 #3 rg#4\pgf@stop#5{%
\pgfutil@definecolor{#5}{rgb}{#1,#2,#3}
}
% Make this command available in general:
\let\colorlet=\pgfutil@colorlet
% pgfutil@minipage
\def\pgfutil@minipage[#1]#2{%
\hbox to#2\bgroup%
\hsize=#2\relax%
\vbox\bgroup\leavevmode%
}
\def\pgfutil@endminipage{\egroup\egroup}
% Driver detector (how should we do this in ConTeXt?) :
\ifx\pdfoutput\@undefined\newcount\pdfoutput\fi
\ifx\pdfoutput\relax\newcount\pdfoutput\fi
\def\pgfutil@guessdriver{
\ifx\XeTeXversion\@undefined
\ifx\preloadedspecials\@undefined%
\ifcase\pdfoutput%
\def\pgfsysdriver{pgfsys-dvips.def}%
\else%
\def\pgfsysdriver{pgfsys-pdftex.def}% pdfTeX & LuaTeX
\fi%
\else%
\pgfutil@driver@if@in{postscript}{pgfsys-dvips.def}
\pgfutil@driver@if@in{tpd}{pgfsys-pdftex.def}
\pgfutil@driver@if@in{dpm}{pgfsys-dvipdfm.def}
\pgfutil@driver@if@in{dpx}{pgfsys-dvipdfmx.def}
\pgfutil@driver@if@in{xetex}{pgfsys-xetex.def}
\ifx\pgfsysdriver\relax%
\PackageWarning{pgf}{I was not able to discern the driver, the
preloaded specials were \preloadedspecials. I am going to use
pgfsys-dvips.def}%
\def\pgfsysdriver{pgfsys-dvips.def}
\fi%
\fi
\else
\def\pgfsysdriver{pgfsys-xetex.def}% should be right
\fi
}
\def\pgfutil@driver@if@in#1#2{%
\edef\pgf@marshal{\noexpand\pgfutil@in@{#1}{\preloadedspecials}}
\pgf@marshal
\ifpgfutil@in@%
\def\pgfsysdriver{#2}%
\fi%
}
% Global colors
\let\pgfutil@globalcolorsfalse=\relax
\let\pgfutil@globalcolorstrue=\relax
% Font stuff
\def\pgfutil@font@tiny{\tfxx}
\def\pgfutil@font@scriptsize{\tfxx}
\def\pgfutil@font@footnotesize{\tfx}
\def\pgfutil@font@small{\tfx}
\def\pgfutil@font@normalsize{\tf}
\def\pgfutil@font@large{\tfa}
\def\pgfutil@font@Large{\tfb}
\def\pgfutil@font@huge{\tfc}
\def\pgfutil@font@Huge{\tfc}
\def\pgfutil@font@itshape{\it}
\def\pgfutil@font@bfseries{\bf}
\let\pgfutil@font@normalfont=\tf
\let\pgfutil@selectfont=\tf
% Extra counters, registers, boxes
\newcount\pgfutil@tempcnta
\newcount\pgfutil@tempcntb
\newbox\pgfutil@tempboxa
\newdimen\pgfutil@tempdima
\newdimen\pgfutil@tempdimb
\newbox \pgfutil@voidb@x
\newtoks \pgfutil@toks@
% Module stuff
\def\pgfutil@usemodule#1{\usemodule[#1]}
% % % % begin patches by HH % % % %
\let\pgfutil@insertatbegincurrentpagefrombox\flushatshipout
\let\pgfutil@insertatbegincurrentpage \flushatshipout
\def\pgfutil@insertatbegineverypage #1{\appendtoks#1\to\everyshipout} % space removed after #1
\let\pgfutil@setuppdfresources \relax
\doifmodeelse {mkiv} {
\def\pgf@sys@pdf@pdfbackendset@one#1#2%
{\normalexpanded{\noexpand\pgf@sys@pdf@pdfbackendset@two\noexpand#1#2\relax}}
\def\pgf@sys@pdf@pdfbackendset@two#1/#2 #3\relax
{#1{#2}{#3}}
\def\pgf@sys@pdf@addtopageresource@pattern {\pgf@sys@pdf@pdfbackendset@one\pdfbackendsetpattern}
\def\pgf@sys@pdf@addtopageresource@colorspace{\pgf@sys@pdf@pdfbackendset@one\pdfbackendsetcolorspace}
\def\pgf@sys@pdf@addtopageresource@extgstate {\pgf@sys@pdf@pdfbackendset@one\pdfbackendsetextgstate}
\def\pgf@sys@pdf@possible@resources {\pdfbackendcurrentresources}
\def\pgf@sys@pdf@check@resources {}
} {
\def\pgf@sys@pdf@addtopageresource@extgstate {\appendtoPDFdocumentextgstates }
\def\pgf@sys@pdf@addtopageresource@colorspace {\appendtoPDFdocumentcolorspaces}
\def\pgf@sys@pdf@addtopageresource@pattern {\appendtoPDFdocumentpatterns }
\def\pgf@sys@pdf@possible@resources {\currentPDFresources}
\def\pgf@sys@pdf@check@resources {}
% this code is now in the mkii driver so this code can go away
\ifx\appendtoPDFdocumentpatterns\undefined
\let\docuPDFpatterns\empty
\def\checkPDFpatterns
{\ifx\docuPDFpatterns\empty \else
\ifnum\realpageno=\lastpage\relax
\doPDFdictionaryobject{FDF}{docupatterns}{\docuPDFpatterns}%
\fi
\doPDFgetobjectreference{FDF}{docupatterns}\PDFobjectreference
\doPDFpageresource{/Pattern \PDFobjectreference}%
\fi}
\appendtoksonce \checkPDFpatterns \to \everyshipout
\def\appendtoPDFdocumentpatterns#1{\xdef\docuPDFpatterns{\docuPDFpatterns\space#1}}
\fi
}
\let\pgf@sys@addpdfresource@extgs@plain \pgf@sys@pdf@addtopageresource@extgstate
\let\pgf@sys@addpdfresource@patterns@plain \pgf@sys@pdf@addtopageresource@pattern
\let\pgf@sys@addpdfresource@colorspaces@plain\pgf@sys@pdf@addtopageresource@colorspace
\let\pgf@sys@pdf@check@resources@plain \pgf@sys@pdf@check@resources
\pgf@sys@addpdfresource@colorspaces@plain{/pgfprgb [/Pattern /DeviceRGB]}
% % % % end patches by HH % % % %
% Do something at the end of a job
\appendtoks \the\pgfutil@everybye \to \everybye
% The following is still messy and needs to be cleanup up (everything
% prefixed by pgfutil@):
\def\PackageInfo#1#2{}
\def\PackageWarning#1#2{\immediate\write17{Package #1: Warning! #2.}}%
\def\PackageError#1#2#3{\immediate\write17{Package #1: Error! #2.}}%
\long\def\AtBeginDocument#1{#1}%
\endinput