diff options
Diffstat (limited to 'graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex')
-rw-r--r-- | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex new file mode 100644 index 0000000000..dabbda099e --- /dev/null +++ b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex @@ -0,0 +1,131 @@ +%-------------------------------------------- +% +% Package pgfplots, library for image externalization +% +% Copyright 2007/2008/2009 by Christian Feuersänger. +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see <http://www.gnu.org/licenses/>. +% +%-------------------------------------------- + +% This file is a wrapper which loads the external library. +% +% If we have a recent pgf version, use its external lib. If not: load +% the copy shipped with pgfplots. +% +% NOTE: +% the external library has been written by Christian Feuersänger as +% part of his work on pgfplots -- since it is general purpose, it is +% part of tikz. A copy comes with pgfplots. +% +% + +% \pgfplots@glob@TMPa = 1 iff we can rely on the external lib shipped +% with tikz: +% -> see also below for a list of patches! +\pgfplotsiffileexists{tikzlibraryexternal.code.tex}{% + \pgfplots@ifneedspgfcompabitibilitycode@has@pgf@one@zero@zero{% + \def\pgfplots@glob@TMPa{0}% + }{% + \def\pgfplots@glob@TMPa{1}% + }% +}{% + \def\pgfplots@glob@TMPa{0}% +}% + +\def\pgfplots@backw@compat@external@load{% + \immediate\write16{Package pgfplots external lib: loading complementary code for your PGF version...} + % Backwards compatibility: + \let\pgfplots@backw@compat@AtBeginDocument=\AtBeginDocument + \def\AtBeginDocument##1{}% + \input pgfplotsoldpgfsupp_pgfcoreexternal.code.tex + \input pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex + \let\AtBeginDocument=\pgfplots@backw@compat@AtBeginDocument +}% + + +\if1\pgfplots@glob@TMPa + \usetikzlibrary{external}% + % + % check for patches + \gdef\pgfplots@glob@TMPa{0}% + \pgfutil@ifundefined{c@tikzexternal@version}{% + \gdef\pgfplots@glob@TMPa{1}% + }{% + \gdef\pgfplots@glob@TMPa{0}% + }% + % + \if1\pgfplots@glob@TMPa + \pgfplots@backw@compat@external@load + \fi +\else + \pgfplots@backw@compat@external@load +\fi + +% This here is a section for patches. +% +% A patch contains software pieces which add individual functionality. +% +% The content is copyright Christian Feuersaenger. I added it to both +% PGF and TikZ such that it can be distributed easily +\expandafter\ifx\csname pgfsys@prepare@papersize\endcsname\relax + \immediate\write16{Package pgfplots external lib: patching system driver code for your PGF version...} + % Patch drivers.... this is needed since recent revisions. + \def\pgfsys@prepare@papersize#1#2{\pgfsys@papersize{#1}{#2}} + \begingroup + \expandafter\def\csname pgfplots@backw@ext@pgfsys-dvips.def\endcsname{% + \gdef\pgfsys@prepare@papersize##1##2{% + \expandafter\gdef\expandafter\pgfsys@atbegindocument\expandafter{\pgfsys@atbegindocument\special{papersize=##1,##2}}% + } + }% + \expandafter\def\csname pgfplots@backw@ext@pgfsys-dvipdfmx.def\endcsname{% + \gdef\pgfsys@prepare@papersize##1##2{% + \expandafter\gdef\expandafter\pgfsys@atbegindocument% + \expandafter{\pgfsys@atbegindocument + \special{papersize=##1,##2}% + } + } + }% + \expandafter\def\csname pgfplots@backw@ext@pgfsys-dvipdfm.def\endcsname{% + \gdef\pgfsys@prepare@papersize##1##2{% + \expandafter\gdef\expandafter\pgfsys@atbegindocument% + \expandafter{\pgfsys@atbegindocument + \special{papersize=##1,##2}% + } + } + }% + \csname pgfplots@backw@ext@\pgfsysdriver\endcsname + \endgroup +\fi + + + +\def\tikzexternal@externalizefig@systemcall@call@old#1{% + \iftikzexternal@verboseio + \immediate\write16{===== 'mode=convert with system call': Invoking '#1' ========}% + \fi + \immediate\write18{#1}% +}% + +\def\tikzexternal@externalizefig@systemcall@call@new#1{% + \iftikzexternal@verboseio + \immediate\write16{===== 'mode=convert with system call': Invoking '#1' ========}% + \fi + \pgfutil@shellescape{#1}% +}% +\ifx\tikzexternal@externalizefig@systemcall@call\tikzexternal@externalizefig@systemcall@call@old + \let\tikzexternal@externalizefig@systemcall@call=\tikzexternal@externalizefig@systemcall@call@new +\fi + +\endinput |