summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex291
1 files changed, 291 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex
new file mode 100644
index 00000000000..46ee571bf7d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgf-latex-emulation.tex
@@ -0,0 +1,291 @@
+% This file is pgf-latex-emulation.tex
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\catcode`\@=11\relax
+
+\def\pgf@test@fmtname{LaTeX2e}
+\expandafter\ifx\csname fmtname\endcsname\pgf@test@fmtname%
+ \PackageError{pgf}{This file should not be loaded with \LaTeX.}{}
+\else%
+
+% Direct copy from latex.ltx:
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname #1\endcsname\relax#2\else#3\fi}
+\def\typeout#1{\immediate\write\@unused{#1}}
+\alloc@7\write\chardef\sixt@@n\@unused
+\let\@@par=\par
+\def\@empty{}
+\def\@gobble #1{}
+\def\@gobbletwo #1#2{}
+\long\def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@token\@ifnch}
+\def\@ifnch{%
+ \ifx\@let@token\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c}
+\def\in@#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+ \ifx\in@##2\in@false\else\in@true\fi}%
+ \in@@#2#1\in@\in@@}
+\newif\ifin@
+\newdimen\@tempdima
+\newdimen\@tempdimb
+\newcount\@tempcnta
+\newcount\@tempcntb
+\def\@namedef#1{\expandafter\def\csname #1\endcsname}
+\long\def\g@addto@macro#1#2{%
+ \begingroup
+ \toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}%
+ \endgroup}
+\long\def\mbox#1{\leavevmode\hbox{#1}}
+\begingroup
+\def\:{\global\let\@sptoken= } \:
+\def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch}
+\endgroup
+\def\@nnil{\@nil}
+\def\@fornoop#1\@@#2#3{}
+\long\def\@for#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
+\long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
+\long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}
+\def\@tfor#1:={\@tf@r#1 }
+\long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
+ \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
+\long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}
+\chardef\@inputcheck0
+\def\IfFileExists#1#2#3{%
+ \openin\@inputcheck#1 %
+ \ifeof\@inputcheck
+ #3\relax
+ \else
+ #2\relax
+ \fi
+ \closein\@inputcheck}
+\newbox\@tempboxa
+\newif\if@tempswa
+\long\def\@firstoftwo#1#2{#1}
+\long\def\@secondoftwo#1#2{#2}
+
+% Simplified version of latex.ltx:
+\def\PackageInfo#1#2{}%\typeout{Package #1: Info: #2.}}%
+\def\PackageWarning#1#2{\typeout{Package #1: Warning! #2.}}%
+\def\PackageError#1#2#3{\typeout{Package #1: Error! #2.}}%
+\long\def\AtBeginDocument#1{#1}%
+\long\def\AtBeginDvi#1{#1}%
+\def\InputIfFileExists#1#2#3{\input #1\relax#2}%
+\def\minipage[#1]#2{%
+ \hbox to#2\bgroup%
+ \hsize=#2\relax%
+ \vbox\bgroup\leavevmode%
+}
+\def\endminipage{\egroup\egroup}
+\def\providecommand#1#2{\def#1{#2}}
+
+\def\newcounter#1{\expandafter\alloc@\expandafter0\expandafter\count\expandafter\countdef\expandafter\insc@unt\csname c@#1\endcsname}%
+\def\setcounter#1#2{\global\csname c@#1\endcsname#2\relax}%
+\def\addtocounter#1#2{\global\advance\csname c@#1\endcsname #2\relax}
+\def\setlength#1#2{#1#2\relax}
+\def\addtolength#1#2{\advance#1 #2\relax}
+
+
+% Driver detector (not so good):
+\ifx\pdfoutput\@undefined\alloc@0\count\countdef\insc@unt\pdfoutput\fi
+\ifx\pdfoutput\relax\alloc@0\count\countdef\insc@unt\pdfoutput\fi
+\ifcase\pdfoutput%
+ \gdef\Gin@driver{dvips.def}%
+\else%
+ \gdef\Gin@driver{pdftex.def}%
+\fi%
+
+
+% Things that are not too clever, yet:
+\def\selectfont{\rm}
+\def\applycolormixins#1{}
+
+
+% My ultra-quick xcolor.sty emulation...
+\newif\ifglobalcolors
+\def\definecolor#1#2#3{\csname pgf@emu@#2\endcsname{#1}#3\@nil}
+\def\pgf@emu@rgb#1#2,#3,#4\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#3,#4}}}
+\def\pgf@emu@gray#1#2\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#2,#2}}}
+
+\definecolor{white}{gray}{1}
+\definecolor{black}{gray}{0}
+\definecolor{gray}{gray}{0.5}
+\definecolor{red}{rgb}{1,0,0}
+\definecolor{green}{rgb}{0,1,0}
+\definecolor{blue}{rgb}{0,0,1}
+\definecolor{cyan}{rgb}{0,1,1}
+\definecolor{magenta}{rgb}{1,0,1}
+\definecolor{yellow}{rgb}{1,1,0}
+\definecolor{orange}{rgb}{1,0.5,0}
+\definecolor{violet}{rgb}{0.5,0,0.5}
+\definecolor{purple}{rgb}{0.75,0,0.25}
+\definecolor{brown}{rgb}{0.75,0.5,0.25}
+
+\def\color#1{%
+ \pgfsysprotocol@getcurrentprotocol\pgf@emu@temp%
+ {%
+ \pgfsysprotocol@setcurrentprotocol\@empty%
+ \pgfsysprotocol@bufferedtrue%
+ \pgfsetcolor{#1}%
+ \expandafter\pgfsys@outerinvoke\expandafter{\pgfsysprotocol@currentprotocol}%
+ }%
+ \pgfsysprotocol@setcurrentprotocol\pgf@emu@temp%
+ \edef\pgf@marshal{\noexpand\let\expandafter\noexpand\csname\string\color@.\endcsname=%
+ \expandafter\noexpand\csname\string\color@#1\endcsname}%
+ \pgf@marshal%
+ \aftergroup\reset@color%
+}
+\def\reset@color{%
+ \pgfsysprotocol@getcurrentprotocol\pgf@emu@temp%
+ {%
+ \pgfsysprotocol@setcurrentprotocol\@empty%
+ \pgfsysprotocol@bufferedtrue%
+ \pgfsetcolor{.}%
+ \expandafter\pgfsys@outerinvoke\expandafter{\pgfsysprotocol@currentprotocol}%
+ }%
+ \pgfsysprotocol@setcurrentprotocol\pgf@emu@temp%
+}
+\expandafter\def\csname\string\color@.\endcsname{\xcolor@{}{}{rgb}{0,0,0}}
+
+
+\def\colorlet#1#2{%
+ \in@!{#2}%
+ \ifin@%
+ % compute mixture
+ {%
+ \pgf@emu@mix#2!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%
+ \edef\pgf@marshal{\noexpand\let\expandafter\noexpand\csname\string\color@#1\endcsname=%
+ \expandafter\noexpand\csname\string\color@#2\endcsname}%
+ \pgf@marshal%
+ \fi%
+}
+\def\pgf@emu@mix#1!#2!#3!#4\@nil{%
+ \expandafter\expandafter\expandafter\pgf@emu@unpack\csname\string\color@#1\endcsname%
+ \pgf@ya=\pgf@xa%
+ \pgf@yb=\pgf@xb%
+ \pgf@yc=\pgf@xc%
+ \expandafter\expandafter\expandafter\pgf@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\pgf@emu@unpack#1#2#3#4#5{%
+ \pgf@emu@@unpack#5\@nil%
+}
+\def\pgf@emu@@unpack#1,#2,#3\@nil{%
+ \pgf@xa=#1pt%
+ \pgf@xb=#2pt%
+ \pgf@xc=#3pt%
+}
+
+\def\extractcolorspec#1#2{%
+ \def#2{{#1}}%
+}
+
+\def\convertcolorspec#1#2#3{%
+ \edef#3{\expandafter\expandafter\expandafter\pgf@emu@select\csname\string\color@#1\endcsname}%
+}
+\def\pgf@emu@select#1#2#3#4#5{#5}
+
+
+
+
+% Adapted from keyval.sty:
+\newtoks\KV@toks@
+
+\ifx\setkeys\@undefined
+\def\setkeys#1#2{%
+ \def\KV@prefix{KV@#1@}%
+ \let\@tempc\relax
+ \KV@do#2,\relax,}
+\def\KV@do#1,{%
+ \ifx\relax#1\empty\else
+ \KV@split#1==\relax
+ \expandafter\KV@do\fi}
+\def\KV@split#1=#2=#3\relax{%
+ \KV@@sp@def\@tempa{#1}%
+ \ifx\@tempa\@empty\else
+ \expandafter\let\expandafter\@tempc
+ \csname\KV@prefix\@tempa\endcsname
+ \ifx\@tempc\relax
+ \KV@errx
+ {\@tempa\space undefined}%
+ \else
+ \ifx\@empty#3\@empty
+ \KV@default
+ \else
+ \KV@@sp@def\@tempb{#2}%
+ \expandafter\@tempc\expandafter{\@tempb}\relax
+ \fi
+ \fi
+ \fi}
+\def\KV@default{%
+ \expandafter\let\expandafter\@tempb
+ \csname\KV@prefix\@tempa @default\endcsname
+ \ifx\@tempb\relax
+ \KV@errx{No value specified for \@tempa}%
+ \else
+ \@tempb\relax
+ \fi}
+\def\KV@errx#1{\PackageError{keyval}{#1}{}}
+\def\@tempa#1{%
+\def\KV@@sp@def##1##2{%
+ \futurelet\KV@tempa\KV@@sp@d##2\@nil\@nil#1\@nil\relax##1}%
+\def\KV@@sp@d{%
+ \ifx\KV@tempa\@sptoken
+ \expandafter\KV@@sp@b
+ \else
+ \expandafter\KV@@sp@b\expandafter#1%
+ \fi}%
+\def\KV@@sp@b#1##1 \@nil{\KV@@sp@c##1}%
+ }
+\@tempa{ }
+\def\KV@@sp@c#1\@nil#2\relax#3{\KV@toks@{#1}\edef#3{\the\KV@toks@}}
+\def\define@key#1#2{%
+ \@ifnextchar[{\KV@def{#1}{#2}}{\@namedef{KV@#1@#2}####1}}
+\def\KV@def#1#2[#3]{%
+ \@namedef{KV@#1@#2@default\expandafter}\expandafter
+ {\csname KV@#1@#2\endcsname{#3}}%
+ \@namedef{KV@#1@#2}##1}
+\fi%
+\fi%
+
+\endinput