summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex')
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.external.code.tex131
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