You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
6.1 KiB
205 lines
6.1 KiB
% Copyright 2006 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.
|
|
|
|
|
|
\catcode`\@=11\relax
|
|
|
|
\pgfutil@format@is@latextrue
|
|
|
|
\let\pgfutil@auxout=\@auxout
|
|
\def\pgfutil@writetoaux#1{\if@filesw\write\pgfutil@auxout{#1}\fi}
|
|
|
|
\let\pgfutil@tempcnta=\@tempcnta
|
|
\let\pgfutil@tempcntb=\@tempcntb
|
|
\let\pgfutil@voidb@x=\voidb@x
|
|
\let\pgfutil@toks@=\toks@
|
|
|
|
\let\pgfutil@packageerror=\PackageError
|
|
\let\pgfutil@packagewarning=\PackageWarning
|
|
|
|
\def\pgfutil@protect{\protect}
|
|
|
|
|
|
\def\pgfutil@definecolor{\definecolor}
|
|
\def\pgfutil@color{\color}
|
|
\def\pgfutil@colorlet#1#2{%
|
|
% If the color is a defined named color, we have to use the [named]
|
|
% option for colorlet to force xcolor to perform color model
|
|
% conversion.
|
|
\expandafter\ifx\csname\expandafter\string\csname color@#2\endcsname\endcsname\relax
|
|
\colorlet{#1}{#2}%
|
|
\else
|
|
\colorlet[named]{#1}{#2}%
|
|
\fi
|
|
}
|
|
|
|
\def\pgfutil@extractcolorspec{\extractcolorspec}
|
|
\def\pgfutil@convertcolorspec{\convertcolorspec}
|
|
|
|
\def\pgfutil@globalcolorsfalse{\let\ifglobalcolors\iffalse}
|
|
\def\pgfutil@globalcolorstrue{\let\ifglobalcolors\iftrue}
|
|
|
|
\let\pgfutil@minipage=\minipage
|
|
\let\pgfutil@endminipage=\endminipage
|
|
|
|
\def\pgfutil@doifcolorelse#1#2#3{%
|
|
\expandafter\ifx\csname\string\color@#1\endcsname\relax%
|
|
\let\pgf@next=\pgfutil@secondoftwo%
|
|
\else
|
|
\let\pgf@next=\pgfutil@firstoftwo%
|
|
\fi%
|
|
\pgf@next{#2}{#3}%
|
|
}
|
|
|
|
\let\pgfutil@raggedleft\raggedleft
|
|
\let\pgfutil@raggedright\raggedright
|
|
|
|
\let\pgfutil@flushglue=\@flushglue
|
|
|
|
\def\pgfutil@font@tiny{\tiny}
|
|
\def\pgfutil@font@scriptsize{\scriptsize}
|
|
\def\pgfutil@font@footnotesize{\footnotesize}
|
|
\def\pgfutil@font@small{\small}
|
|
\def\pgfutil@font@normalsize{\normalsize}
|
|
\def\pgfutil@font@large{\large}
|
|
\def\pgfutil@font@Large{\Large}
|
|
\def\pgfutil@font@huge{\huge}
|
|
\def\pgfutil@font@Huge{\Huge}
|
|
|
|
\def\pgfutil@font@itshape{\itshape}
|
|
\def\pgfutil@font@bfseries{\bfseries}
|
|
|
|
\def\pgfutil@font@normalfont{\normalfont}
|
|
|
|
\def\pgfutil@usemodule#1{\usepackage{#1}}
|
|
|
|
\let\pgfutil@selectfont=\selectfont
|
|
|
|
\let\pgfutil@tempboxa=\@tempboxa
|
|
|
|
\let\pgfmath@tempdima\pgfutil@tempdima
|
|
\let\pgfmath@tempdima\pgfutil@tempdima
|
|
\let\pgfmath@tempcnta\pgfutil@tempcnta
|
|
\let\pgfmath@tempcntb\pgfutil@tempcntb
|
|
|
|
\def\pgfutil@check@rerun#1#2{\@newl@bel{pgf@lab}{#1}{#2}}
|
|
|
|
\AtBeginDocument{\AtEndDocument{\clearpage\the\pgfutil@everybye}}
|
|
|
|
\def\pgfutil@insertatbegincurrentpagefrombox#1{%
|
|
\edef\pgf@temp{\the\wd\pgfutil@abb}%
|
|
\global\setbox\pgfutil@abb\hbox{%
|
|
\unhbox\pgfutil@abb%
|
|
%
|
|
% the order in which \pgfutil@insertatbegincurrentpagefrombox
|
|
% matters unless we make the following -shift!
|
|
% To see this, consider writing two such statements. The second
|
|
% one will (naturally) be placed more to the right, although there
|
|
% is no apparent reason why it should.
|
|
%
|
|
% CF observed problems when placing patterns in XObjects without
|
|
% this skip (dvipdfmx driver for pgfplots shader=interp)
|
|
\hskip-\pgf@temp\relax%
|
|
#1%
|
|
}%
|
|
}
|
|
\newbox\pgfutil@abb%
|
|
\def\pgfutil@insertatbegincurrentpage#1{%
|
|
\expandafter\gdef\expandafter\pgfutil@abc\expandafter{\pgfutil@abc#1}%
|
|
}
|
|
\let\pgfutil@abc\pgfutil@empty%
|
|
\def\pgfutil@insertatbegineverypage#1{%
|
|
\expandafter\gdef\expandafter\pgfutil@abe\expandafter{\pgfutil@abe#1}%
|
|
}
|
|
\let\pgfutil@abe\pgfutil@empty%
|
|
|
|
\RequirePackage{everyshi}
|
|
\EveryShipout{%
|
|
% Add at begin page stuff
|
|
\setbox\@cclv=\vbox{%
|
|
\setbox\z@=\hbox{%
|
|
% the boxes \pgfutil@abe ("every page") and \pgfutil@abb ("current page")
|
|
% are used to generate pdf objects / dictionaries which are
|
|
% required for the graphics which are somewhere in the "real"
|
|
% page content.
|
|
% BUT: these pdf objects MUST NOT be affected by text layout
|
|
% shifts! Consequently, we have to undo \hoffset and \voffset
|
|
% (which are h/v shifts to the page layout).
|
|
%
|
|
% Note that this of importance for shadings. To be more
|
|
% specific: try out shadings with standalone (which uses
|
|
% \hoffset) and with xdvipdfmx (which appears to be more
|
|
% fragile than pdflatex) - they break unless we undo \hoffset
|
|
% and \voffset.
|
|
\ifdim\hoffset=0pt \else \hskip-\hoffset\fi
|
|
\pgfutil@abe\unhbox\pgfutil@abb\pgfutil@abc\global\let\pgfutil@abc\pgfutil@empty
|
|
\ifdim\hoffset=0pt \else \hskip+\hoffset\fi
|
|
}%
|
|
\wd\z@=\z@%
|
|
\ht\z@=\z@%
|
|
\dp\z@=\z@%
|
|
% ... see remark above regarding \hoffset/\voffset:
|
|
\ifdim\voffset=0pt \else \vskip-\voffset\fi
|
|
\box\z@%
|
|
\ifdim\voffset=0pt \else \vskip+\voffset\fi
|
|
%
|
|
% if TeX changes into vertical mode, it inserts \parskip and
|
|
% \lineskip. Disable it here:
|
|
\nointerlineskip%
|
|
\ifvbox\@cclv \unvbox\@cclv \else\hsize=\wd\@cclv \noindent\unhbox\@cclv \fi%
|
|
%\box\@cclv
|
|
% using \box instead of \unhbox or \unvbox
|
|
% has the advantage that glue settings won't be
|
|
% altered (as for \unhbox/\unvbox). But \box breaks compatibility
|
|
% with the 'remember picture' feature.
|
|
}%
|
|
}
|
|
|
|
% Preview hack: preview.sty hacks into \shipout (which is ok), but
|
|
% does not honour everyshi.sty (which is not ok). This causes everyshi
|
|
% material to get lost.
|
|
\AtBeginDocument{
|
|
\@ifpackageloaded{preview}{%
|
|
% Ok, package loaded. Swap definitions of everyshi.sty's shipout
|
|
% and preview.sty's shipout:
|
|
\ifPreview
|
|
\let\shipout\@EveryShipout@Org@Shipout%This is the null version of \shipout, created by preview and saved by everyshi
|
|
\let\@EveryShipout@Org@Shipout\pr@shipout% This is the original shipout
|
|
\let\pr@shipout\@EveryShipout@Shipout%
|
|
\fi
|
|
}{}%
|
|
}
|
|
|
|
% Guess the driver:
|
|
|
|
\def\pgfutil@guessdriver{
|
|
\ifx\HCode\@undefined%
|
|
\edef\pgfsysdriver{pgfsys-\Gin@driver}% should be right
|
|
\else%
|
|
\def\pgfsysdriver{pgfsys-tex4ht.def}% should be right
|
|
\fi%
|
|
}
|
|
|
|
% pgfcalendar uses translations
|
|
|
|
\ifx\translate\@undefined % check if \translate is available
|
|
\def\pgfutil@translate#1{#1}
|
|
\else
|
|
\def\pgfutil@translate#1{\translate{#1}}
|
|
\fi
|
|
|
|
% e-TeX primitives
|
|
|
|
\pgfutil@IfUndefined{protected}{%
|
|
\def\pgfutil@protected{}%
|
|
}{%
|
|
\let\pgfutil@protected\protected
|
|
}
|
|
|
|
\endinput
|
|
|