summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgfplots
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-08-06 22:47:59 +0000
committerKarl Berry <karl@freefriends.org>2014-08-06 22:47:59 +0000
commit1da164bf9c4fed03b30b98439a239f5a1873f9ae (patch)
tree2ed76752cb203cacf4135b821206b45c24b1a534 /Master/texmf-dist/tex/generic/pgfplots
parente16354c1642ffdd8e82798c9f0f60108e85059c6 (diff)
pgfplots (6aug14)
git-svn-id: svn://tug.org/texlive/trunk@34851 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgfplots')
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.external.code.tex62
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.fillbetween.code.tex36
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.polar.code.tex19
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.smithchart.code.tex6
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex13
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex4
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex8
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex17
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_patches.code.tex18
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex13
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreimage.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfutil-common-lists.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex239
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex5
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_trig_format.code.tex343
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/pgflibraryfillbetween.code.tex122
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibrarydecorations.softclip.code.tex25
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibraryfillbetween.code.tex177
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex321
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex1
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex8
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex214
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex20
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex15
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex22
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex215
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex29
39 files changed, 1666 insertions, 353 deletions
diff --git a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.external.code.tex b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.external.code.tex
index f9e27d52321..41fc81ba6f1 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.external.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.external.code.tex
@@ -1,6 +1,6 @@
%--------------------------------------------
%
-% Package pgfplots, library for high-level coordinates.
+% Package pgfplots, library for image externalization
%
% Copyright 2007/2008/2009 by Christian Feuersänger.
%
@@ -43,22 +43,60 @@
\def\pgfplots@glob@TMPa{0}%
}%
-% this is non-sense - we would need to load the external lib first...
-%\pgfutil@ifundefined{tikzexternal@getnextfilename@resetglobals}{%
-% \def\pgfplots@glob@TMPa{0}%
-%}{}%
-
-\if1\pgfplots@glob@TMPa
- \usetikzlibrary{external}%
-\else
+\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{}%
+ \def\AtBeginDocument##1{}%
\input pgfplotsoldpgfsupp_pgfcoreexternal.code.tex
- \let\AtBeginDocument=\pgfplots@backw@compat@AtBeginDocument
- %
\input pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex
+ \let\AtBeginDocument=\pgfplots@backw@compat@AtBeginDocument
+}%
+
+
+\if1\pgfplots@glob@TMPa
+ \usetikzlibrary{external}%
+ \pgfutil@ifundefined{tikzexternal@driver@pgfsys-pdftex.def}{%
+ \pgfplots@backw@compat@external@load
+ }{}%
+\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
\endinput
diff --git a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.fillbetween.code.tex b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.fillbetween.code.tex
index 36c5b4ddf61..3c3243abab1 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.fillbetween.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.fillbetween.code.tex
@@ -53,13 +53,21 @@
\pgfkeys{
/pgfplots/every fill between plot/.style={/pgfplots/area legend,/tikz/fill},
/tikz/soft clip assign/domain/.code args={#1:#2}{%
- \edef\pgfplots@loc@TMPa{(axis cs:#1,\pgfkeysvalueof{/pgfplots/ymin}) rectangle (axis cs:#2,\pgfkeysvalueof{/pgfplots/ymax})}%
- \pgfkeysalso{/tikz/soft clip assign/path/.expand once=\pgfplots@loc@TMPa}%
+ \pgfplotsifisvisualizationphase{%
+ \edef\pgfplots@loc@TMPa{%
+ (axis cs:#1,\pgfkeysvalueof{/pgfplots/ymin})
+ rectangle (axis cs:#2,\pgfkeysvalueof{/pgfplots/ymax})}%
+ \pgfkeysalso{/tikz/soft clip assign/path/.expand once=\pgfplots@loc@TMPa}%
+ }{}%
},%
/tikz/soft clip assign/y domain y/.style={/tikz/soft clip assign/domain y={#1}},
/tikz/soft clip assign/domain y/.code args={#1:#2}{%
- \edef\pgfplots@loc@TMPa{(axis cs:\pgfkeysvalueof{/pgfplots/xmin},#1) rectangle (axis cs:\pgfkeysvalueof{/pgfplots/xmax},#2)}%
- \pgfkeysalso{/tikz/soft clip assign/path/.expand once=\pgfplots@loc@TMPa}%
+ \pgfplotsifisvisualizationphase{%
+ \edef\pgfplots@loc@TMPa{%
+ (axis cs:\pgfkeysvalueof{/pgfplots/xmin},#1)
+ rectangle (axis cs:\pgfkeysvalueof{/pgfplots/xmax},#2)}%
+ \pgfkeysalso{/tikz/soft clip assign/path/.expand once=\pgfplots@loc@TMPa}%
+ }{}%
},%
%
/pgfplots/execute at begin axis@@/.add={}{%
@@ -68,6 +76,7 @@
},
}
+% #1: the value of /tikz/fill between/on layer
\def\pgfplotsfillbetween@ensure@clipping@on@layer{%
\ifpgfplots@clip
\pgfkeysgetvalue{/tikz/fill between/on layer}\pgfplots@loc@TMPa
@@ -80,7 +89,7 @@
\ifpgfutil@in@
% ah - already prepared. Good, nothing left to do.
\else
- \pgfplots@log3{fill between: found 'clip=true'. installing clip path for layer '\pgfplots@loc@TMPa'...}%
+ \pgfplots@log3{fill between: found 'clip=true'. Preparing pgfplotsextra instruction with clip path for layer '\pgfplots@loc@TMPa'...}%
\xdef\pgfplotsfillbetween@list@of@layers@with@clippath{\pgfplots@loc@TMPa,\pgfplotsfillbetween@list@of@layers@with@clippath}%
%
\edef\pgfplots@loc@TMPb{%
@@ -120,6 +129,7 @@
\tikzfillbetween[#2]{%
/pgfplots/.search also=/tikz,%
/pgfplots/.cd,%
+ /tikz/fill between/every last segment/.append style={/tikz/fill between/path after segment={#3}},%
#1%
}%
}{%
@@ -127,6 +137,16 @@
}%
}
+% ONLY TO BE USED AS LATER OPTION!
+\pgfkeysdef{/pgfplots/fill between/@ensure layers}{%
+ \ifpgfplots@layered@graphics
+ \else
+ \pgfplots@log3{fill between: activating layered graphics}%
+ \pgfplotsset{set layers}%
+ \pgfplots@set@options@of@layered@graphics
+ \fi
+}%
+
% SIDE-EFFECT: modifies \b@pgfplotsfillbetween@list@has@set@layers and
% \pgfplotsfillbetween@list@of@layers@with@clippath
\def\pgfplotslibraryfillbetweenpreparecurrentlayer{%
@@ -134,11 +154,11 @@
\ifx\pgfplots@loc@TMPa\pgfutil@empty
\else
\if0\b@pgfplotsfillbetween@list@has@set@layers
- \pgfplots@log3{fill between: activating layered graphics}%
- \pgfplotssetlateoptions{set layers}%
+ %
+ \pgfplotssetlateoptions{fill between/@ensure layers}%
\gdef\b@pgfplotsfillbetween@list@has@set@layers{1}%
\fi
- \pgfplotsfillbetween@ensure@clipping@on@layer
+ \pgfplotsfillbetween@ensure@clipping@on@layer%
\fi
}
diff --git a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.polar.code.tex b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.polar.code.tex
index 2e6f13df3e0..2cf8ef5235d 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.polar.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.polar.code.tex
@@ -37,6 +37,25 @@
ytick pos=right,
every axis title shift=1.2\baselineskip,
legend style={anchor=center},
+ /pgfplots/polar labels,
+ },
+ /pgfplots/polar labels/.code={
+ % this is equivalent to 'use units=false'. But that key is only available if the units lib is loaded.
+ \pgfplots@units@usefalse
+ \pgfkeysalso{%
+ % is this a good choice? No, it is not.
+ % In fact, I believe that neither xlabel nor ylabel is a good idea for a polar plot.
+ % BUT: if we simply leave the defaults, they will be placed outside of the circle - and
+ % this will confuse the units library which (for some reason) always generates labels.
+ every axis x label/.style={
+ at={(rel axis cs:0,0.5)},
+ anchor=north,
+ },
+ every axis y label/.style={
+ at={(0.2,0.85)},
+ anchor=center,
+ },
+ }%
},
/pgfplots/xticklabel in circle/.style={
xtick align=inside,
diff --git a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.smithchart.code.tex b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.smithchart.code.tex
index 003196bab83..611b12bbba0 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.smithchart.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.smithchart.code.tex
@@ -1480,7 +1480,11 @@
%
% compute the angle relative to (1,0):
\ifdim\pgfplots@Dim pt<0pt
- \pgfmathsubtract@{360}{\pgfplots@tmpangle}%
+ \pgfmathiftrigonometricusesdeg{%
+ \pgfmathsubtract@{360}{\pgfplots@tmpangle}%
+ }{%
+ \pgfmathsubtract@{6.28318530717959}{\pgfplots@tmpangle}%
+ }%
\fi
}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex b/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex
index 84971e5045f..4d44a17c005 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex
@@ -1130,6 +1130,19 @@
\pgfutil@ifnextchar[{\pgfplotstablenew@impl}{\pgfplotstablenew@impl[]}}
\def\pgfplotstablenew@impl[#1]#2#3{%
+ \ifx#3\pgfutil@undefined
+ \else
+ \ifx#3\relax
+ \else
+ % oh - there *is* already such a table. The 'getcolumnbyname' method suffers from a flaw in 'ifexists' that I do not want to fix right now.
+ % To work around that flaw, I merely clear the old table here:
+ % let's hope that '#3' really *was* a table and not some other junk...
+ \pgfplotslistforeachungrouped#3\as\pgfplotstable@loc@TMPa{%
+ \expandafter\let\csname\string#3@\pgfplotstable@loc@TMPa\endcsname=\relax%
+ }%
+ \fi
+ \fi
+ %
\pgfplotsscanlinelengthinitzero
% create a temporary column with the desired number of rows:
\pgfutil@in@\pgfplotstablegetrowsof{#2}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex b/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex
index f8cf773826b..cfd13a74a58 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex
@@ -360,6 +360,10 @@
% #2: table struct
% #3: true code
% #4: false code
+ % FIXME : THIS IS BUGGY: the macro may exist, but is it
+ % (still) part of the table!? Currently, there is a workaround
+ % such that \pgfplotstablenew cleans up and avoids that case..
+ % and we have no "drop column" currently.
ifexists =\pgfutil@ifundefined{\string##2@##1}{##4}{##3},
%
% Low level method to return (the actual content) of column #1 of
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex
index b3dcd2d6003..8b5a3eaa055 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex
@@ -80,5 +80,13 @@
\input pgfplotsoldpgfsupp_pgfutil-common-lists.tex
}{}%
+\pgfutil@IfUndefined{pgfmathiftrigonometricusesdeg}{%
+ \pgfutil@ifundefined{pgfmathdeclarefunction}{%
+ % PGF 2.00 !? Well, trig format won't work here.
+ }{%
+ \input pgfplotsoldpgfsupp_trig_format.code.tex
+ }%
+}{}%
+
\endinput
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex
index 0c47024409a..36aafda149d 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex
@@ -2,6 +2,23 @@
% compatibility with PGF 2.10
% ======================================================
%
+%%% This file is a copy of some part of PGF/Tikz.
+%%% It has been copied here to provide :
+%%% - compatibility with older PGF versions
+%%% - availability of PGF contributions by Christian Feuersaenger
+%%% which are necessary or helpful for pgfplots.
+%%%
+%%% It contains a couple of patches such that selected changes which
+%%% are also part of PGF/TikZ (and can be found in the development
+%%% version of PGF/TikZ) are available within pgfplots.
+%%%
+%%% Typically, these modifications have been done by the pgfplots team
+%%% as contribution to PGf/TIKZ
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
\def\pgfdeclarelayer#1{%
\pgfutil@ifundefined{pgf@layerbox@#1}{%
\expandafter\expandafter\csname pgf@newbox\endcsname\csname pgf@layerbox@#1\endcsname%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_patches.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_patches.code.tex
new file mode 100644
index 00000000000..698769ec1e5
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_patches.code.tex
@@ -0,0 +1,18 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% This file contains patches on top of PGF/Tikz.
+%%%
+%%% It has been copied here to provide :
+%%% - compatibility with older PGF versions
+%%% - availability of PGF contributions by Christian Feuersaenger
+%%% which are necessary or helpful for pgfplots.
+%%%
+%%% For reasons of simplicity, I have copied the whole file, including own contributions AND
+%%% PGF parts. The copyrights are as they appear in PGF.
+%%%
+%%% Note that pgfplots has compatible licenses.
+%%%
+%%% This copy has been modified in the following ways:
+%%% - nested \input commands have been updated
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex
index 1929b2faccf..733cb47a4db 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex
@@ -13,8 +13,13 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
+%%% Date of this copy: Mi 9. Jul 15:41:39 CEST 2014 %%%
@@ -27,7 +32,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreexternal.code.tex,v 1.19 2012/06/18 20:39:58 ludewich Exp $
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreexternal.code.tex,v 1.20 2013/07/15 12:05:31 tantau Exp $
@@ -200,7 +205,7 @@
% This will be overwritten by the tikz external lib if it is loaded.
\def\pgfexternal@error@no@shipout{%
- \PackageError{pgf}{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname'. Perhaps there was a typo somewhere? Please check that your document contains '\string\beginpgfgraphicnamed{\pgfactualjobname} ... \string\endpgfgraphicnamed'}%
+ \pgferror{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname'. Perhaps there was a typo somewhere? Please check that your document contains '\string\beginpgfgraphicnamed{\pgfactualjobname} ... \string\endpgfgraphicnamed'}%
}%
@@ -512,7 +517,7 @@
\immediate\closeout\pgf@plotwrite
\fi
\fi
- \pgfsys@papersize{\the\wd\pgfpic}{\the\dimen0}%
+ \pgfsys@prepare@papersize{\the\wd\pgfpic}{\the\dimen0}%
%
\setbox0=\vbox{%
% I admit that I don't know why there is this kerning:
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreimage.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreimage.code.tex
index 5283de70b9d..f352550430d 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreimage.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreimage.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Mon Mar 22 16:42:03 CET 2010 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex
index 613a1993cc0..7665a76afb6 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex
index 08d1e5e6d92..69ef0d9318b 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex
index e505a111825..c2edfccaea4 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex
index 9db17f509b6..b40528c43af 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
index 352e13e9e46..c45a35f60c8 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex
index 1356aaec9ab..0e07fdc8a87 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Fr 14. Feb 21:37:39 CET 2014 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex
index c4a141cc566..aa3c0e8f364 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex
index 9f620fb6f82..8a3f3228d4a 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Sa 7. Dez 20:58:23 CET 2013 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex
index 6286e9cebb0..a572afc552f 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Sa 7. Dez 20:58:23 CET 2013 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex
index da95f766fee..21ba1b5b2a0 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Sa 7. Dez 20:58:23 CET 2013 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
index f7889097516..58eb9de28f1 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfutil-common-lists.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfutil-common-lists.tex
index a47bd4eb96a..4f2f3d68c61 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfutil-common-lists.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfutil-common-lists.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Sa 7. Dez 20:58:23 CET 2013 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex
index 23f088e84e4..b1e21bc5222 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex
@@ -13,8 +13,13 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
+%%% Date of this copy: Mi 9. Jul 15:41:39 CEST 2014 %%%
@@ -158,8 +163,6 @@
\pgfkeysalso{/tikz/external/figure list=true,/pgf/images/aux in dpth=true}%
},
mode=convert with system call,
- system call/.initial={pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"},
-% system call/.initial={pdflatex -interaction=batchmode -jobname '\image' '\texsource'; pdftops -eps \image.pdf},
force remake/.is if=tikzexternal@force@remake,
force remake/.default=true,
failed ref warnings for/.initial={\ref,\cite,\pageref},
@@ -277,17 +280,51 @@
up to date check/.is choice,
up to date check/simple/.code={\def\tikzexternal@uptodate@mode{0}},
% md5 relies on \pdfmdfivesum of pdftex. It uses 'diff' as fallback if we do not have that command.
- up to date check/md5/.code={%
- \pgfutil@ifundefined{pdfmdfivesum}{%
- \pgfkeys{/tikz/external/up to date check=diff}%
- }{%
- \def\tikzexternal@uptodate@mode{1}%
- }%
- },
+ up to date check/md5/.code={\def\tikzexternal@uptodate@mode{1}},
up to date check/diff/.code={\def\tikzexternal@uptodate@mode{2}},
up to date check=md5,
}
+\expandafter\def\csname tikzexternal@driver@pgfsys-pdftex.def\endcsname{%
+ \pgfutil@IfUndefined{directlua}{%
+ \pgfkeyssetvalue{/tikz/external/system call}{%
+ pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
+ }%
+ }{%
+ \pgfkeyssetvalue{/tikz/external/system call}{%
+ lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
+ }%
+ }%
+}%
+%--------------------------------------------------
+% \expandafter\def\csname tikzexternal@driver@pgfsys-dvipdfm.def\endcsname{%
+% \pgfkeyssetvalue{/tikz/external/system call}{%
+% latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
+% && dvipdfm "\image".dvi %
+% }%
+% }%
+%--------------------------------------------------
+\expandafter\def\csname tikzexternal@driver@pgfsys-xetex.def\endcsname{%
+ \pgfkeyssetvalue{/tikz/external/system call}{%
+ xelatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
+ }%
+}%
+\expandafter\def\csname tikzexternal@driver@pgfsys-dvips.def\endcsname{%
+ \pgfkeyssetvalue{/tikz/external/system call}{%
+ latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource" %
+ && dvips -o "\image".ps "\image".dvi %
+ }%
+}%
+
+% Auto-select a suitable default value fo 'system call':
+\pgfutil@ifundefined{tikzexternal@driver@\pgfsysdriver}{%
+ % fallback. We do not know the driver here.
+ \csname tikzexternal@driver@pgfsys-pdftex.def\endcsname
+}{%
+ \csname tikzexternal@driver@\pgfsysdriver\endcsname
+}%
+
+
\def\tikzsetfigurename#1{\pgfkeyssetvalue{/tikz/external/figure name}{#1}}%
\def\tikzappendtofigurename#1{\pgfkeys{/tikz/external/figure name/.add={}{#1}}}
@@ -472,6 +509,9 @@
% '\ref,\pageref,\cite'.
%
% For use in the aux lock handling only.
+%
+% ATTENTION: this is used if and only if *all* references are broken
+% (because the .aux file is NOT read at all)!
\def\tikzexternalauxlock@handleref{%
\let\pgf@external@grab@refundefinedtrue=\pgf@external@grab@refundefinedtrue@orig
%
@@ -498,11 +538,18 @@
\fi
\fi
}%
-\def\tikzexternalauxlock@handleref@repl#1{\pgfutil@ifnextchar[{\tikzexternalauxlock@handleref@repl@{#1}}{\tikzexternalauxlock@handleref@repl@{#1}[]}}%
-\def\tikzexternalauxlock@handleref@repl@#1[#2]#3{%
+\def\tikzexternalauxlock@handleref@repl#1{%
+ \pgfutil@ifnextchar[{\tikzexternalauxlock@handleref@gobble@opt{#1}}{\tikzexternalauxlock@handleref@repl@{#1}}%
+}%
+% silently discard the options. We merely need to generate a warning.
+\def\tikzexternalauxlock@handleref@gobble@opt#1[#2]{%
+ % there may be more than one set of options (biblatex's \cite):
+ \pgfutil@ifnextchar[{\tikzexternalauxlock@handleref@gobble@opt{#1}}{\tikzexternalauxlock@handleref@repl@{#1}}%
+}%
+\def\tikzexternalauxlock@handleref@repl@#1#2{%
\tikzifexternalizingcurrent{%
% note that '#1' is NO control sequence! it is a protected string
- \csname tikzexternalauxlock@handleref@orig@#1\endcsname{#3}%
+ \csname tikzexternalauxlock@handleref@orig@#1\endcsname{#2}%
\begingroup
\def\n{\pgfexternal@hat\pgfexternal@hat J}%
\tikzexternal@assemble@systemcall{\pgfactualjobname}{\pgf@tempa}%
@@ -510,7 +557,7 @@
\pgfexternalstorecommand{%
\noexpand\begingroup
\noexpand\toks0={\pgf@tempa}%
- \noexpand\immediate\noexpand\write16{\tikzexternalauxlock@handleref@warning{#3}{\noexpand\the\noexpand\toks0}}%
+ \noexpand\immediate\noexpand\write16{\tikzexternalauxlock@handleref@warning{#2}{\noexpand\the\noexpand\toks0}}%
\noexpand\G@refundefinedtrue
\noexpand\endgroup
}%
@@ -927,14 +974,16 @@
% Will write something to the make file. If the makefile is not yet
% opened, #1 will be written as soon as it *is* opened.
\def\tikzexternalwritetomakefile#1{%
- \pgfutil@ifundefined{tikzexternal@outmakefile}{%
- \expandafter\gdef\expandafter\tikzexternal@outmakefile@pendingcommands\expandafter{%
- \tikzexternal@outmakefile@pendingcommands
+ \if\tikzexternal@opmode5% mode='list and make'
+ \pgfutil@ifundefined{tikzexternal@outmakefile}{%
+ \expandafter\gdef\expandafter\tikzexternal@outmakefile@pendingcommands\expandafter{%
+ \tikzexternal@outmakefile@pendingcommands
+ \immediate\write\tikzexternal@outmakefile{#1}%
+ }%
+ }{%
\immediate\write\tikzexternal@outmakefile{#1}%
}%
- }{%
- \immediate\write\tikzexternal@outmakefile{#1}%
- }%
+ \fi
}%
\def\tikzexternal@dep@file@name{}
@@ -955,33 +1004,67 @@
% could be auto-generated: empty file name means "picture
% won't be externalized". Skip it.
\else
- \edef\tikzpicturedependsonfile@name{#1.\tikzexternaldepext}%
- \ifx\tikzexternal@dep@file@name\tikzpicturedependsonfile@name
- % file is open and ready.
- \else
- % create new output file.
- \pgfutil@ifundefined{tikzexternal@dep@file}{%
- \begingroup
- % this makes \tikzexternal@dep@file global:
- \globaldefs=1
- % this gets round '\outer\newwrite' in plain TeX:
- \csname newwrite\endcsname\tikzexternal@dep@file
- \endgroup
- }{}%
- \ifx\tikzexternal@dep@file@name\pgfutil@empty
- \else
- % it is already open. Close it.
- \immediate\closeout\tikzexternal@dep@file
- \fi
- \global\let\tikzexternal@dep@file@name=\tikzpicturedependsonfile@name
- \immediate\openout\tikzexternal@dep@file=\tikzexternal@dep@file@name\relax
- \fi
- \immediate\write\tikzexternal@dep@file{#1\tikzexternalimgextension: #2}%
+ % if we encounter any dependencies while we externalize a
+ % picture, we have to write these things into the image's .dep
+ % file.
+ \tikzifexternalizingcurrent
+ {\tikzexternalfiledependsonfile@append@to@dep@file{#1}{#2}}%
+ {\tikzexternalfiledependsonfile@append@to@makefile{#1}{#2}}%
\fi
\endgroup
}%
\def\tikzexternalfiledependsonfile#1#2{}% NO-OP until \tikzexternalize has been called.
+% sub-routine of \tikzexternalfiledependsonfile which appends stuff to
+% the pictures .dep file.
+%
+% The file #1.dep is generated during the externalization of #1. If
+% you change and/or overwrite it in any other context, its information
+% might get lost (because #1 won't be regenerated).
+%
+% Consequently, this here has to be called if and only if #1 is about
+% to be externalized.
+\def\tikzexternalfiledependsonfile@append@to@dep@file#1#2{%
+ % write every dependency which is defined *INSIDE* of the current
+ % picture into the .dep file of the current picture:
+ \tikzexternalgetcurrentfilename\tikzpicturedependsonfile@name
+ \edef\tikzpicturedependsonfile@name{\tikzpicturedependsonfile@name.\tikzexternaldepext}%
+ %\edef\tikzpicturedependsonfile@name{#1.\tikzexternaldepext}%
+ \ifx\tikzexternal@dep@file@name\tikzpicturedependsonfile@name
+ % file is open and ready.
+ \else
+ % create new output file.
+ \pgfutil@ifundefined{tikzexternal@dep@file}{%
+ \begingroup
+ % this makes \tikzexternal@dep@file global:
+ \globaldefs=1
+ % this gets round '\outer\newwrite' in plain TeX:
+ \csname newwrite\endcsname\tikzexternal@dep@file
+ \endgroup
+ }{}%
+ \ifx\tikzexternal@dep@file@name\pgfutil@empty
+ \else
+ % it is already open. Close it.
+ \immediate\closeout\tikzexternal@dep@file
+ \fi
+ \global\let\tikzexternal@dep@file@name=\tikzpicturedependsonfile@name
+ \immediate\openout\tikzexternal@dep@file=\tikzexternal@dep@file@name\relax
+ \fi
+ \immediate\write\tikzexternal@dep@file{#1\tikzexternalimgextension: #2}%
+}
+
+% sub-routine of \tikzexternalfiledependsonfile which appends stuff to
+% the makefile of the current \jobname .
+%
+% This is used for dependencies which are recomputed by every run of
+% tex; we must not write them into #1.dep (for reasons explained in
+% the documentation of
+% \tikzexternalfiledependsonfile@append@to@dep@file)
+\def\tikzexternalfiledependsonfile@append@to@makefile#1#2{%
+ \edef\tikzexternal@temp{#1\tikzexternalimgextension: #2}%
+ \expandafter\tikzexternalwritetomakefile\expandafter{\tikzexternal@temp}%
+}
+
% Adds a dependency for the NEXT picture which is about to be
% externalized. If we are currently inside of a picture, the
% dependency is added for this current picture.
@@ -1163,6 +1246,7 @@
\immediate\write16{A tikzpicture has been optimized away. Use '/tikz/external/optimize=false' to disable this.}%
\fi
\tikzexternal@closeenvironments
+ \pgfkeysvalueof{/tikz/external/optimize away text/.@cmd}tikzpicture\pgfeov%
}
% Processes tikzpicture normally; without any externalization.
@@ -1203,10 +1287,25 @@
}
\long\def\tikzexternal@forcegraphics@@#1{\tikzexternal@forcegraphics@@@}%
\def\tikzexternal@forcegraphics@@@{%
+ \if5\tikzexternal@opmode
+ \let\tikz@refundefinedtrue@@=\G@refundefinedtrue
+ \gdef\G@refundefinedtrue{%
+ \tikz@refundefinedtrue@@
+ \tikzexternal@forceremake@undefined@reference@handler
+ }%
+ \fi
\expandafter\pgfincludeexternalgraphics\expandafter{\tikzexternal@curfilename}%
+ \if5\tikzexternal@opmode
+ \global\let\G@refundefinedtrue=\tikz@refundefinedtrue@@
+ \fi
\tikzexternal@closeenvironments
}
+\def\tikzexternal@forceremake@undefined@reference@handler{%
+ \immediate\write16{===== 'mode=list and make': encountered undefined reference in current picture. Adding dependency to FORCEREMAKE. Rerun make to update the picture.' ========^^J}%
+ \tikzpicturedependsonfile{FORCEREMAKE}%
+}%
+
% Simply replaces the complete picture by some placeholder text.
% It is used by 'mode=list only' to reduce runtime.
\def\tikzexternal@listmodepicture{%
@@ -1260,6 +1359,9 @@
\def\endtikzpicture{%
\tikzexternal@origendpicture
\pgf@externalend
+ %
+ \tikzexternal@ensure@nonempty@floats
+ %
\let\tikzpicture=\tikzexternal@tikzpicture@replacement
\let\endtikzpicture=\tikzexternal@origendpicture
\iftikzexternal@optimize
@@ -1271,6 +1373,21 @@
\tikzpicture
}%
+% If a sequence of floats containing JUST tikzpictures is
+% externalized, this results in EMPTY floats. Empty floats, in turn,
+% can confuse latex; it thinks it did something wrong.
+%
+% Solution: Avoid empty floats by writing junk into it.
+%
+% Note that this method is only invoked if \ifpgf@external@grabshipout
+% is true and if the text is OUTSIDE of the original shipout routine.
+% In other words: this text is being thrown away.
+%
+% see
+% http://tex.stackexchange.com/questions/54625/why-is-fixltx2e-incompatible-with-tikzexternalize
+\def\tikzexternal@ensure@nonempty@floats{%
+ tikzexternal: picture has been externalized. This text is required to avoid empty floats.
+}%
% 1. Discards the current picture in this document.
% 2. Checks whether an image exists already. If that is the case: acquire it.
@@ -1404,11 +1521,18 @@
\fi
}
+\pgfutil@IfUndefined{pdfmdfivesum}{%
+}{%
+ % predefine to this value. This does only make sense for pdftex.
+ % note that the latex library for 'external' loads \usepackage{pdftexcmds} which \let's this to \pdf@mdfivesum:
+ \let\tikzexternal@mdfivesum=\pdfmdfivesum
+}%
+
\long\def\tikzexternal@computemdfivesum#1{%
\t@tikzexternal@tmpb={#1}%
\edef\tikzexternal@temp{\the\t@tikzexternal@tmpb}%
% \meaning results in a string of catcode 12 - which is expandable.
- \edef\pgfretval{\pdfmdfivesum{\meaning\tikzexternal@temp}}%
+ \edef\pgfretval{\tikzexternal@mdfivesum{\meaning\tikzexternal@temp}}%
}
\long\def\tikzexternal@computemdfivesum@diff@fallback#1{%
\t@tikzexternal@tmpb={#1}%
@@ -1442,8 +1566,25 @@
\def\tikzexternal@check@uptodate@ext{.md5}
+\def\tikzexternal@check@uptodate@mode@warn@fallback{%
+ \message{! Package tikz Warning: The key 'up to date check=md5' is impossible, there is no macro to compute MD5. Falling back to 'up to date check=diff'.}%
+ %
+ % warn only once:
+ \global\let\tikzexternal@check@uptodate@mode@warn@fallback=\relax
+}%
+
% assigns the boolean \iftikzexternal@file@isuptodate
\long\def\tikzexternal@check@uptodate@mode#1{%
+ \if1\tikzexternal@uptodate@mode
+ % up to date check=md5:
+ % check if we CAN compute MD5 sums:
+ \pgfutil@IfUndefined{tikzexternal@mdfivesum}{%
+ % we cannot compute md5 sums - fallback to diff.
+ \tikzexternal@check@uptodate@mode@warn@fallback
+ \def\tikzexternal@uptodate@mode{2}%
+ }{}%
+ \fi
+ %
\ifcase\tikzexternal@uptodate@mode
% up to date check=simple
% nothing to do -- file existance is checked anyway.
@@ -1530,7 +1671,7 @@
\xdef\pgf@tempa{\noexpand\pgf@findfile\pgfsys@imagesuffixlist:+{\tikzexternal@curfilename}}%
\pgf@tempa
\ifx\pgf@filename\pgfutil@empty%
- \PackageError{tikz}{Sorry, the system call '#1' did NOT result in a usable output file '\tikzexternal@curfilename' (expected one of \pgfsys@imagesuffixlist). Please verify that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or something like that. Or maybe the command simply failed? Error messages can be found in '\tikzexternal@curfilename.log'. If you continue now, I'll try to typeset the picture}%
+ \tikzerror{Sorry, the system call '#1' did NOT result in a usable output file '\tikzexternal@curfilename' (expected one of \pgfsys@imagesuffixlist). Please verify that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or something like that. Or maybe the command simply failed? Error messages can be found in '\tikzexternal@curfilename.log'. If you continue now, I'll try to typeset the picture}{}%
\fi
}%
@@ -1540,18 +1681,18 @@
\begingroup
\tikzexternal@assemble@systemcall{\pgfactualjobname}{\pgf@tempa}%
\toks0=\expandafter{\pgf@tempa}%
- \PackageError{tikz}{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname', but it seems there is no such image in the document!?
+ \tikzerror{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname', but it seems there is no such image in the document!?
\if\tikzexternal@opmode4 ^^J
\space\space You are currently using 'mode=convert with system call'. This problem can happen if the image (or one of the images preceeding it) was declared inside of a \string\label{} (i.e. in the .aux file): 'convert with system call' has no access to the main aux file.^^J
\space\space Possible solutions in this case:^^J
-\space\space a) Try using 'mode=list and make',^^J
-\space\space b) Issue the externalization command '\the\toks0' *manually* (also check the preceeding externalized images, perhaps the file name sequence is not correct).^^J
+\space\space (a) Try using 'mode=list and make',^^J
+\space\space (b) Issue the externalization command '\the\toks0' *manually* (also check the preceeding externalized images, perhaps the file name sequence is not correct).^^J
\space\space Repeat: the resulting image was EMPTY, your attention is required
\else
\if\tikzexternal@opmode5 ^^J
\space\space You are currently using 'mode=list and make'. Possible solutions:^^J
-\space\space a) Try to delete `\tikzexternal@realjob.makefile'. Perhaps it is not up-to-date.^^J
-\space\space b) Perhaps pictures are declared inside of \string\label{} and the .aux file is not up-to-date. Re-run latex, perhaps re-generate the graphics as well.^^J
+\space\space (a) Try to delete `\tikzexternal@realjob.makefile'. Perhaps it is not up-to-date.^^J
+\space\space (b) Perhaps pictures are declared inside of \string\label{} and the .aux file is not up-to-date. Re-run latex, perhaps re-generate the graphics as well.^^J
\space\space Repeat: the resulting image was EMPTY, your attention is required
\fi
\fi}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex
index bcef9c1eda1..7e41bce2e56 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex
@@ -13,6 +13,11 @@
%%% This copy has been modified in the following ways:
%%% - nested \input commands have been updated
%%%
+%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Date of this copy: Di 25. Dez 18:14:20 CET 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_trig_format.code.tex b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_trig_format.code.tex
new file mode 100644
index 00000000000..4937d000e0a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_trig_format.code.tex
@@ -0,0 +1,343 @@
+% This file contains patches to support 'trig format'
+%
+%%% This file is a copy of some part of PGF/Tikz.
+%%% It has been copied here to provide :
+%%% - compatibility with older PGF versions
+%%% - availability of PGF contributions by Christian Feuersaenger
+%%% which are necessary or helpful for pgfplots.
+%%%
+%%% This file contains just the functionality for trig format (written by Christian Feuersaenger).
+%%%
+% Support for the contents of this file will NOT be done by the PGF/TikZ team.
+% Please contact the author and/or maintainer of pgfplots (Christian Feuersaenger) if you need assistance in conjunction
+% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
+% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\pgfkeys{
+ /pgf/trig format/.is choice,
+ /pgf/trig format/deg/.code={\def\pgfmath@trig@format@choice{0}},
+ /pgf/trig format/rad/.code={\def\pgfmath@trig@format@choice{1}},
+ /pgf/trig format/deg,
+}
+
+% Executes #1 if 'trig format=deg' and #2 otherwise.
+\def\pgfmathiftrigonometricusesdeg#1#2{%
+ \if0\pgfmath@trig@format@choice
+ #1%
+ \else
+ #2%
+ \fi
+}%
+
+\def\pgfmath@scale@rad@to@deg#1{%
+ #1=57.29577#1\relax% 57.29577 = 360/(2*pi)
+}%
+\def\pgfmath@scale@deg@to@rad#1{%
+ #1=3.14159#1%
+ \divide#1180\relax%
+}%
+
+\def\pgfmathsin@#1{%
+ % Let #1 = a.b
+ % Then sin(#1) \approx (1-b)*sin(a) + b*sin(a+1)
+ %
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@rad@to@deg\pgfmath@x
+ \fi
+ \advance\pgfmath@x-90pt\relax%
+ \afterassignment\pgfmath@gobbletilpgfmath@
+ \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@
+ \divide\c@pgfmath@counta360\relax%
+ \multiply\c@pgfmath@counta-360\relax%
+ \advance\pgfmath@x\c@pgfmath@counta pt\relax%
+ \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi%
+ \ifdim\pgfmath@x<180pt\relax%
+ \else
+ \pgfmath@x-\pgfmath@x%
+ \advance\pgfmath@x360pt\relax%
+ \fi%
+ % Now 0 <= x < 179. So split x into integer and decimal...
+ %
+ \afterassignment\pgfmath@xa%
+ \expandafter\c@pgfmath@counta\the\pgfmath@x\relax%
+ %
+ % ...if #1 is an integer, don't do anything fancy.
+ \ifdim\pgfmath@xa=0pt%
+ \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt\relax%
+ \else%
+ \pgfmath@x-\pgfmath@xa%
+ \advance\pgfmath@x1pt\relax%
+ \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x%
+ \advance\c@pgfmath@counta1\relax%
+ \ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi%
+ \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa%
+ \fi%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup
+}
+
+% \pgfmathcos
+%
+% Calculate the cosine of #1 (in degrees).
+%
+\def\pgfmathcos@#1{%
+ % Let x = a.b
+ % Then cos(x) \approx (1-b)*cos(a) + b*cos(a+1)
+ %
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@rad@to@deg\pgfmath@x
+ \fi
+ \afterassignment\pgfmath@gobbletilpgfmath@%
+ \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@%
+ \divide\c@pgfmath@counta360\relax%
+ \multiply\c@pgfmath@counta-360\relax%
+ \advance\pgfmath@x\c@pgfmath@counta pt\relax%
+ \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi%
+ \ifdim\pgfmath@x<180pt\relax%
+ \else%
+ \pgfmath@x-\pgfmath@x%
+ \advance\pgfmath@x360pt\relax%
+ \fi%
+ % Now 0 <= x < 179. So split x into integer and decimal...
+ %
+ \afterassignment\pgfmath@xa%
+ \expandafter\c@pgfmath@counta\the\pgfmath@x\relax%
+ %
+ % ...if #1 is an integer, don't do anything fancy.
+ \ifdim\pgfmath@xa=0pt%
+ \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt%
+ \else%
+ \pgfmath@x-\pgfmath@xa%
+ \advance\pgfmath@x1pt\relax%
+ \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x%
+ \advance\c@pgfmath@counta1\relax%
+ \ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi%
+ \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa%
+ \fi%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
+}
+
+\def\pgfmathasin@#1{%
+ \begingroup%
+ \pgfmath@x=#1pt %
+ \pgfmath@xa\pgfmath@x%
+ \edef\pgf@temp{\pgf@sys@tonumber\pgfmath@x}%
+ % compute lossless '*1000' operation:
+ \expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
+ \pgfmath@x=\pgfmathresult pt %
+ \ifdim\pgfmath@x<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \pgfmath@table@lookup{\pgfmath@x}{pgfmath@acos@}{1001}%
+ \pgfmath@x=-\pgfmath@x
+ \advance\pgfmath@x90pt\relax%
+ \ifdim\pgfmath@xa<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@deg@to@rad\pgfmath@x
+ \fi
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
+}
+\def\pgfmathacos@#1{%
+ \begingroup%
+ \pgfmath@x#1pt\relax%
+ \pgfmath@xa\pgfmath@x%
+ \edef\pgf@temp{\pgf@sys@tonumber\pgfmath@x}%
+ % compute lossless '*1000' operation:
+ \expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
+ \pgfmath@x=\pgfmathresult pt %
+ \ifdim\pgfmath@x<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \pgfmath@table@lookup{\pgfmath@x}{pgfmath@acos@}{1001}%
+ \ifdim\pgfmath@xa<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \advance\pgfmath@x by180pt\relax%
+ \fi%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@deg@to@rad\pgfmath@x
+ \fi
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
+}
+
+\def\pgfmathatan@#1{%
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \pgfmath@xa\pgfmath@x%
+ \ifdim\pgfmath@x<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \pgfmath@xb\pgfmath@x%
+ \ifdim\pgfmath@x>1pt\relax%
+ \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
+ \pgfmathreciprocal@{\pgfmath@temp}%
+ \pgfmath@x\pgfmathresult pt\relax%
+ \fi%
+ % compute lossless '*1000' operation:
+ \edef\pgf@temp{\pgf@sys@tonumber\pgfmath@x}%
+ \expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
+ \pgfmath@x=\pgfmathresult pt %
+ \pgfmath@table@lookup{\pgfmath@x}{pgfmath@atan@}{1001}%xxx
+ \ifdim\pgfmath@xb>1pt\relax%
+ \pgfmath@x=-\pgfmath@x%
+ \advance\pgfmath@x90pt%
+ \fi%
+ \ifdim\pgfmath@xa<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@deg@to@rad\pgfmath@x
+ \fi
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
+}
+
+\expandafter\def\csname pgfmathatan2@\endcsname#1#2{%
+ % Note: first parameter is y (!), second is x (!)
+ \begingroup%
+ \pgfmath@y=#1pt\relax%
+ \ifdim\pgfmath@y<0pt\relax%
+ \pgfmath@y=-\pgfmath@y%
+ \fi%
+ \ifdim\pgfmath@y<0.001pt\relax%
+ \ifdim#2pt<0pt\relax%
+ \pgfmath@x=-180pt\relax%
+ \else%
+ \ifdim#2pt>0pt\relax%
+ \pgfmath@x=0pt\relax%
+ \else%
+ \ifdim#1pt<0pt%
+ \pgfmath@x=-90pt\relax%
+ \else%
+ \pgfmath@x=90pt\relax%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \pgfmathabs@{#1}\let\pgfmath@tempa\pgfmathresult%
+ \pgfmathabs@{#2}\let\pgfmath@tempb\pgfmathresult%
+ \ifdim\pgfmath@tempa pt>\pgfmath@tempb pt%
+ \pgfmathdivide@{#2}{\pgfmath@tempa}%
+ \expandafter\pgfmathatan@\expandafter{\pgfmathresult}%
+ \pgfmath@x=90pt%
+ \advance\pgfmath@x by-\pgfmathresult pt\relax%
+ \else%
+ \pgfmathdivide@{\pgfmath@tempa}{#2}%
+ \expandafter\pgfmathatan@\expandafter{\pgfmathresult}%
+ \pgfmath@x=\pgfmathresult pt\relax%
+ \ifdim#2pt<0pt%
+ \advance\pgfmath@x by180pt\relax%
+ \fi%
+ \fi%
+ \ifdim#1pt<0pt\relax%
+ \pgfmath@x=-\pgfmath@x%
+ \fi%
+ \fi%
+ \if1\pgfmath@trig@format@choice
+ % trig format=rad
+ \pgfmath@scale@deg@to@rad\pgfmath@x
+ \fi
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
+}
+
+% FPU:
+
+
+\let\pgfmath@basic@sin@=\pgfmathsin@
+\let\pgfmath@basic@cos@=\pgfmathcos@
+\let\pgfmath@basic@tan@=\pgfmathtan@
+\let\pgfmath@basic@atan@=\pgfmathatan@
+\let\pgfmath@basic@asin@=\pgfmathasin@
+\let\pgfmath@basic@acos@=\pgfmathacos@
+\let\pgfmath@basic@cot@=\pgfmathcot@
+\let\pgfmath@basic@sec@=\pgfmathsec@
+\let\pgfmath@basic@cosec@=\pgfmathcosec@
+
+% Computes #1(#2) where #1 is a trigonometric function, i.e.
+% #1(#2) = #1( #2 + r*360 )
+%
+% #1 is a one-argument macro which assigns \pgfmathresult.
+\def\pgfmathfloatTRIG@#1#2{%
+ \if0\pgfmath@trig@format@choice
+ % trig format=deg
+ \expandafter\ifx\csname pgfmathfloatTRIG@NUM\endcsname\relax%
+ % Lazy evaluation:
+ \pgfmathfloatcreate{1}{3.6}{2}%
+ \global\let\pgfmathfloatTRIG@NUM=\pgfmathresult
+ \pgfmathfloatcreate{1}{2.77777777777778}{-3}%
+ \global\let\pgfmathfloatTRIG@NUM@INV=\pgfmathresult
+ \fi
+ \pgfmathfloatmodknowsinverse@{#2}{\pgfmathfloatTRIG@NUM}{\pgfmathfloatTRIG@NUM@INV}%
+ \else
+ % trig format=rad
+ \expandafter\ifx\csname pgfmathfloatTRIG@rad@NUM\endcsname\relax%
+ % Lazy evaluation:
+ \pgfmathfloatcreate{1}{6.28318530717959}{0}%
+ \global\let\pgfmathfloatTRIG@rad@NUM=\pgfmathresult
+ \pgfmathfloatcreate{1}{1.59154943091895}{-1}%
+ \global\let\pgfmathfloatTRIG@rad@NUM@INV=\pgfmathresult
+ \fi
+ \pgfmathfloatmodknowsinverse@{#2}{\pgfmathfloatTRIG@rad@NUM}{\pgfmathfloatTRIG@rad@NUM@INV}%
+ \fi
+ \pgfmathfloattofixed@{\pgfmathresult}%
+ \expandafter#1\expandafter{\pgfmathresult}%
+ \pgfmathfloatparsenumber{\pgfmathresult}%
+}%
+
+\def\pgfmathfloatsin@#1{\pgfmathfloatTRIG@\pgfmath@basic@sin@{#1}}
+\let\pgfmathfloatsin=\pgfmathfloatsin@
+\def\pgfmathfloatcos@#1{\pgfmathfloatTRIG@\pgfmath@basic@cos@{#1}}
+\let\pgfmathfloatcos=\pgfmathfloatcos@
+\def\pgfmathfloatsec@#1{\pgfmathfloatTRIG@\pgfmath@basic@cos@{#1}\pgfmathfloatreciprocal@{\pgfmathresult}}
+\let\pgfmathfloatsec=\pgfmathfloatsec@
+\def\pgfmathfloatcosec@#1{\pgfmathfloatTRIG@\pgfmath@basic@sin@{#1}\pgfmathfloatreciprocal@{\pgfmathresult}}
+\let\pgfmathfloatcosec=\pgfmathfloatcosec@
+
+\def\pgfmathfloatatan@#1{%
+ \begingroup
+ \expandafter\ifx\csname pgfmathfloatatan@TMP\endcsname\relax%
+ \pgfmathfloatcreate{1}{1.6}{4}%
+ \global\let\pgfmathfloatatan@TMP=\pgfmathresult
+ \pgfmathfloatcreate{2}{1.6}{4}%
+ \global\let\pgfmathfloatatan@TMPB=\pgfmathresult
+ \fi
+ \pgfmathfloatgreaterthan@{#1}{\pgfmathfloatatan@TMP}%
+ \ifpgfmathfloatcomparison
+ \pgfmathiftrigonometricusesdeg{%
+ \pgfmathfloatcreate{1}{9.0}{1}%
+ }{%
+ \pgfmathfloatcreate{1}{1.570796326794}{0}%
+ }%
+ \else
+ \pgfmathfloatlessthan{#1}{\pgfmathfloatatan@TMPB}%
+ \ifpgfmathfloatcomparison
+ \pgfmathiftrigonometricusesdeg{%
+ \pgfmathfloatcreate{2}{9.0}{1}%
+ }{%
+ \pgfmathfloatcreate{2}{1.570796326794}{0}%
+ }%
+ \else
+ \pgfmathfloattofixed@{#1}%
+ \expandafter\pgfmath@basic@atan@\expandafter{\pgfmathresult}%
+ \pgfmathfloatparsenumber{\pgfmathresult}%
+ \fi
+ \fi
+ \pgfmath@smuggleone\pgfmathresult
+ \endgroup
+}%
+\endinput
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/pgflibraryfillbetween.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/pgflibraryfillbetween.code.tex
index bf2ebd6b64d..2b1eebdcb58 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/pgflibraryfillbetween.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/pgflibraryfillbetween.code.tex
@@ -48,7 +48,8 @@
% ...
% end
%
- % 'begin' has no arguments.
+ % 'begin' has one arguments: the number of following single
+ % streams.
/pgf/fill between/result stream/begin/.code=,%
%
% 'next ready' has macro arguments, but the macro \pgfretval
@@ -108,15 +109,15 @@
\ifx#3\pgfutil@empty
\pgfpathfillbetween@warning{second}%
\else
- \pgfpathfillbetween@invoke{result stream/begin}%
%
\ifpgfpathfillbetween@split
\pgfpathfillbetween@compute@splitted{#2}{#3}%
\else
+ \pgfkeys{/pgf/fill between/result stream/begin=1}%
\pgfpathfillbetween@compute{#2}{#3}%
\pgfpathfillbetween@invoke{result stream/next ready}%
+ \pgfpathfillbetween@invoke{result stream/end}%
\fi
- \pgfpathfillbetween@invoke{result stream/end}%
\fi
\fi
%
@@ -132,19 +133,84 @@
% 'lineto'. This excludes the first moveto.
%
% The motivation is that fillbetween should ignore inner movetos.
+%
+% UPDATE: it turned out that replacing inner movetos is necessary, but
+% not sufficient. Now, this macro does more:
+% - it replaces isolated inner movetos by lineto
+% - if two successive inner movetos occur, it throws away the first
+% one replaces the second by lineto
+% - if one or more trailing movetos occur in a path, these will be
+% thrown away.
\def\pgfpathfillbetween@connect@inner@movetos#1{%
\expandafter\pgfpathfillbetween@connect@inner@movetos@#1\pgf@stop%
\let#1=\pgfretval
}
\def\pgfpathfillbetween@connect@inner@movetos@#1#2\pgf@stop{%
\ifx#1\pgfsyssoftpath@movetotoken
- \pgfutilstrreplace{\pgfsyssoftpath@movetotoken}{\pgfsyssoftpath@linetotoken}{#2}%
+ \pgfpathfillbetween@connect@inner@movetos@@{#2}%
\expandafter\def\expandafter\pgfretval\expandafter{\expandafter\pgfsyssoftpath@movetotoken\pgfretval}%
\else
- \pgfutilstrreplace{\pgfsyssoftpath@movetotoken}{\pgfsyssoftpath@linetotoken}{#1#2}%
+ \pgfpathfillbetween@connect@inner@movetos@@{#1#2}%
\fi
}%
+% Substitute all movetotokens by linetotokens.
+%
+% In addition, it should *deduplicate* movetos, i.e.
+% "moveto{<x>}{<y}moveto{<x2>}{<y2>}"
+% -> "moveto{<x2>}{<y2>}"
+%
+% and: trailing movetos should be discarded.
+\def\pgfpathfillbetween@connect@inner@movetos@@#1{%
+ % this implementation is derived from \pgfutilstrreplace - it does
+ % almost the same as
+ % s/\pgfsyssoftpath@movetotoken/pgfsyssoftpath@linetotoken/g
+ % -> but with the extra additions of deduplication and trailing
+ % moveto removal.
+ \def\pgfretval{}%
+ \pgfpathfillbetween@search@and@replace@loop{#1}%
+}
+\def\pgfpathfillbetween@connect@inner@moveto@foundit@#1\pgfsyssoftpath@movetotoken#2#3#4{%
+ \ifx#4\pgf@EOI
+ % ah - a trailing moveto.
+ % In this case, we remember all until the moveto, but we omit
+ % the trailing moveto and its arguments.
+ \expandafter\def\expandafter\pgfretval\expandafter{\pgfretval #1}%
+ %
+ % ... and stop searching.
+ \let\pgf@loc@TMPa\relax
+ \else
+ \ifx#4\pgfsyssoftpath@movetotoken
+ % DEDUPLICATE: we have at least two successive movetos.
+ % silently skip the first moveto and its arguments and go on
+ % with the second moveto.
+ \def\pgf@loc@TMPa{\pgfpathfillbetween@connect@inner@moveto@foundit@#1\pgfsyssoftpath@movetotoken}%
+ \else
+ % substitute it by a lineto.
+ \expandafter\def\expandafter\pgfretval\expandafter{\pgfretval #1\pgfsyssoftpath@linetotoken{#2}{#3}}%
+ %
+ % ... continue the standard loop which skips over paths
+ % until the next moveto. Remember to re-insert '#4':
+ \def\pgf@loc@TMPa{\pgfpathfillbetween@connect@inner@moveto@foundit@@ #4}%
+ \fi
+ \fi
+ \pgf@loc@TMPa
+}%
+\def\pgfpathfillbetween@connect@inner@moveto@foundit@@#1\pgf@EOI{%
+ \pgfpathfillbetween@search@and@replace@loop{#1}%
+}%
+
+\def\pgfpathfillbetween@search@and@replace@loop#1{%
+ \pgfutil@in@{\pgfsyssoftpath@movetotoken}{#1}%
+ \ifpgfutil@in@
+ \def\pgf@loc@TMPa{\pgfpathfillbetween@connect@inner@moveto@foundit@ #1\pgf@EOI}%
+ \else
+ \expandafter\def\expandafter\pgfretval\expandafter{\pgfretval #1}%
+ \let\pgf@loc@TMPa=\relax
+ \fi
+ \pgf@loc@TMPa
+}%
+
\def\pgfpathfillbetween@invoke#1{\pgfkeysvalueof{/pgf/fill between/#1/.@cmd}\pgfeov}
\def\pgfpathfillbetween@replace@first@moveto#1#2\pgf@stop{%
@@ -216,6 +282,7 @@
\pgferror{Illegal internal state encountered: the number segments induced by the intersection points of the two paths DIFFER between the first and the second path: first path has \pgfpathfilled@a@segments\space whereas the second has \pgfpathfilled@b@segments.}%
\fi
%
+ \pgfkeys{/pgf/fill between/result stream/begin=\pgfpathfilled@a@segments}%
% Recombine the pairs of segments (a_i, b_i), i = 0,..., N-1 in a
% filled way:
\def\c@pgfpathfilled@counter{0}%
@@ -230,6 +297,7 @@
%
\pgfutil@advancestringcounter\c@pgfpathfilled@counter
\repeatpgfmathloop
+ \pgfpathfillbetween@invoke{result stream/end}%
}
\def\pgfpathfillbetween@compute#1#2{%
@@ -307,8 +375,11 @@
%
% #1 a macro containing a softpath (i.e. something returned by
% \pgfgetpath)
+%
+% SIDE--EFFECT: defines \pgfpointlastofsetpath to be the last point of path #1
\def\pgfsetpathandBB#1{%
- \expandafter\pgfsetpath@protocolsizes@loop#1\pgf@stop
+ \let\pgfpointlastofsetpath=\pgfutil@empty
+ \expandafter\pgfsetpath@loop#1\pgf@stop
%
\pgfsetpath{#1}%
}%
@@ -318,8 +389,10 @@
%
% #1 a macro containing a softpath (i.e. something returned by
% \pgfgetpath)
+% SIDE--EFFECT: defines \pgfpointlastofsetpath to be the last point of path #1
\def\pgfaddpathandBB#1{%
- \expandafter\pgfsetpath@protocolsizes@loop#1\pgf@stop
+ \let\pgfpointlastofsetpath=\pgfutil@empty
+ \expandafter\pgfsetpath@loop#1\pgf@stop
\pgfaddpath#1%
}
@@ -410,12 +483,14 @@
}%
}
-\def\pgfsetpath@protocolsizes@loop#1{%
+% Accumulates the path's bounding box, the last moveto, and the last
+% coord.
+\def\pgfsetpath@loop#1{%
\ifx#1\pgf@stop%
\let\pgfsetpathBB@protocolsizesnext=\relax%
\else%
\ifx#1\pgfsyssoftpath@movetotoken%
- \let\pgfsetpathBB@protocolsizesnext=\pgfsetpathBB@protocolsizestoken@simple%
+ \let\pgfsetpathBB@protocolsizesnext=\pgfsetpathBB@protocolsizestoken@moveto%
\else%
\ifx#1\pgfsyssoftpath@linetotoken%
\let\pgfsetpathBB@protocolsizesnext=\pgfsetpathBB@protocolsizestoken@simple%
@@ -436,16 +511,27 @@
\fi%
\pgfsetpathBB@protocolsizesnext}
+\def\pgfsetpathBB@protocol@lastmoveto#1#2{%
+ \gdef\pgfsyssoftpath@lastmoveto{{#1}{#2}}%
+}
+
+\def\pgfsetpathBB@protocolsizestoken@moveto#1#2{%
+ % required for --cycle, among others:
+ \pgfsetpathBB@protocol@lastmoveto{#1}{#2}%
+ \pgfsetpathBB@protocolsizestoken@simple{#1}{#2}%
+}
\def\pgfsetpathBB@protocolsizestoken@simple#1#2{%
+ \def\pgfpointlastofsetpath{\pgfqpoint{#1}{#2}}%
\pgf@protocolsizes{#1}{#2}%
- \pgfsetpath@protocolsizes@loop%
+ \pgfsetpath@loop%
}
\def\pgfsetpathBB@protocolsizestoken@curveto#1#2\pgfsyssoftpath@curvetosupportbtoken#3#4\pgfsyssoftpath@curvetotoken#5#6{%
+ \def\pgfpointlastofsetpath{\pgfqpoint{#5}{#6}}%
\pgf@protocolsizes{#1}{#2}%
\pgf@protocolsizes{#3}{#4}%
\pgf@protocolsizes{#5}{#6}%
- \pgfsetpath@protocolsizes@loop
+ \pgfsetpath@loop
}
\def\pgfsetpathBB@protocolsizestoken@rect#1#2\pgfsyssoftpath@rectsizetoken#3#4{%
@@ -455,7 +541,7 @@
\pgf@ya=#2\relax%
\advance\pgf@ya by#4\relax%
\pgf@protocolsizes{\pgf@xa}{\pgf@ya}%
- \pgfsetpath@protocolsizes@loop
+ \pgfsetpath@loop
}%
% Defines \pgfretval to be the reversed path of #1.
@@ -606,7 +692,7 @@
% the current scope), this command computes the intersection segments
% for one of the input arguments.
%
-% On output, \pgfretval contains the number of computed segments. The
+% On output, both \pgfretval and \pgfintersectionsegments contain the number of computed segments. The
% segments as such can be accessed via \pgfgetintersectionsegmentpath.
%
% #1 : should be '1' if the FIRST argument of
@@ -689,6 +775,7 @@
\pgfutil@advancestringcounter\c@pgf@path@result%
\let\pgfretval=\c@pgf@path@result%
\fi
+ \let\pgfintersectionsegments=\pgfretval
}%
% Defines \pgfretval to contain the desired path segment as softpath.
@@ -701,12 +788,15 @@
% \pgfintersectionofpaths are requested or '2' if results for the
% SECOND path are requested (compare \pgfcomputeintersectionsegments).
% #2: the segment index (a number 0<= #2 < numbersegments).
-% The number of segments is returned by
-% \pgfcomputeintersectionsegments.
+% The number of segments is \pgfintersectionsegments
\def\pgfgetintersectionsegmentpath#1#2{%
\pgfcomputeintersectionsegments@set@src{#1}%
+ \pgfmathparse{#2}%
\afterassignment\pgfcomputeintersectionsegments@set@src@gobble
- \c@pgf@countc=#2\relax%
+ \c@pgf@countc=\pgfmathresult\relax%
+ \ifnum\c@pgf@countc<0
+ \advance\c@pgf@countc by \pgfintersectionsegments\relax
+ \fi
\expandafter\let\expandafter\pgfretval\csname pgf@intersect@path@split@\pgf@insert@intersections@src @\the\c@pgf@countc\endcsname
\ifx\pgfretval\relax
\pgferror{There is no intersection segment '#2' in path '#1'}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibrarydecorations.softclip.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibrarydecorations.softclip.code.tex
index 98fca71c047..7544d66d313 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibrarydecorations.softclip.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibrarydecorations.softclip.code.tex
@@ -54,7 +54,13 @@
% or
% soft clip={A}
% where 'A' is defined using 'name path=A' somewhere
- /pgf/decoration/soft clip path/.initial=,
+ /pgf/decoration/soft clip path/.code={%
+ % FIXME : I would rather NOT evaluate path arguments in this
+ % context! Who knows how people set keys!? But alas, we cannot
+ % evaluate late because the CM is reset while working on
+ % decorations ... (see below)
+ \tikzlibsoftclip@setkey{\tikzlibsoftclip@setkey@assign}#1\pgf@stop
+ },
/pgf/decoration/every soft clipped path/.style={},%
}
@@ -69,9 +75,14 @@
\state{replace}[width=\pgfdecoratedpathlength,
persistent precomputation={%
- \pgfkeysgetvalue{/pgf/decoration/soft clip path}\pgf@temp
- \def\tikz@marshal{\tikzlibsoftclip@setkey{\tikzlibsoftclip@setkey@assign}}%
- \expandafter\tikz@marshal\pgf@temp\pgf@stop
+ % This here is an earlier draft... but alas, the
+ % transformation matrix has been reset in this context,
+ % and we cannot define the clip path dynamically here.
+ % I left it to document that.
+ %
+ %\pgfkeysgetvalue{/pgf/decoration/soft clip path}\pgf@temp
+ %\def\tikz@marshal{\tikzlibsoftclip@setkey{\tikzlibsoftclip@setkey@assign}}%
+ %\expandafter\tikz@marshal\pgf@temp\pgf@stop
}
]{%
\ifx\pgf@decoration@soft@clip\pgfutil@empty
@@ -142,6 +153,7 @@
\pgfsetpath#2%
}%
%
+%\message{... num intersections = \pgfintersectionsolutions^^J}%
%
\ifnum\pgfintersectionsolutions=0 %
\if1\b@pgffill@is@outside@clip
@@ -312,7 +324,10 @@
\pgf@getpathsizes\pgf@interrupt@pathsizes
% we only need the path size here:
\pgf@relevantforpicturesizefalse
- \expandafter\pgfsetpath@protocolsizes@loop#1\pgf@stop
+ %
+ % FIXME : CODE CLEANUP NEEDED
+ \def\pgfsetpathBB@protocol@lastmoveto##1##2{}%
+ \expandafter\pgfsetpath@loop#1\pgf@stop
\pgfpointdiff
{\pgfqpoint\pgf@pathminx\pgf@pathminy}%
{\pgfqpoint\pgf@pathmaxx\pgf@pathmaxy}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibraryfillbetween.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibraryfillbetween.code.tex
index 6446027318f..8f60ef1e6b9 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibraryfillbetween.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfcontrib/tikzlibraryfillbetween.code.tex
@@ -86,8 +86,10 @@
\immediate\write16{Package pgfplots: loading complementary 'name path' implementation for your pgf version...}
\let\tikz@key@name@path=\tikz@key@name@path@new
\fi
+
% ------------------------------------------------------------
+\newif\iftikzfillbetween@optimize@name@intersections
\pgfkeys{%
/tikz/fill between/of/.code=\tikzlibraryfillbetween@parse#1\pgf@stop,
@@ -96,6 +98,12 @@
/tikz/fill between/every segment/.style={},
/tikz/fill between/every odd segment/.style={},
/tikz/fill between/every even segment/.style={},
+ /tikz/fill between/every last segment/.style={},
+ %
+ % Allows to add path instructions *after* the segment.
+ % If you want to add some *before* the segment, you can rely on
+ % 'every segment no 0/.style={ ... suitable tikz options ... }'
+ /tikz/fill between/path after segment/.initial={},
%
% soft clip={(axis cs:0,0) rectangle (axis cs:1,1)}
/tikz/fill between/soft clip/.style={
@@ -109,6 +117,10 @@
/tikz/fill between/@draw style/.style={
/pgf/fill between/result stream/begin/.code={%
\gdef\tikzsegmentindex{0}%
+ \xdef\tikzsegmentindices{##1}%
+ \c@pgf@countc=##1 %
+ \advance\c@pgf@countc by-1 %
+ \xdef\tikzsegmentlastindex{\the\c@pgf@countc}%
},%
/pgf/fill between/result stream/next ready/.code={%
\let\pgflibraryfill@path=\pgfretval
@@ -127,13 +139,30 @@
}%
\fi
%
+ \ifnum\tikzsegmentindex=\tikzsegmentlastindex\relax
+ \expandafter\def\expandafter\pgfplots@loc@TMPa\expandafter{\pgfplots@loc@TMPa
+ /tikz/fill between/every last segment,
+ }%
+ \fi
+ %
\expandafter\fill\expandafter[\pgfplots@loc@TMPa]
- \pgfextra \pgfsetpathandBB{\pgflibraryfill@path}\endpgfextra;%
+ \pgfextra
+ \pgfsetpathandBB{\pgflibraryfill@path}%
+ \pgfkeysgetvalue{/tikz/fill between/path after segment}\tikz@fillbetween@post@segment
+ \expandafter
+ \endpgfextra
+ \tikz@fillbetween@post@segment
+ ;%
\pgfplotsutil@advancestringcounter@global\tikzsegmentindex
},%
/pgf/fill between/result stream/end/.code=,%
},
/tikz/fill between/.search also={/pgf/fill between,/pgfplots},
+ /tikz/fill between/optimize name intersections/.is if=tikzfillbetween@optimize@name@intersections,
+ %
+ % FIXME : this optimization needs much more work... I believe it
+ % would be stable enough, but it covers too few cases.
+ %/tikz/fill between/optimize name intersections=true,
%
%
%
@@ -252,6 +281,12 @@
\expandafter\let\expandafter\tikz@fillbetween@b@path
\csname tikz@intersect@path@name@\tikz@fillbetween@b\endcsname
%
+ \iftikzfillbetween@optimize@name@intersections
+ \ifpgfpathfillbetween@split
+ \tikzfillbetween@optimize@name@intersections\tikz@fillbetween@a\tikz@fillbetween@b
+ \fi
+ \fi
+ %
\pgfpathfillbetween{\tikz@fillbetween@a@path}{\tikz@fillbetween@b@path}%
}%
@@ -330,18 +365,27 @@
% compute intersections using the PGF intersection lib...
\pgfintersectionofpaths{\pgfsetpath\tikz@path@segments@A}{\pgfsetpath\tikz@path@segments@B}%
%
- % ... and compute the intersection *segments* for both input
- % paths...
- \pgfcomputeintersectionsegments1%
- \pgfcomputeintersectionsegments2%
+ \ifnum\pgfintersectionsolutions=0 %
+ \pgferror{The argument of 'sequence' requests an intersection segment -- but the two input paths do not intersect. Please use A* or B* to select the whole path}%
+ \def\b@tikz@select@all{1}%
+ \else
+ %
+ % ... and compute the intersection *segments* for both input
+ % paths...
+ \pgfcomputeintersectionsegments1%
+ \pgfcomputeintersectionsegments2%
+ \fi
\let\tikz@ensurehascomputedintersection=\relax
}%
%
\pgfkeysgetvalue{/tikz/segments/sequence}\tikz@sequence
%
\def\b@tikz@isect@nextismoveto{1}%
+ \let\pgfpointlastofsetpath=\pgfutil@empty
\expandafter\tikzpathintersectionsegments@parse@loop\tikz@sequence\pgf@stop
+ \pgfmath@smuggleone\pgfpointlastofsetpath
\endgroup
+ \tikz@make@last@position{\pgfpointlastofsetpath}%
}%
\def\tikzpathintersectionsegments@parse@loop{%
@@ -354,10 +398,18 @@
\pgfutil@ifnextchar B{%
\tikz@isect@p@next
}{%
- \pgfutil@ifnextchar\pgf@stop{%
- \tikz@isect@finish
+ \pgfutil@ifnextchar L{%
+ \tikz@isect@p@next
}{%
- \tikz@isect@p@error
+ \pgfutil@ifnextchar R{%
+ \tikz@isect@p@next
+ }{%
+ \pgfutil@ifnextchar\pgf@stop{%
+ \tikz@isect@finish
+ }{%
+ \tikz@isect@p@error
+ }%
+ }%
}%
}%
}%
@@ -376,12 +428,25 @@
}
\def\tikz@isect@p@next#1#2{%
+ \def\tikz@temp{#2}%
+ \def\tikz@@temp{-}%
+ \ifx\tikz@@temp\tikz@temp
+ % also accept minus signs without curly braces, i.e.
+ % L-2 instead of L{-2}
+ \def\tikz@next{\tikz@isect@p@next@{#1}{#2}}%
+ \else
+ \def\tikz@next{\tikz@isect@p@next@{#1}{#2}{}}%
+ \fi
+ \tikz@next
+}%
+\def\tikz@isect@p@next@#1#2#3{%
\pgfutil@ifnextchar[{%
- \tikz@isect@p@next@opt{#1}{#2}%
+ \tikz@isect@p@next@opt{#1}{#2#3}%
}{%
- \tikz@isect@p@next@opt{#1}{#2}[]%
+ \tikz@isect@p@next@opt{#1}{#2#3}[]%
}%
}%
+
\def\tikz@isect@p@next@opt#1#2[#3]{%
\begingroup
%
@@ -392,8 +457,38 @@
\pgfqkeys{/tikz/segments}{#3}%
\fi
%
+ \def\tikz@indexshift{}%
+ \if A#1%
+ % FIRST function (0-based index)
+ \def\tikz@path{1}%
+ \def\tikz@path@ab{A}%
+ \else
+ \if B#1%
+ % SECOND function (0-based index)
+ \def\tikz@path{2}%
+ \def\tikz@path@ab{B}%
+ \else
+ \if L#1%
+ % FIRST function (1-based index)
+ \def\tikz@path{1}%
+ \def\tikz@indexshift{-1}%
+ \def\tikz@path@ab{A}%
+ \else
+ \if R#1%
+ % SECOND function (1-based index)
+ \def\tikz@path{2}%
+ \def\tikz@indexshift{-1}%
+ \def\tikz@path@ab{B}%
+ \else
+ \def\tikz@path{}%
+ \pgferror{The argument of 'sequence' has an unexpected format near '#1#2': expected L#2 or R#2}%
+ \fi
+ \fi
+ \fi
+ \fi
+ %
% parse arguments:
- \edef\pgfmathresult{#2}%
+ \def\pgfmathresult{#2}%
\def\tikz@temp{*}%
\ifx\pgfmathresult\tikz@temp
\def\b@tikz@select@all{1}%
@@ -402,27 +497,29 @@
\tikz@ensurehascomputedintersection
\pgfmathparse{round(#2)}%
\let\tikz@index=\pgfmathresult
- \fi
- %
- \if A#1%
- \def\tikz@path{1}%
- \else
- \if B#1%
- \def\tikz@path{2}%
+ \ifx\tikz@indexshift\pgfutil@empty
\else
- \def\tikz@path{}%
- \pgferror{The argument of 'sequence' has an unexpected format near '#1#2': expected A#2 or B#2}%
+ \afterassignment\pgfutil@gobble@until@relax
+ \c@pgf@countc=\tikz@index\relax
+ \ifnum\c@pgf@countc<0 \else
+ % the index shift is ONLY for positive numbers: we
+ % want to start indexing at 1, not at 0 -- and the
+ % negative ones start at -1 anyway.
+ \advance\c@pgf@countc by\tikz@indexshift\relax
+ \edef\tikz@index{\the\c@pgf@countc}%
+ \fi
\fi
\fi
%
%
% PROCESS IT:
\ifx\tikz@path\pgfutil@empty
+ \let\pgfpointlastofsetpath=\pgfutil@empty
\else
\if1\b@tikz@select@all%
% ok... select the *entire* path.
% #1 = A|B :
- \expandafter\let\expandafter\pgfretval\csname tikz@path@segments@#1\endcsname
+ \expandafter\let\expandafter\pgfretval\csname tikz@path@segments@\tikz@path@ab\endcsname
\else
\pgfgetintersectionsegmentpath{\tikz@path}{\tikz@index}%
\fi
@@ -434,9 +531,47 @@
\fi
\pgfaddpathandBB\pgfretval
\fi
+ \pgfmath@smuggleone\pgfpointlastofsetpath
\endgroup
\def\b@tikz@isect@nextismoveto{1}%
\tikzpathintersectionsegments@parse@loop
}%
+\def\tikzfillbetween@optimize@name@intersections#1#2{%
+ \edef\tikzfillbetween@precached@intersectionofpaths@A{#1}%
+ \edef\tikzfillbetween@precached@intersectionofpaths@B{#2}%
+ \pgfkeys{%
+ /tikz/name intersections/.add code={%
+ \let\pgfintersectionofpaths=\tikzfillbetween@precached@intersectionofpaths
+ }{%
+ \let\pgfintersectionofpaths=\pgfintersectionofpaths@orig
+ }
+ }%
+}%
+
+\let\pgfintersectionofpaths@orig=\pgfintersectionofpaths
+
+\def\tikzfillbetween@precached@intersectionofpaths@log{%
+ \immediate\write-1{fill between: outcome of 'name intersections={of=\tikz@intersect@path@a\space and \tikz@intersect@path@b}' has been computed from available information of fill between}%
+}
+\def\tikzfillbetween@precached@intersectionofpaths#1#2{%
+ \def\pgf@loc@TMPa{0}%
+ \ifx\tikz@intersect@path@a\tikzfillbetween@precached@intersectionofpaths@A
+ \ifx\tikz@intersect@path@b\tikzfillbetween@precached@intersectionofpaths@B
+ \def\pgf@loc@TMPa{1}%
+ \fi
+ \fi
+ \ifx\tikz@intersect@path@b\tikzfillbetween@precached@intersectionofpaths@A
+ \ifx\tikz@intersect@path@a\tikzfillbetween@precached@intersectionofpaths@B
+ \def\pgf@loc@TMPa{1}%
+ \fi
+ \fi
+ %
+ \if1\pgf@loc@TMPa
+ \tikzfillbetween@precached@intersectionofpaths@log
+ \relax
+ \else
+ \pgfintersectionofpaths@orig{#1}{#2}%
+ \fi
+}%
\endinput
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
index 38c2f5c3578..bbf7d10db86 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
@@ -58,6 +58,10 @@
\newif\ifpgfplots@scanline@verbose
\newif\ifpgfplots@plot@graphics@autoadjustaxis
\newif\ifpgfplots@scaleuniformly@warning
+\newif\ifpgfplots@hide@obscured@xtick
+\newif\ifpgfplots@hide@obscured@ytick
+\newif\ifpgfplots@hide@obscured@ztick
+\newif\ifpgfplots@enable@tick@line@clipping
\newcount\pgfplots@numplots
\newdimen\pgfplots@xmin@reg
\newdimen\pgfplots@xmax@reg
@@ -127,6 +131,7 @@
\newif\ifpgfplotsplothandlermesh@internaldepth
\newif\ifpgfplotsplothandlermesh@hide@refined@edges
\newif\ifpgfplots@has@cell@picture
+\newif\ifpgfplots@substitute@pgfpoint
\newif\ifpgfplots@collect@firstplot@astick
\newif\ifpgfplots@units@use
@@ -611,6 +616,11 @@
/pgfplots/every axis plot/.belongs to family=/pgfplots/style commands,
/pgfplots/every axis plot post/.style={},
/pgfplots/every axis plot post/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every axis plot}},
+ /pgfplots/trig format plots/.is choice,
+ /pgfplots/trig format plots/deg/.code={\def\pgfplots@set@trig@format@plots{\pgfkeys{/pgf/trig format=deg}}},%
+ /pgfplots/trig format plots/rad/.code={\def\pgfplots@set@trig@format@plots{\pgfkeys{/pgf/trig format=rad}}},%
+ /pgfplots/trig format plots/default/.code={\let\pgfplots@set@trig@format@plots=\relax},%
+ /pgfplots/trig format plots/default,
/pgfplots/no marks/.style={/pgfplots/no markers},
/pgfplots/no markers/.style={/pgfplots/every axis plot post/.append style={mark=none}},
/pgfplots/every axis label/.style={},
@@ -774,6 +784,7 @@
/pgfplots/every x tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra x tick/.style={
/pgfplots/log identify minor tick positions=true,
+ /pgfplots/hide obscured x ticks=false,
},
/pgfplots/every extra x tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra x tick}},
/pgfplots/every extra x tick/.belongs to family=/pgfplots/style commands,
@@ -795,6 +806,7 @@
/pgfplots/every y tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra y tick/.style={
/pgfplots/log identify minor tick positions=true,
+ /pgfplots/hide obscured y ticks=false,
},
/pgfplots/every extra y tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra y tick}},
/pgfplots/every extra y tick/.belongs to family=/pgfplots/style commands,
@@ -810,6 +822,7 @@
/pgfplots/every z tick label/.belongs to family=/pgfplots/style commands,
/pgfplots/every extra z tick/.style={
/pgfplots/log identify minor tick positions=true,
+ /pgfplots/hide obscured z ticks=false,
},
/pgfplots/every extra z tick/.append code={\pgfplotsdeprecatedstylecheck{/tikz/every extra z tick}},
/pgfplots/every extra z tick/.belongs to family=/pgfplots/style commands,
@@ -1765,6 +1778,16 @@
/pgfplots/stack dir=plus,
/pgfplots/stacked ignores zero/.is if=pgfplots@stacked@ignores@zero,
/pgfplots/stacked ignores zero/.default=true,
+ %
+ % The purpose of the following key is to control the case 'stacked ignores zero=true'
+ % (it has no effect if 'stacked ignores zero=false').
+ % The feature "stacked ignores zero" is active *if and only if*
+ % 1. stacked ignores zero=true and
+ % 2. stacked ignores zero/<phasename>=true
+ % Valid <phasename>s are 'default', 'markers', 'errorbars'.
+ /pgfplots/stacked ignores zero/\pgfplotsaxis@visphase@name@default/.initial=true,
+ /pgfplots/stacked ignores zero/\pgfplotsaxis@visphase@name@markers/.initial=true,
+ /pgfplots/stacked ignores zero/\pgfplotsaxis@visphase@name@errorbars/.initial=false,
/pgfplots/filter discard warning/.is if=pgfplots@warn@for@filter@discards,
/pgfplots/filter discard warning=true,
/pgfplots/pre filter/.code={},
@@ -2169,8 +2192,8 @@
/pgfplots/major y grid style/.code={%
\pgfkeysalso{/pgfplots/every major y grid/.append style={#1}}%
},
- /pgfplots/y grid style/.belongs to family=/pgfplots/style commands,
- /pgfplots/y grid style/.code={%
+ /pgfplots/z grid style/.belongs to family=/pgfplots/style commands,
+ /pgfplots/z grid style/.code={%
\pgfkeysalso{/pgfplots/every axis z grid/.append style={#1}}%
},
/pgfplots/minor z grid style/.belongs to family=/pgfplots/style commands,
@@ -2536,6 +2559,14 @@
},%
/pgfplots/axis z line/none/.style ={axis z line*/none,hide z axis},
},
+ %
+ /pgfplots/hide obscured x ticks/.is if=pgfplots@hide@obscured@xtick,
+ /pgfplots/hide obscured y ticks/.is if=pgfplots@hide@obscured@ytick,
+ /pgfplots/hide obscured z ticks/.is if=pgfplots@hide@obscured@ztick,
+ /pgfplots/hide obscured x ticks=true,
+ /pgfplots/hide obscured y ticks=true,
+ /pgfplots/hide obscured z ticks=true,
+ %
/pgfplots/3d box/.is choice,
/pgfplots/3d box/background/.code ={\def\pgfplots@threedimbox@choice{0}},%
/pgfplots/3d box/complete/.code ={\def\pgfplots@threedimbox@choice{1}},%
@@ -3329,22 +3360,38 @@
/pgfplots/z coord trafo/.code={},
/pgfplots/z coord inv trafo/.code={},
%
+ /pgfplots/symbolic coords/magic prefix/.initial={[normalized]},
% #1 : the coordinate in question. Can be x,y,z, or even hist/data
% or similar constructs.
% #2 : {<symbol1>,<symbol2>,....<symboln>}
/pgfplots/symbolic coords/.code 2 args={%
\expandafter\pgfplotsarraynew\csname pgfplots@symbolic@coords@#1@inverse\endcsname{#2}%
\expandafter\pgfplotsarrayforeachungrouped\csname pgfplots@symbolic@coords@#1@inverse\endcsname\as\pgfplots@loc@TMPa{%
+ \pgfplots@command@to@string\pgfplots@loc@TMPa\pgfplots@loc@TMPa
+% \message{Defining symb coords \pgfplots@loc@TMPa^^J}%
\expandafter\edef\csname pgfp@symb@coords@#1@\pgfplots@loc@TMPa\endcsname{\pgfplotsarrayforeachindex}%
}%
+ \pgfkeysgetvalue{/pgfplots/symbolic coords/magic prefix}\pgfplots@symb@magic@prefix
\pgfkeysdef{/pgfplots/#1 coord trafo}{%
- \pgfutil@ifundefined{pgfp@symb@coords@#1@##1}{%
- \pgfplots@error{Sorry, the input coordinate `##1' has not been defined with 'symbolic #1 coords={#2}... Maybe it has been misspelled?}%
- \def\pgfmathresult{0}%
+ \expandafter\pgfplotsutilifstartswith\expandafter{\pgfplots@symb@magic@prefix}{##1}{%
+ % Ah - something like [normalized]1.5
+ % we need to assign the suffix 1.5:
+ \edef\pgfmathresult{\pgfplotsretval}%
}{%
- \edef\pgfmathresult{\csname pgfp@symb@coords@#1@##1\endcsname}%
+ % ensure that special (unexpandable) characters are
+ % preserved:
+ \def\pgfplots@loc@TMPa{##1}%
+ \pgfplots@command@to@string\pgfplots@loc@TMPa\pgfplots@loc@TMPa
+ \pgfutil@ifundefined{pgfp@symb@coords@#1@\pgfplots@loc@TMPa}{%
+ \t@pgfplots@toka={##1}%
+ \t@pgfplots@tokb={#2}%
+ \pgfplots@error{Sorry, the input coordinate `\the\t@pgfplots@toka' has not been defined with 'symbolic #1 coords={\the\t@pgfplots@tokb}... Maybe it has been misspelled? Or did you mean something like \pgfplots@symb@magic@prefix\the\t@pgfplots@toka?}%
+ \def\pgfmathresult{0}%
+ }{%
+ \edef\pgfmathresult{\csname pgfp@symb@coords@#1@\pgfplots@loc@TMPa\endcsname}%
+ }%
}%
-%\message{#1 coord trafo{##1} --> \pgfmathresult^^J}%
+%\message{#1 coord trafo{\pgfplots@loc@TMPa} --> \pgfmathresult^^J}%
}%
\pgfkeysdef{/pgfplots/#1 coord inv trafo}{%
\begingroup
@@ -3364,13 +3411,13 @@
\fi
\fi
\expandafter\pgfplotsarrayselect\expandafter\count\expandafter0\expandafter\of\csname pgfplots@symbolic@coords@#1@inverse\endcsname\to\pgfmathresult
-%\message{#1 coord inv trafo{##1} -->\the\count0 --> \pgfmathresult^^J}%
+%\message{#1 coord inv trafo{##1} -->\the\count0 --> \meaning\pgfmathresult^^J}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\pgfkeysifdefined{/pgfplots/#1ticklabel/.@cmd}{%
\pgfkeysalso{%
- /pgfplots/#1ticklabel={\tick},%
+ /pgfplots/#1ticklabel={\pgfplots@ticklabel@typeset@arg\tick},%
/pgfplots/scaled #1 ticks=false,%
/pgfplots/plot coordinates/math parser=false,%
}%
@@ -3629,6 +3676,7 @@
/pgfplots/cube/size x=\pgfplotmarksize,
/pgfplots/cube/size y=\pgfplotmarksize,
/pgfplots/cube/size z=\pgfplotmarksize,
+ /pgfplots/trig format/.style={/pgf/trig format={#1}},
/pgfplots/xtick placement tolerance/.initial=0.05pt,
/pgfplots/ytick placement tolerance/.initial=0.05pt,
/pgfplots/ztick placement tolerance/.initial=0.05pt,
@@ -3644,6 +3692,7 @@
/pgfplots/compat/anchors/1.8/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/1.9/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/1.10/.style= {/pgfplots/compat/anchors/1.3},%
+ /pgfplots/compat/anchors/1.11/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/newest/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/default/.style={/pgfplots/compat/anchors/1.3},%
%
@@ -3658,6 +3707,7 @@
/pgfplots/compat/empty line/1.8/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.9/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.10/.style= {/pgfplots/compat/empty line/1.4},%
+ /pgfplots/compat/empty line/1.11/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/newest/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/default/.style= {/pgfplots/compat/empty line/1.4},%
%
@@ -3672,8 +3722,24 @@
/pgfplots/compat/path replacement/1.8/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/1.9/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/1.10/.style= {/pgfplots/compat/path replacement/1.5.1},
+ /pgfplots/compat/path replacement/1.11/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/newest/.style= {/pgfplots/compat/path replacement/1.5.1},%
/pgfplots/compat/path replacement/default/.style= {/pgfplots/compat/path replacement/pre 1.3},%
+ %
+ /pgfplots/compat/pgfpoint substitution/.is choice,
+ /pgfplots/compat/pgfpoint substitution/pre 1.3/.code= {\pgfplots@substitute@pgfpointfalse},
+ /pgfplots/compat/pgfpoint substitution/1.3/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},%
+ /pgfplots/compat/pgfpoint substitution/1.4/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.5/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},%
+ /pgfplots/compat/pgfpoint substitution/1.5.1/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},%
+ /pgfplots/compat/pgfpoint substitution/1.6/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.7/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.8/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.9/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.10/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},
+ /pgfplots/compat/pgfpoint substitution/1.11/.code= {\pgfplots@substitute@pgfpointtrue},
+ /pgfplots/compat/pgfpoint substitution/newest/.style= {/pgfplots/compat/pgfpoint substitution/1.11},%
+ /pgfplots/compat/pgfpoint substitution/default/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},%
%ellipse/.is if=pgfplots@path@replace@ellipse,
%
/pgfplots/compat/labels/.is choice,
@@ -3696,6 +3762,7 @@
},%
/pgfplots/compat/labels/1.9/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/1.10/.style= {/pgfplots/compat/labels/1.8},%
+ /pgfplots/compat/labels/1.11/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/newest/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/default/.style= {/pgfplots/compat/labels/pre 1.3},% maintain backwards compatibility
%
@@ -3734,6 +3801,7 @@
},
},%
/pgfplots/compat/bar nodes/1.10/.style= {/pgfplots/compat/bar nodes/1.9},%
+ /pgfplots/compat/bar nodes/1.11/.style= {/pgfplots/compat/bar nodes/1.9},%
/pgfplots/compat/bar nodes/newest/.style= {/pgfplots/compat/bar nodes/1.9},%
/pgfplots/compat/bar nodes/default/.style= {/pgfplots/compat/bar nodes/pre 1.3},% maintain backwards compatibility
/pgfplots/compat/bar nodes/default,
@@ -3763,6 +3831,7 @@
/pgfplots/compat/scaling/1.8/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/1.9/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/1.10/.style={/pgfplots/compat/scaling/1.6},
+ /pgfplots/compat/scaling/1.11/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/newest/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/default/.style={/pgfplots/compat/scaling/1.4},
%
@@ -3777,6 +3846,7 @@
/pgfplots/compat/scale mode/1.8/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/1.9/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/1.10/.style={/pgfplots/compat/scale mode/1.6},
+ /pgfplots/compat/scale mode/1.11/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/newest/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/default/.style={/pgfplots/compat/scale mode/1.5},
%
@@ -3792,6 +3862,7 @@
/pgfplots/compat/plot3graphics/1.8/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/1.9/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/1.10/.style= {/pgfplots/compat/plot3graphics/1.6},%
+ /pgfplots/compat/plot3graphics/1.11/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/newest/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/default/.style= {/pgfplots/compat/plot3graphics/1.5},%
%
@@ -3833,6 +3904,7 @@
/pgfplots/compat/bar width by units/1.8/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/1.9/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/1.10/.style= {/pgfplots/compat/bar width by units/1.7},
+ /pgfplots/compat/bar width by units/1.11/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/newest/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/default/.style={/pgfplots/compat/bar width by units/pre 1.3},
%
@@ -3847,27 +3919,41 @@
/pgfplots/compat/BB/1.8/.style= {/pgfplots/clip bounding box=upper bound},%
/pgfplots/compat/BB/1.9/.style= {/pgfplots/compat/BB/1.8},%
/pgfplots/compat/BB/1.10/.style= {/pgfplots/compat/BB/1.8},%
+ /pgfplots/compat/BB/1.11/.style= {/pgfplots/compat/BB/1.8},%
/pgfplots/compat/BB/newest/.style= {/pgfplots/compat/BB/1.8},
/pgfplots/compat/BB/default/.style={/pgfplots/compat/BB/pre 1.3},
%
/pgfplots/compat/general/.is choice,
- /pgfplots/compat/general/pre 1.3/.style={/pgfplots/log origin=infty},%
+ /pgfplots/compat/general/pre 1.3/.style={/pgfplots/log origin=infty,/pgfplots/enable tick line clipping=true},%
/pgfplots/compat/general/1.3/.style= {/pgfplots/compat/general/pre 1.3},
/pgfplots/compat/general/1.4/.style= {/pgfplots/compat/general/pre 1.3},%
- /pgfplots/compat/general/1.5/.style= {/pgfplots/log origin=0},%
+ /pgfplots/compat/general/1.5/.style= {/pgfplots/log origin=0,/pgfplots/enable tick line clipping=true},%
/pgfplots/compat/general/1.5.1/.style= {/pgfplots/compat/general/1.5},%
/pgfplots/compat/general/1.6/.style= {/pgfplots/compat/general/1.5},%
/pgfplots/compat/general/1.7/.style= {/pgfplots/compat/general/1.5},%
/pgfplots/compat/general/1.8/.style= {/pgfplots/compat/general/1.5},%
/pgfplots/compat/general/1.9/.style= {/pgfplots/compat/general/1.5},%
/pgfplots/compat/general/1.10/.style= {/pgfplots/compat/general/1.5},%
- /pgfplots/compat/general/newest/.style= {/pgfplots/compat/general/1.8},
- /pgfplots/compat/general/default/.style={/pgfplots/compat/general/1.5},
+ /pgfplots/compat/general/1.11/.style= {/pgfplots/compat/general/1.5,/pgfplots/enable tick line clipping=false},%
+ /pgfplots/compat/general/newest/.style= {/pgfplots/compat/general/1.11},
+ /pgfplots/compat/general/default/.style={/pgfplots/compat/general/1.11},
+ %
+ /pgfplots/enable tick line clipping/.is if=pgfplots@enable@tick@line@clipping,
+ /pgfplots/enable tick line clipping/.default=true,
+ %
+ /pgfplots/default typeset ticklabel/.style={
+ /pgfplots/typeset ticklabel/.code={##1},
+ },
+ /pgfplots/default typeset ticklabel,
+ /pgfplots/typeset ticklabels with strut/.style={
+ /pgfplots/typeset ticklabel/.code={\strut ##1},
+ },
+ %
%
/pgfplots/compat/show suggested version/.is if=pgfplots@show@suggested@version,
/pgfplots/compat/show suggested version=true,
/pgfplots/compat/current/.initial=,
- /pgfplots/compat/mostrecent/.initial=1.10, % this is OK since 1.10 did not change anything.
+ /pgfplots/compat/mostrecent/.initial=1.11,
/pgfplots/compat/.style={%
% ATTENTION: *every* /pgfplots/compat/ setting needs to accept
% the same choices due to this construction:
@@ -3883,6 +3969,7 @@
/pgfplots/compat/plot3graphics=#1,%
/pgfplots/compat/bar width by units=#1,%
/pgfplots/compat/bar nodes=#1,%
+ /pgfplots/compat/pgfpoint substitution=#1,%
},%
/pgfplots/compat/.default=pre 1.3,% this is used if you type '\pgfplotsset{compat}' without value
/pgfplots/compat=default,% this is the initial config.
@@ -3953,6 +4040,8 @@
},%
}
+\def\pgfplots@ticklabel@typeset@arg#1{\pgfkeysvalueof{/pgfplots/typeset ticklabel/.@cmd}{#1}\pgfeov}%
+
% backwards compatibility:
\def\pgfplots@tickwidth{\pgfkeysvalueof{/pgfplots/major tick length}}%
\def\pgfplots@subtickwidth{\pgfkeysvalueof{/pgfplots/minor tick length}}%
@@ -8495,6 +8584,34 @@
\tikzdeclarecoordinatesystem{axis}{\edef\pgfplots@loc@TMPa{#1}\expandafter\pgfplots@evalute@tikz@coord@system@interface\pgfplots@loc@TMPa,\pgfplots@coord@end}
\def\pgfplotspointaxisxy#1#2{\pgfplots@evalute@tikz@coord@system@interface{#1},{#2},\pgfplots@coord@end}%
\def\pgfplotspointaxisxyz#1#2#3{\pgfplots@evalute@tikz@coord@system@interface{#1},{#2},{#3},\pgfplots@coord@end}%
+\def\pgfplotsqpointaxisxy#1#2{%
+ \edef\pgfplotspointaxis@restore{%
+ \ifpgfplots@plot@coords@mathparser
+ \noexpand\pgfplots@plot@coords@mathparsertrue
+ \else
+ \noexpand\pgfplots@plot@coords@mathparserfalse
+ \fi
+ }%
+ \pgfplots@plot@coords@mathparserfalse
+ %
+ \pgfplotspointaxisxy{#1}{#2}%
+ %
+ \pgfplotspointaxis@restore
+}
+\def\pgfplotsqpointaxisxyz#1#2#3{%
+ \edef\pgfplotspointaxis@restore{%
+ \ifpgfplots@plot@coords@mathparser
+ \noexpand\pgfplots@plot@coords@mathparsertrue
+ \else
+ \noexpand\pgfplots@plot@coords@mathparserfalse
+ \fi
+ }%
+ \pgfplots@plot@coords@mathparserfalse
+ %
+ \pgfplotspointaxisxyz{#1}{#2}{#3}%
+ %
+ \pgfplotspointaxis@restore
+}
% definition of 'normalized axis cs':
\tikzdeclarecoordinatesystem{normalized axis}{\edef\pgfplots@loc@TMPa{#1}\expandafter\pgfplots@evalute@tikz@coord@system@interface@normalized\pgfplots@loc@TMPa,\pgfplots@coord@end}
@@ -8548,10 +8665,10 @@
% trafo (typically an empty string)
\long\def\pgfplots@evalute@tikz@coord@system@interface@for[#1]#2#3{%
\pgfkeysgetvalue{/pgfplots/#2 coord trafo/.@cmd}\pgfplots@loc@TMPc
- \edef\pgfmathresult{#3}%
\ifx\pgfplots@loc@TMPc\pgfplots@empty@command@key
+ \edef\pgfmathresult{#3}% do not expand it - might contain unexpandable input for coord trafo.
\else
- \expandafter\pgfplots@loc@TMPc\expandafter{\pgfmathresult}\pgfeov
+ \pgfplots@loc@TMPc{#3}\pgfeov
\fi
\ifpgfplots@plot@coords@mathparser
\pgfplotscoordmath{default}{parse}{\pgfmathresult}%
@@ -8629,14 +8746,17 @@
% Defines \pgfplots@evaluate@tikz@coord@[xyz]
\def\pgfplots@evalute@tikz@coord@system@interface@tocoords[#1]{%
- \pgfplots@evalute@tikz@coord@system@interface@for[#1]{x}{\pgfplots@evaluate@tikz@coord@x}%
+ \def\pgfplots@evalute@tikz@coord@@##1##2{%
+ \pgfplots@evalute@tikz@coord@system@interface@for[#1]{##2}{##1}%
+ }%
+ \expandafter\pgfplots@evalute@tikz@coord@@\expandafter{\pgfplots@evaluate@tikz@coord@x}{x}%
\let\pgfplots@evaluate@tikz@coord@x=\pgfmathresult
- \pgfplots@evalute@tikz@coord@system@interface@for[#1]{y}{\pgfplots@evaluate@tikz@coord@y}%
+ \expandafter\pgfplots@evalute@tikz@coord@@\expandafter{\pgfplots@evaluate@tikz@coord@y}{y}%
\let\pgfplots@evaluate@tikz@coord@y=\pgfmathresult
%
\ifx\pgfplots@evaluate@tikz@coord@z\pgfutil@empty
\else
- \pgfplots@evalute@tikz@coord@system@interface@for[#1]{z}{\pgfplots@evaluate@tikz@coord@z}%
+ \expandafter\pgfplots@evalute@tikz@coord@@\expandafter{\pgfplots@evaluate@tikz@coord@z}{z}%
\let\pgfplots@evaluate@tikz@coord@z=\pgfmathresult
\fi
}%
@@ -8744,8 +8864,15 @@
\else
% Apply external coordinate trafo to all input values:
\expandafter\edef\csname pgfplots@prepare@#1coord\endcsname##1{%
- \noexpand\edef\noexpand\pgfmathresult{##1}%
+ % do not expand it here - might contain unexpandable
+ % material which is processed by the #1 coord trafo:
+ % FIXME : this might produce an endless loop if ##1 = \pgfmathresult!
+ \noexpand\def\noexpand\pgfmathresult{##1}%
+ % this becomes
\expandafter\noexpand\csname pgfplots@highlevel@trafo@#1\endcsname{##1}\noexpand\pgfeov
+ %
+ % ensure that it is expanded.
+ \noexpand\edef\noexpand\pgfmathresult{\noexpand\pgfmathresult}%
}%
%
% The transformation is now \pgfplots@loc@TMPc
@@ -9517,6 +9644,10 @@
\pgfkeyssetfamily{/pgf/bar width}{/pgfplots}%
\pgfkeyssetfamily{/pgf/bar shift}{/pgfplots}%
%
+ \pgfkeyssetfamily{/pgf/trig format}{/pgfplots}%
+ \pgfkeyssetfamily{/pgf/trig format/deg}{/pgfplots}%
+ \pgfkeyssetfamily{/pgf/trig format/rad}{/pgfplots}%
+ %
\pgfkeysinstallkeyfilterhandler{/pgf/key filter handlers/append filtered to}{\pgfplots@rmopts}%
%
\let\tikz@alias=\pgfutil@empty
@@ -9572,19 +9703,7 @@
\pgfkeysdeactivatefamily{/pgfplots/naming commands}%
\pgfkeysdeactivatefamily{/pgfplots/shared with tikz}%
%
- \ifpgfplots@axis@on@top
- \ifpgfplots@layered@graphics
- \pgfplots@log3{the combination of 'axis on top' and 'activate layers' implies 'set layers=axis on top'. Deactivate 'axis on top' if you want other layers.}%
- \pgfplotsset{set layers=axis on top}%
- \fi
- \fi
- % retrieve layer configurations (the one set with 'set layers*').
- \pgfkeysgetvalue{/pgfplots/@set layers arg}\pgfplots@loc@TMPa
- \ifx\pgfplots@loc@TMPa\pgfutil@empty
- \else
- % ah, yes: then set its style:
- \pgfqkeys{/pgfplots/layers}{\pgfplots@loc@TMPa}% note that this here should not need key filtering; it adjusts only styles (hopefully ;) )
- \fi
+ \pgfplots@set@options@of@layered@graphics
%
% Now, any 'name' and 'alias' options have been processed.
%
@@ -9740,6 +9859,22 @@
\pgfplots@notify@options@are@set
}
+\def\pgfplots@set@options@of@layered@graphics{%
+ \ifpgfplots@axis@on@top
+ \ifpgfplots@layered@graphics
+ \pgfplots@log3{the combination of 'axis on top' and 'activate layers' implies 'set layers=axis on top'. Deactivate 'axis on top' if you want other layers.}%
+ \pgfplotsset{set layers=axis on top}%
+ \fi
+ \fi
+ % retrieve layer configurations (the one set with 'set layers*').
+ \pgfkeysgetvalue{/pgfplots/@set layers arg}\pgfplots@loc@TMPa
+ \ifx\pgfplots@loc@TMPa\pgfutil@empty
+ \else
+ % ah, yes: then set its style:
+ \pgfqkeys{/pgfplots/layers}{\pgfplots@loc@TMPa}% note that this here should not need key filtering; it adjusts only styles (hopefully ;) )
+ \fi
+}%
+
\def\pgfplots@set@patched@options{%
\pgfkeysdef{/pgfplots/@@@tmp}{%
\let\tikz@intersect@def=\gdef
@@ -9818,10 +9953,12 @@
\or2.197224
\fi
}%
- \def\axisdefaultticklabel{\pgfmathprintnumber{\tick}}%
+ \def\axisdefaultticklabel{\pgfplots@ticklabel@typeset@arg{\pgfmathprintnumber{\tick}}}%
\def\axisdefaultticklabellog{%
- \pgfkeysgetvalue{/pgfplots/log number format code/.@cmd}\pgfplots@log@label@style
- \expandafter\pgfplots@log@label@style\tick\pgfeov
+ \pgfplots@ticklabel@typeset@arg{%
+ \pgfkeysgetvalue{/pgfplots/log number format code/.@cmd}\pgfplots@log@label@style
+ \expandafter\pgfplots@log@label@style\tick\pgfeov
+ }%
}%
%
\let\legend=\pgfplots@command@legend
@@ -10326,10 +10463,8 @@
position}%
}{}%
\def\pgfplots@is@in@axis{1}%
- \let\pgfpointxy@orig=\pgfpointxy
- \let\pgfqpointxy@orig=\pgfqpointxy
- \let\pgfpointxyz@orig=\pgfpointxyz
- \let\pgfqpointxyz@orig=\pgfqpointxyz
+ \pgfplots@environment@opt@@setup@pgfpoint@restores
+ %
\global\let\pgfplots@late@options=\pgfutil@empty
\pgfplots@checkandpreparefor@active@semicolon
%
@@ -10351,10 +10486,6 @@
%
\pgfplots@set@options{#1}%
%
- \pgfplots@prepare@layered@graphics
- %
- \pgfplots@prepare@cell@picture
- %
%
%
% --------------------
@@ -10523,6 +10654,10 @@
%
\expandafter\pgfplotsset\expandafter{\pgfplots@late@options}%
%
+ \pgfplots@prepare@layered@graphics
+ %
+ \pgfplots@prepare@cell@picture
+ %
%\end{axis}:
%
% --------------------
@@ -10544,6 +10679,10 @@
% NEW \pgfplots@stored@plotlist!
\pgfplots@stacked@finalize@stored@plots
\fi
+ %
+ % ensure that (1,2) is automatically converted to (axis cs:1,2) :
+ \pgfplots@change@pgfpoints@to@axiscs
+ %
% make it ungrouped: we must not destroy group nesting of tikz
% path instructions at this point.
\pgfplotslistforeachungrouped\pgfplots@stored@plotlist\as\pgfplots@loc@TMPa{%
@@ -10565,11 +10704,15 @@
%
% this code here means we REALLY have a plotting
% command!
+ % This is the heart component of the visualization
+ % phase.
\pgfplots@stored@plotlist@visualize@selected@phases{\pgfplots@visphase@names}%
\fi
\pgfplots@stored@current@postcmd
}%
%
+ \pgfplots@restorepgfpoint
+ %
\pgfplots@END@init@and@draw@axis
%
\pgfplots@create@axis@descriptions
@@ -10655,6 +10798,54 @@
\aftergroup\pgfplots@cell@picture@remembered
}
+\def\pgfplots@environment@opt@@setup@pgfpoint@restores{%
+ % There are places in pgfplots where the default coordinate system
+ % (i.e. the one used whenever one writes (1,2)) needs to be
+ % replaced:
+ % - during axis descriptions (see \pgfplots@change@pgfpoints@to@descriptioncs)
+ % - during the visualization phase (where it is substituted by
+ % (axis cs:1,2), compare XXXX)
+ %
+ % However, as soon as someone writes \pgfsetxvec (or its y/z
+ % variants), we want to *restore* the original PGF functionality.
+ %
+ % Prepare that here:
+ \let\pgfpointxy@orig=\pgfpointxy
+ \let\pgfqpointxy@orig=\pgfqpointxy
+ \let\pgfpointxyz@orig=\pgfpointxyz
+ \let\pgfqpointxyz@orig=\pgfqpointxyz
+ \let\pgfsetxvec@orig=\pgfsetxvec
+ \let\pgfsetyvec@orig=\pgfsetyvec
+ \let\pgfsetzvec@orig=\pgfsetzvec
+ \let\tikz@checkunit@orig=\tikz@checkunit
+ %
+ \let\pgfsetxvec=\pgfplots@setxvec@restorepgfpoint
+ \let\pgfsetyvec=\pgfplots@setyvec@restorepgfpoint
+ \let\pgfsetzvec=\pgfplots@setzvec@restorepgfpoint
+}%
+
+\def\pgfplots@restorepgfpoint{%
+ \let\pgfpointxy=\pgfpointxy@orig
+ \let\pgfqpointxy=\pgfqpointxy@orig
+ \let\pgfpointxyz=\pgfpointxyz@orig
+ \let\pgfqpointxyz=\pgfqpointxyz@orig
+ \let\tikz@checkunit=\tikz@checkunit@orig
+}%
+
+\def\pgfplots@setxvec@restorepgfpoint#1{%
+ \pgfsetxvec@orig{#1}%
+ \pgfplots@restorepgfpoint
+}%
+\def\pgfplots@setyvec@restorepgfpoint#1{%
+ \pgfsetyvec@orig{#1}%
+ \pgfplots@restorepgfpoint
+}%
+\def\pgfplots@setzvec@restorepgfpoint#1{%
+ \pgfsetzvec@orig{#1}%
+ \pgfplots@restorepgfpoint
+}%
+
+
\def\pgfplots@replace@path@commands{%
\let\pgfplots@orig@scope=\scope
\let\pgfplots@orig@endscope=\endscope
@@ -10731,6 +10922,10 @@
% #1: the list of phases to execute. This excludes marker phases.
\def\pgfplots@stored@plotlist@visualize@clippedpart#1{%
\scope[current plot style] % this does set BOTH pgfplots and tikz options.
+ %
+ % do this here after options are set.
+ \pgfplots@initzerolevelhandler
+ %
% FIXME : what, precisely, was the motivation to use a
% scope here? It causes a lot of problems and
% work-arounds. Is it worth the effort!?
@@ -10771,12 +10966,50 @@
\def\pgfplots@visphase@markers{%
\begingroup
+ \pgfplots@change@pgfpoints@to@axiscs
\pgfplots@markers@install@plotmark@handler
\let\pgfplots@visphase@name=\pgfplotsaxis@visphase@name@markers
\expandafter\pgfplots@coord@stream@finalize@storedcoords@START\pgfplots@stored@current@data\pgfplots@EOI
\endgroup
}%
+% Inside of an axis, the default coordinate system for any draw
+% command should be (axis cs:1,2) instead of (1,2). Install that here:
+%
+% see \pgfplots@restorepgfpoint
+\def\pgfplots@change@pgfpoints@to@axiscs{%
+ %
+ \ifpgfplots@substitute@pgfpoint
+ \let\pgfpointxy=\pgfplotspointaxisxy
+ \let\pgfpointxyz=\pgfplotspointaxisxyz
+ \let\pgfqpointxy=\pgfplotsqpointaxisxy
+ \let\pgfqpointxyz=\pgfplotsqpointaxisxyz
+ %
+ % tikz checks for units before it calls \pgfpointxy . This must
+ % not suffer from TeX's math restrictions, so we have to use the
+ % FPU for this task. Patch the command as well:
+ \let\tikz@checkunit=\pgfplots@checkunit@fpu
+ \fi
+}%
+
+\def\pgfplots@checkunit@fpu#1{%
+ \ifpgfplots@usefpu
+ \edef\pgfplots@checkunit@fpu@restore{%
+ \pgflibraryfpuifactive{%
+ % ok, leave it active
+ }{%
+ \noexpand\pgfkeys{/pgf/fpu=false}%
+ }%
+ }%
+ \pgfkeys{/pgf/fpu}%
+ \tikz@checkunit@orig{#1}%
+ \pgfmathfloattofixed{\pgfmathresult}%
+ \pgfplots@checkunit@fpu@restore
+ \else
+ \tikz@checkunit@orig{#1}%
+ \fi
+}%
+
\def\pgfplots@execute@at@end@plot@visualization@internal{%
}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex
index 62d56ad1915..42d6c9f4b65 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex
@@ -582,6 +582,7 @@
\def\pgfplots@errorbar@draw#1#2{%
\begingroup
+ \pgfplots@restorepgfpoint
\pgfkeysvalueof{/pgfplots/error bars/draw error bar/.@cmd}{#1}{#2}\pgfeov%
\endgroup
}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
index 15c577d4957..126367104a3 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
@@ -5,10 +5,10 @@
\catcode`\:=12
\catcode`\+=12
\catcode`\-=12
-\gdef\pgfplotsrevision{1.10-2-gb39fe75}
-\gdef\pgfplotsversion{1.10}
-\gdef\pgfplotsversiondatetime{2014-02-28 13:30:07 +0100}
-\gdef\pgfplotsrevisiondatetime{2014-03-03 21:18:27 +0100}
+\gdef\pgfplotsrevision{1.11-3-g4c99d7a}
+\gdef\pgfplotsversion{1.11}
+\gdef\pgfplotsversiondatetime{2014-08-04 12:47:48 +0200}
+\gdef\pgfplotsrevisiondatetime{2014-08-06 16:56:04 +0200}
\gdef\pgfplots@glob@TMPa#1-#2-#3 #4\relax{#1/#2/#3}
\xdef\pgfplotsversiondate{\expandafter\pgfplots@glob@TMPa\pgfplotsversiondatetime\relax}
\xdef\pgfplotsrevisiondate{\expandafter\pgfplots@glob@TMPa\pgfplotsrevisiondatetime\relax}
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
index 02ff3e96b1b..6b64807a05c 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
@@ -58,12 +58,13 @@
\else
\pgfplotspointbbdiagonal
\fi
- \pgf@xx=\pgf@x
- \pgf@xy=0pt
- \pgf@yx=0pt
- \pgf@yy=\pgf@y
- \pgf@zx=0pt
- \pgf@zy=0pt
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ % do not use \pgfqpoint here - it may have been replaced
+ % (compare \pgfplots@change@pgfpoints@to@descriptioncs)
+ \pgfsetxvec{\global\pgf@x=\pgf@xa \global\pgf@y=0pt }%
+ \pgfsetyvec{\global\pgf@x=0pt \global\pgf@y=\pgf@ya}%
+ \pgfsetzvec{\global\pgf@x=0pt \global\pgf@y=0pt }%
}%
%
% The \pgfplotsqpointxyz method (or its 2d counterpart) are THE
@@ -3462,7 +3463,6 @@
\noexpand\pgfkeyssetvalue{/pgfplots/x coord sorting}{\pgfkeysvalueof{/pgfplots/x coord sorting}}%
\noexpand\pgfkeyssetvalue{/pgfplots/y coord sorting}{\pgfkeysvalueof{/pgfplots/y coord sorting}}%
%
- \noexpand\pgfplots@initzerolevelhandler
% remember 'current plot style':
\noexpand\pgfplots@define@currentplotstyle@as{%
\the\t@pgfplots@toka
@@ -3573,6 +3573,7 @@
\def\pgfplotsaxis@visphase@name@default{default}
\def\pgfplotsaxis@visphase@name@markers{markers}
+% This defines \pgfplots@visphase@default:
\expandafter\def\csname pgfplots@visphase@\pgfplotsaxis@visphase@name@default\endcsname{%
\expandafter\pgfplots@coord@stream@finalize@storedcoords@START\pgfplots@stored@current@data\pgfplots@EOI
}%
@@ -4197,37 +4198,55 @@
\pgfplots@coord@stream@end
}%
+\begingroup
+\def\\{\global\let\pgfplots@let@space@token= } \\ % now, \pgfplots@let@space@token is a space token
+\endgroup
+
+
% A looping command to loop through plot coordinates.
-% For every point, #1{X}{Y} will be invoked.
+% For every point, \pgfplots@coord@stream@coord will be invoked.
%
% No scoping is used during this operation, so you can access outer
% variables.
\def\pgfplots@foreach@plot@coord@ITERATE{%
- \pgfutil@ifnextchar\pgfplots@EOI{%
- \pgfplots@foreach@plot@coord@FINISH%
- }{%
- \pgfutil@ifnextchar\par{%
- \pgfplotsscanlinecomplete
- \pgfplots@foreach@plot@coord@ITERATE@gobbleone
- }{%
- \pgfutil@ifnextchar({%
- \pgfplotsscanlinelengthincrease
- \pgfplots@foreach@plot@coord@NEXT%
- }{%
- \pgfplots@foreach@plot@coord@error
- }%
- }%
- }%
+ \futurelet\pgfplots@foreach@plot@coord@ITERATE@tok\pgfplots@foreach@plot@coord@ITERATE@
+}%
+\long\def\pgfplots@foreach@plot@coord@ITERATE@#1{%
+ \ifx\pgfplots@foreach@plot@coord@ITERATE@tok(%
+ \pgfplotsscanlinelengthincrease
+ \let\pgfplots@loop@next=\pgfplots@foreach@plot@coord@NEXT%
+ \else
+ \ifx\pgfplots@foreach@plot@coord@ITERATE@tok\pgfplots@let@space@token
+ \def\pgfplots@loop@next{\pgfplots@foreach@plot@coord@ITERATE#1}%
+ \else
+ \ifx\pgfplots@foreach@plot@coord@ITERATE@tok\pgfplots@EOI
+ % ok, do nothing more
+ \let\pgfplots@loop@next=\relax
+ \else
+ \ifx\pgfplots@foreach@plot@coord@ITERATE@tok\par
+ \pgfplotsscanlinecomplete
+ \let\pgfplots@loop@next=\pgfplots@foreach@plot@coord@ITERATE
+ \else
+ \if\noexpand\pgfplots@foreach@plot@coord@ITERATE@tok\noexpand\anymacro
+ % Ah. #1 has the same character (!) code as \anymacro,
+ % that means it is a macro! Expand it:
+ \def\pgfplots@loop@next{\expandafter\pgfplots@foreach@plot@coord@ITERATE#1}%
+ \else
+ \def\pgfplots@loop@next{\pgfplots@foreach@plot@coord@error#1}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \pgfplots@loop@next
}
+
\long\def\pgfplots@foreach@plot@coord@error#1\pgfplots@EOI{%
- \pgfplots@error{Sorry, I could not read the plot coordinates near '#1'. Please check for format mistakes.}%
+ \def\pgfplots@loc@TMPa{#1}%
+ \pgfplots@command@to@string\pgfplots@loc@TMPa\pgfplots@loc@TMPa
+ \pgfplots@error{Sorry, I could not read the plot coordinates near '\pgfplots@loc@TMPa'. Please check for format mistakes}%
}%
-\long\def\pgfplots@foreach@plot@coord@ITERATE@gobbleone#1{\pgfplots@foreach@plot@coord@ITERATE}%
-\def\pgfplots@foreach@plot@coord@NEXT(#1){%
- \edef\pgfmathresult{#1}%
- \expandafter\pgfplots@foreach@plot@coord@NEXT@\expandafter(\pgfmathresult)%
-}
-\def\pgfplots@foreach@plot@coord@NEXT@(#1,#2){%
+\def\pgfplots@foreach@plot@coord@NEXT#1,#2){%
\ifpgfplots@plot@coords@mathparser
\pgfmathparse{#1}\let\pgfplots@current@point@x=\pgfmathresult
\pgfmathparse{#2}\let\pgfplots@current@point@y=\pgfmathresult
@@ -4315,7 +4334,6 @@
%
\pgfplots@foreach@plot@coord@NEXT@cont
}
-\def\pgfplots@foreach@plot@coord@FINISH\pgfplots@EOI{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
@@ -4328,28 +4346,38 @@
\pgfplots@coord@stream@end
}%
\def\pgfplots@foreach@plot@coord@threedim@ITERATE{%
- \pgfutil@ifnextchar\pgfplots@EOI{%
- \pgfplots@foreach@plot@coord@FINISH%
- }{%
- \pgfutil@ifnextchar\par{%
- \pgfplotsscanlinecomplete
- \pgfplots@foreach@plot@coord@threedim@ITERATE@gobbleone
- }{%
- \pgfutil@ifnextchar({%
- \pgfplotsscanlinelengthincrease
- \pgfplots@foreach@plot@coord@threedim@NEXT%
- }{%
- \pgfplots@foreach@plot@coord@error
- }%
- }%
- }%
-}
-\long\def\pgfplots@foreach@plot@coord@threedim@ITERATE@gobbleone#1{\pgfplots@foreach@plot@coord@threedim@ITERATE}%
-\def\pgfplots@foreach@plot@coord@threedim@NEXT(#1){%
- \edef\pgfmathresult{#1}%
- \expandafter\pgfplots@foreach@plot@coord@threedim@NEXT@\expandafter(\pgfmathresult)%
+ \futurelet\pgfplots@foreach@plot@coord@threedim@ITERATE@tok\pgfplots@foreach@plot@coord@threedim@ITERATE@
+}%
+\long\def\pgfplots@foreach@plot@coord@threedim@ITERATE@#1{%
+ \ifx\pgfplots@foreach@plot@coord@threedim@ITERATE@tok(%
+ \pgfplotsscanlinelengthincrease
+ \let\pgfplots@loop@next=\pgfplots@foreach@plot@coord@threedim@NEXT%
+ \else
+ \ifx\pgfplots@foreach@plot@coord@threedim@ITERATE@tok\pgfplots@let@space@token
+ \def\pgfplots@loop@next{\pgfplots@foreach@plot@coord@threedim@ITERATE#1}%
+ \else
+ \ifx\pgfplots@foreach@plot@coord@threedim@ITERATE@tok\pgfplots@EOI
+ % ok, do nothing more
+ \let\pgfplots@loop@next=\relax
+ \else
+ \ifx\pgfplots@foreach@plot@coord@threedim@ITERATE@tok\par
+ \pgfplotsscanlinecomplete
+ \let\pgfplots@loop@next=\pgfplots@foreach@plot@coord@threedim@ITERATE
+ \else
+ \if\noexpand\pgfplots@foreach@plot@coord@threedim@ITERATE@tok\noexpand\anymacro
+ % Ah. #1 has the same character (!) code as \anymacro,
+ % that means it is a macro! Expand it:
+ \def\pgfplots@loop@next{\expandafter\pgfplots@foreach@plot@coord@threedim@ITERATE#1}%
+ \else
+ \def\pgfplots@loop@next{\pgfplots@foreach@plot@coord@error#1}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \pgfplots@loop@next
}
-\def\pgfplots@foreach@plot@coord@threedim@NEXT@(#1,#2,#3){%
+\def\pgfplots@foreach@plot@coord@threedim@NEXT#1,#2,#3){
\ifpgfplots@plot@coords@mathparser
\pgfmathparse{#1}\let\pgfplots@current@point@x=\pgfmathresult
\pgfmathparse{#2}\let\pgfplots@current@point@y=\pgfmathresult
@@ -4564,6 +4592,15 @@
\pgfplots@validate@plot@domain@arguments
}
+\def\pgfplots@disable@non@survey@keys{%
+ %
+ % this here would try to compute something. DON'T DO THIS DURING
+ % SURVEY!
+ \pgfkeysdef{/tikz/name intersections}{}%
+ \pgfkeysdef{/tikz/intersection segments}{}%
+ %
+}%
+
\def\pgfplots@start@plot@with@behavioroptions@setkeys#1{%
% these styles may contain behavior options (error bars,
% samples,... ) activate them!
@@ -4595,6 +4632,7 @@
%
% it is possible that '#1' contains 'forget plot'. So, we need to
% set the options before checking \ifpgfplots@curplot@isirrelevant:
+ \pgfplots@disable@non@survey@keys
\pgfplotsset{/pgfplots/every axis plot,#1}%
%
\ifpgfplots@curplot@isirrelevant
@@ -4608,6 +4646,7 @@
\t@pgfplots@tokc=\expandafter{\pgfplots@addplot@survey@@optionlist,#1}% this allows '#' inside of '#1'
\edef\pgfplots@addplot@survey@@optionlist{\the\t@pgfplots@tokc}%
%
+ \pgfplots@set@trig@format@plots
}
\long\def\pgfplotssurveyphaseaddoptionsbeforesurveybegins#1{%
@@ -4833,11 +4872,11 @@
% \tikz@plot@var is '\x' be default:
\pgfplots@gettikzinternal@keyval{variable}{tikz@plot@var}{\x}%
%
- {%
+ \begingroup
\escapechar=-1
\xdef\pgfplots@glob@TMPa{\expandafter\string\tikz@plot@var}%
\xdef\pgfplots@glob@TMPb{\expandafter\string\pgfplots@plot@var@y}%
- }%
+ \endgroup
% \pgfplots@plot@var@nonmacro is the value '\tikz@plot@var'
% without the '\', i.e. 'x' by default:
\let\pgfplots@plot@var@nonmacro=\pgfplots@glob@TMPa
@@ -4845,10 +4884,13 @@
%
% make sure the 'plot vars' have a backslash (as it was in tikz
% plot expression):
- \ifx\pgfplots@plot@var@nonmacro\tikz@plot@var
+ \edef\pgfplots@loc@TMPa{\expandafter\string\tikz@plot@var}%
+ \ifx\pgfplots@plot@var@nonmacro\pgfplots@loc@TMPa
\edef\tikz@plot@var{\expandafter\noexpand\csname \tikz@plot@var\endcsname}%
\fi
- \ifx\pgfplots@plot@var@y@nonmacro\pgfplots@plot@var@y
+ %
+ \edef\pgfplots@loc@TMPa{\expandafter\string\pgfplots@plot@var@y}%
+ \ifx\pgfplots@plot@var@y@nonmacro\pgfplots@loc@TMPa
\edef\pgfplots@plot@var@y{\expandafter\noexpand\csname \pgfplots@plot@var@y\endcsname}%
\fi
%
@@ -4925,20 +4967,29 @@
\long\def\pgfplots@addplotimpl@expression#1#2(#3,#4)#5;{\pgfplots@addplotimpl@expression@{#1}{#2}{#3}{#4}{#5}}%
% \addplot[#1] [#2] (#3,#4) #5;
\long\def\pgfplots@addplotimpl@expression@#1#2#3#4#5{%
+ \pgfplots@addplotimpl@expression@set@options{#1}{#2}%
+ \pgfplots@addplotimpl@expression@@{#3}{#4}{#5}%
+}
+
+\long\def\pgfplots@addplotimpl@expression@set@options#1#2{%
\def\pgfplotssurveyphaseinputclass{expression}%
\pgfplots@start@plot@with@behavioroptions{#1,/pgfplots/.cd,#2,/pgfplots/mesh input=lattice,/pgfplots/mesh/ordering/x varies}%
\pgfplots@plot@expression@preparekeys
+}%
+
+% \addplot (#1,#2) #3;
+\long\def\pgfplots@addplotimpl@expression@@#1#2#3{%
%
- \pgfplots@PREPARE@COORD@STREAM{#5}%
+ \pgfplots@PREPARE@COORD@STREAM{#3}%
%
% Determine whether the x range is parameterized or uniform and
% prepare a macro which assigns \pgfplots@current@point@x:
\def\pgfplots@addplotimpl@expression@prepare@x{%
- \pgfmathparse{#3}%
+ \pgfmathparse{#1}%
\let\pgfplots@current@point@x=\pgfmathresult
}%
\def\pgfplots@addplotimpl@expression@hasuniform@x{0}%
- \def\pgfplots@loc@TMPa{#3}%
+ \def\pgfplots@loc@TMPa{#1}%
% do we have '\x' as x coordinate?
\expandafter\def\expandafter\pgfplots@loc@TMPb\expandafter{\tikz@plot@var}%
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
@@ -4951,7 +5002,7 @@
\fi
\fi
\if\pgfplots@addplotimpl@expression@hasuniform@x1%
- % if '#3' is '\x' or 'x', we don't need the math parser -
+ % if '#1' is '\x' or 'x', we don't need the math parser -
% we can simply take \tikz@plot@var.
\def\pgfplots@addplotimpl@expression@prepare@x{%
\edef\pgfplots@current@point@x{\tikz@plot@var}%
@@ -4973,7 +5024,7 @@
\def\pgfplots@addplotimpl@expression@yEXPR{##1}%
\def\pgfplots@addplotimpl@expression@zEXPR{##2}%
}%
- \pgfplots@addplotimpl@expression@split@yz#4\pgfplots@EOI%
+ \pgfplots@addplotimpl@expression@split@yz#2\pgfplots@EOI%
%
% we don't have 'samples at' for 3D plots -> use domain!
\expandafter\pgfplots@domain@to@foreach\pgfplots@plot@domain\relax{\pgfplots@plot@samples}%
@@ -5025,7 +5076,7 @@
%
% if(
% x is logarithmic &&
- % #3 == '\x' &&
+ % #1 == '\x' &&
% the 'samples at' key has not been used )
% -> sample logarithmically!
\def\pgfplots@samples@logarithmically{0}%
@@ -5088,7 +5139,7 @@
}%
\fi
\expandafter\def\pgfplots@plot@var@y{0}%
- \def\pgfplots@addplotimpl@expression@yEXPR{#4}%
+ \def\pgfplots@addplotimpl@expression@yEXPR{#2}%
\def\pgfplots@current@point@z{}%
\fi
%
@@ -5147,18 +5198,43 @@
\let\pgfmathx@=\pgfplots@addplotimpl@expression@pseudoconst@old@x
\let\pgfmathy@=\pgfplots@addplotimpl@expression@pseudoconst@old@y
%
+ %\pgfplots@expression@normalize@floats
+ %
% process coords as usual:
\pgfplots@coord@stream@coord
}%
\pgfplots@coord@stream@end
}%
+
+% Typically, the FPU will generate stuff like '1Y1.0e5'. Since such
+% internal representations will be available to API users (especially
+% 'x filter' and its variants, we want to simplify its output - by
+% normalizing it.
+%
+% This routine will convert any floats to scientific format, i.e.
+% 1.0e5 instead of 1Y1.0e5 (1Y means 'positive float', compare
+% pgfmathfloat.code.tex).
+\def\pgfplots@expression@normalize@floats{%
+ \pgflibraryfpuifactive{%
+ \ifx\pgfplots@current@point@x\pgfutil@empty\else
+ \pgfmathfloattosci{\pgfplots@current@point@x}\let\pgfplots@current@point@x=\pgfmathresult
+ \fi%
+ \ifx\pgfplots@current@point@y\pgfutil@empty\else
+ \pgfmathfloattosci{\pgfplots@current@point@y}\let\pgfplots@current@point@y=\pgfmathresult
+ \fi%
+ \ifx\pgfplots@current@point@z\pgfutil@empty\else
+ \pgfmathfloattosci{\pgfplots@current@point@z}\let\pgfplots@current@point@z=\pgfmathresult
+ \fi%
+ }{%
+ }%
+}%
+
% \addplot[#1] [#2] {#3} #4;
\long\def\pgfplots@addplotimpl@expression@curly#1#2#3#4;{\pgfplots@addplotimpl@expression@curly@{#1}{#2}{#3}{#4}}%
\long\def\pgfplots@addplotimpl@expression@curly@#1#2#3#4{%
- \pgfplots@gettikzinternal@keyval{variable}{tikz@plot@var}{\x}%
+ \pgfplots@addplotimpl@expression@set@options{#1}{#2}%
\ifpgfplots@curplot@threedim
\t@pgfplots@toka={,#3}%
- \def\pgfplots@loc@TMPa{\pgfplots@addplotimpl@expression@{#1}{#2}}%
% the \pgfplots@plot@var@y will expand to the current value of
% '/pgfplots/variable y'.
% Keep it this way, \pgfplots@addplotimpl@expression@ checks
@@ -5167,11 +5243,9 @@
{\expandafter\noexpand\tikz@plot@var}%
{\noexpand\pgfplots@plot@var@y\the\t@pgfplots@toka}%
}%
- \expandafter\pgfplots@loc@TMPa\pgfplots@loc@TMPb{#4}%
+ \expandafter\pgfplots@addplotimpl@expression@@\pgfplots@loc@TMPb{#4}%
\else
- \t@pgfplots@tokc={\pgfplots@addplotimpl@expression@{#1}{#2}}%
- \def\pgfplots@loc@TMPa{\the\t@pgfplots@tokc}% this construction allows '#' in either '#1' or '#2'
- \expandafter\pgfplots@loc@TMPa\expandafter{\tikz@plot@var}{#3}{#4}%
+ \expandafter\pgfplots@addplotimpl@expression@@\expandafter{\tikz@plot@var}{#3}{#4}%
\fi
}%
% \addplot[#1] [#2] expression[#3] {#4} #5;
@@ -5383,7 +5457,7 @@
\def\pgfplots@plot@data{\pgfplotgnuplot[\pgfplots@plot@filename]{%
\pgfplots@gnuplot@format;
set samples \pgfkeysvalueof{/pgfplots/samples}\if0\b@pgfplots@should@sample@LINE, \pgfkeysvalueof{/pgfplots/samples y}\fi;
- set dummy \pgfplots@gnuplot@x,\pgfplots@gnuplot@y;
+ set dummy \pgfplots@gnuplot@x\if0\b@pgfplots@should@sample@LINE,\pgfplots@gnuplot@y\fi;
\ifx\pgfplots@gnuplot@logdirs\pgfutil@empty
\else
set logscale \pgfplots@gnuplot@logdirs\space 2.71828182845905;
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
index 112e33330de..ac17d5ffb5e 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
@@ -217,7 +217,7 @@
\pgfplotsthrow@warning{Sorry, the colorbar is uninitialised - your axis has no color data. Consider using 'point meta=f(x)' or something like that. I am using a color range of [0,1] for the colorbar.}%
},
/pgfplots/warning/colorbar CMYK unsupported/.code={%
- \pgfplotsthrow@warning{colorbar: The colormap '#1' has a CMYK colorspace which is not (yet) supported by PGF. I switched colorbar styles automatically to 'colorbar sampled={surf,shader=interp}' to generate a proper CMYK colorbar. Use \string\pgfplotscolorbarCMYKworkaroundfalse\space to disable this improvement. [This message won't be replicated for '#1']}%
+ \pgfplotsthrow@warning{colorbar remark: The colormap '#1' has a CMYK colorspace which is not (yet) supported by PGF. I switched colorbar styles automatically to the visually equivalent 'colorbar sampled={surf,shader=interp}' to generate a proper CMYK colorbar. This has less support in some previewers. Use \string\pgfplotscolorbarCMYKworkaroundfalse\space to disable this improvement. [This message won't be replicated for '#1']}%
},
/pgfplots/warning/ticklabel anchor undetermined/.code args={#1#2#3#4}{%
\pgfplotsthrow@warning{the ticklabel anchor cannot be determined, the normal vector -(#2) and the unit #1 vector (#3) are almost parallel (abs(cos(angle)) = #4)!}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
index e1430c929cb..9d1ee9221e2 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
@@ -2227,6 +2227,7 @@
\global\pgf@x=\pgfplotspatchvertexx\space
\global\pgf@y=\pgfplotspatchvertexy\space
% compute the bounding box using the vertices:
+ \pgfpointtransformed{}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
}%
\fi
@@ -2498,7 +2499,6 @@
% use colordata of ONE corner point. That's easy, not
% much to do.
\def\pgfplotsplothandlermesh@get@flat@color{%
- \message{pgfplotsplothandlermesh@get@flat@color^^J}%
\pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{first vertex}%
\let\pgfplots@current@point@meta=\pgfplotspatchvertexmeta
\pgfplotsaxisvisphasetransformpointmeta
@@ -2658,11 +2658,14 @@
/pgfplots/mesh/rows=3,
/pgfplots/mesh/cols=3,
/pgfplots/mesh/num points=,
+ /pgfplots/mesh input=lattice,
+ /pgfplots/patch type=rectangle,
/tikz/x={(0.44237cm,-0.07439cm)},
/tikz/y={(0.30942cm,0.23932cm)},
/tikz/z={(0.0cm,1.5cm)},
scale=0.4,
yshift=-0.7cm,
+ /pgfplots/point meta=explicit,
]
\let\pgfplots@metamax=\pgfutil@empty
\pgfplots@curplot@threedimtrue
@@ -2676,22 +2679,15 @@
\pgfmathparse{1000/(\rangeb-\rangea)}
\let\factor=\pgfmathresult
- \pgfutil@IfUndefined{pgfqpointxyz@orig}{%
- \let\pgfqpointxyz@orig=\pgfqpointxyz
- }{}%
- %
\def\simplecoordinate(##1,##2,##3){%
\pgfmathparse{\factor*(##3 - \rangea)}%
\pgfmathfloatparsenumber\pgfmathresult
\let\pgfplots@current@point@meta=\pgfmathresult
- % pgfplots changes \pgfqpointxyz to
- % \pgfplotspointdescriptionxy inside of legends, so use the
- % '@orig' point command:
- \pgfplotstreampoint{\pgfqpointxyz@orig{##1}{##2}{##3}}%
+ \pgfplotstreampoint{\pgfqpointxyz{##1}{##2}{##3}}%
}%
% for the case 'shader=interp':
- \def\pgfplotspointbbupperright{\pgfqpointxyz@orig{2}{2}{0.9}}
- \def\pgfplotspointbblowerleft {\pgfqpointxyz@orig{0}{0}{0.1}}
+ %\def\pgfplotspointbbupperright{\pgfqpointxyz{2}{2}{0.9}}
+ %\def\pgfplotspointbblowerleft {\pgfqpointxyz{0}{0}{0.1}}
\simplecoordinate(0,2,0.7)
\simplecoordinate(1,2,0.5)
@@ -2745,7 +2741,7 @@
\def\pgfplotsplothandlermesh@PIPE@DECODE@to@shader#1{%
\pgfplotsaxisvisphasetransformpointmeta
\ifpgf@relevantforpicturesize
- \pgf@process{#1}%
+ \pgfpointtransformed{#1}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\fi
\pgfplotslibrarysurfstreamcoord
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
index 36e891d4fd4..450fa25878b 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
@@ -462,10 +462,10 @@
\csname pgfplotstransformdirection\pgfplots@bar@direction@choice@\endcsname{\pgfplots@loc@TMPa}%
\let\pgfplots@loc@TMPa=\pgfmathresult
\if\pgfplots@bar@direction@choice@ x%
- \pgfqpointxy{\pgfplots@loc@TMPa}{0}%
+ \pgfqpointxy@orig{\pgfplots@loc@TMPa}{0}%
\edef\pgfmathresult{\pgf@sys@tonumber\pgf@x}%
\else
- \pgfqpointxy{0}{\pgfplots@loc@TMPa}%
+ \pgfqpointxy@orig{0}{\pgfplots@loc@TMPa}%
\edef\pgfmathresult{\pgf@sys@tonumber\pgf@y}%
\fi
%\edef\pgfplots@loc@TMPa{{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}}%
@@ -1091,16 +1091,16 @@
%
\E\pgfplots@invoke@prefilter
%
- \E\pgfplots@prepare@xcoord{\E\pgfplots@current@point@x}%
+ \E\expandafter\E\pgfplots@prepare@xcoord\E\expandafter{\E\pgfplots@current@point@x}%
\E\expandafter\E\pgfplots@invoke@filter\E\expandafter{\E\pgfmathresult}{x}%
\E\let\E\pgfplots@current@point@x=\E\pgfmathresult
%
- \E\pgfplots@prepare@ycoord{\E\pgfplots@current@point@y}%
+ \E\expandafter\E\pgfplots@prepare@ycoord\E\expandafter{\E\pgfplots@current@point@y}%
\E\expandafter\E\pgfplots@invoke@filter\E\expandafter{\E\pgfmathresult}{y}%
\E\let\E\pgfplots@current@point@y=\E\pgfmathresult
%
\ifpgfplots@curplot@threedim
- \E\pgfplots@prepare@zcoord{\E\pgfplots@current@point@z}%
+ \E\expandafter\E\pgfplots@prepare@zcoord\E\expandafter{\E\pgfplots@current@point@z}%
\E\expandafter\E\pgfplots@invoke@filter\E\expandafter{\E\pgfmathresult}{z}%
\E\let\E\pgfplots@current@point@z=\E\pgfmathresult
\fi
@@ -1769,7 +1769,10 @@
\let\pgfp@hist@totalcount@times@h@inv=\pgfmathresult
% FIXME : this here is a patch suggestion for
% https://sourceforge.net/tracker/?func=detail&atid=1060656&aid=3609245&group_id=224188
-\let\pgfp@hist@totalcount@times@h@inv=\pgfp@hist@totalcount@inv
+%
+% FIXME : this line would actually compute relative frequencies...
+% might not be too bad at all, but is no density
+%\let\pgfp@hist@totalcount@times@h@inv=\pgfp@hist@totalcount@inv
\pgfplotsarrayforeachungrouped{pgfp@hist}\as\pgfplots@hist@count{%
\pgfmathfloatparsenumber{\pgfplots@hist@count}%
\pgfmathfloatmultiply@{\pgfmathresult}{\pgfp@hist@totalcount@times@h@inv}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
index 8118ad2ef16..65562458c82 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
@@ -418,14 +418,20 @@
% /pgfplots/stacked ignores zero
\def\pgfplots@stacked@visphase@stream@coord@{%
\ifpgfplots@stacked@ignores@zero
- \ifx\pgfplots@current@point@x\pgfutil@empty% this implements `unbounded coords=jump', for example
- \else
- \pgfplotscoordmath{\pgfplots@stacked@dir}{if is}{\pgfplots@stacked@diff}{0}{%
- \let\pgfplots@current@point@x=\pgfutil@empty
- \let\pgfplots@current@point@y=\pgfutil@empty
- \let\pgfplots@current@point@z=\pgfutil@empty
- }{%
- }%
+ \edef\pgfplots@loc@TMPa{\pgfkeysvalueof{/pgfplots/stacked ignores zero/\pgfplots@visphase@name}}%
+ \def\pgfplots@loc@TMPb{true}%
+ % apply this feature only if it is active for the current
+ % visualization phase:
+ \ifx\pgfplots@loc@TMPb\pgfplots@loc@TMPa
+ \ifx\pgfplots@current@point@x\pgfutil@empty% this implements `unbounded coords=jump', for example
+ \else
+ \pgfplotscoordmath{\pgfplots@stacked@dir}{if is}{\pgfplots@stacked@diff}{0}{%
+ \let\pgfplots@current@point@x=\pgfutil@empty
+ \let\pgfplots@current@point@y=\pgfutil@empty
+ \let\pgfplots@current@point@z=\pgfutil@empty
+ }{%
+ }%
+ \fi
\fi
\fi
}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex
index 88e1bea367b..facc28cbe67 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex
@@ -598,27 +598,27 @@
\def\pgfplots@user@ticklabel@list@x{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@xticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@user@ticklabel@list@y{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@yticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@user@ticklabel@list@z{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@zticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@user@extra@ticklabel@list@x{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@extra@xticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@user@extra@ticklabel@list@y{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@extra@yticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@user@extra@ticklabel@list@z{%
\pgfplotslistselectorempty\ticknum\of\pgfplots@extra@zticklabels\to\tick
- \tick
+ \pgfplots@ticklabel@typeset@arg\tick
}
\def\pgfplots@limit@max@reg#1{%
@@ -639,55 +639,59 @@
% Check if a label does not cross the x-axis
\def\pgfplots@ytick@check@tickshow{%
\pgfplots@tickshowtrue
- \if\pgfplots@yaxislinesnum2% center
- \ifcase\pgfplots@xaxislinesnum\relax
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@min@reg{y}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@max@reg{y}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \or
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@min@reg{y}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{%
- }%
- \or
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@logical@ZERO@y pt}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \or
+ \ifpgfplots@hide@obscured@ytick
+ \if\pgfplots@yaxislinesnum2% center
+ \ifcase\pgfplots@xaxislinesnum\relax
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@min@reg{y}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@max@reg{y}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@min@reg{y}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{%
+ }%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@logical@ZERO@y pt}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@max@reg{y}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \fi
+ \fi
+ \fi
+}
+\def\pgfplots@ztick@check@tickshow{%
+ \pgfplots@tickshowtrue
+ \ifpgfplots@hide@obscured@ztick
+ \if\pgfplots@zaxislinesnum2% center
\pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@max@reg{y}}
+ {\pgfplots@tmpa}{\pgfplots@logical@ZERO@z pt}
{\pgfplots@loc@tick@placement@tolerance}
{%
\pgfplots@tickshowfalse
}{}%
\fi
\fi
-}
-\def\pgfplots@ztick@check@tickshow{%
- \pgfplots@tickshowtrue
- \if\pgfplots@zaxislinesnum2% center
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@logical@ZERO@z pt}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \fi
}%
% Fills the macros
@@ -823,41 +827,43 @@
% This is just a special case for centered axis lines.
\def\pgfplots@xtick@check@tickshow{%
\pgfplots@tickshowtrue
- \if\pgfplots@xaxislinesnum2% center
- \ifcase\pgfplots@yaxislinesnum\relax
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@min@reg{x}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@max@reg{x}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \or
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@min@reg{x}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \or
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@logical@ZERO@x pt}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
- \or
- \pgfplotsmath@ifapproxequal@dim
- {\pgfplots@tmpa}{\pgfplots@limit@max@reg{x}}
- {\pgfplots@loc@tick@placement@tolerance}
- {%
- \pgfplots@tickshowfalse
- }{}%
+ \ifpgfplots@hide@obscured@xtick
+ \if\pgfplots@xaxislinesnum2% center
+ \ifcase\pgfplots@yaxislinesnum\relax
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@min@reg{x}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@max@reg{x}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@min@reg{x}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@logical@ZERO@x pt}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \or
+ \pgfplotsmath@ifapproxequal@dim
+ {\pgfplots@tmpa}{\pgfplots@limit@max@reg{x}}
+ {\pgfplots@loc@tick@placement@tolerance}
+ {%
+ \pgfplots@tickshowfalse
+ }{}%
+ \fi
\fi
\fi
}
@@ -1259,6 +1265,14 @@
% region. Tick lines (and grid lines) won't extend to the left or
% right of axis #1.
\def\pgfplots@drawtickgridlines@INSTALLCLIP@onorientedsurf#1{%
+ \ifpgfplots@enable@tick@line@clipping
+ % this is LEGACY SUPPORT only. I did not want to change
+ % existing bounding boxes.
+ % Starting with 'compat=1.11', this is OFF.
+ \pgfplots@drawtickgridlines@INSTALLCLIP@onorientedsurf@{#1}%
+ \fi
+}
+\def\pgfplots@drawtickgridlines@INSTALLCLIP@onorientedsurf@#1{%
\pgfinterruptboundingbox%
\begingroup
% the case ||e_b|| == 0 should never happen here! Should be
@@ -1280,16 +1294,35 @@
\relax
}{%
\begingroup
- \pgfplots@ifaxisline@B@onorientedsurf@should@be@drawn{0}{%
+ % FIXME : the case of centered axis lines is missing here.
+ % 0 = lower limit,
+ % 1 = upper limit
+ % 2 = centered...
+ % Currently, "0" is also used for centered axis lines.
+ \if 2\csname pgfplots@\pgfplotspointonorientedsurfaceA axislinesnum\endcsname
+ % centered axis lines need no complicated visibility
+ % checks. They need tick lines in *any* case.
+ % So, enabled them here!
\def\pgfplots@drawticklines@for@placecomputedtick@LOWEROK{1}%
- }{%
- \def\pgfplots@drawticklines@for@placecomputedtick@LOWEROK{0}%
- }%
- \pgfplots@ifaxisline@B@onorientedsurf@should@be@drawn{1}{%
- \def\pgfplots@drawticklines@for@placecomputedtick@UPPEROK{1}%
- }{%
+ %
+ % UPPEROK is unnecessary in this context - for centered
+ % axis lines, it will be disabled anyway because the
+ % styles like 'axis x line*' set \pgfplots@xticknum to
+ % center - and that means that no tick lines will be drawn
+ % (see below).
\def\pgfplots@drawticklines@for@placecomputedtick@UPPEROK{0}%
- }%
+ \else
+ \pgfplots@ifaxisline@B@onorientedsurf@should@be@drawn{0}{%
+ \def\pgfplots@drawticklines@for@placecomputedtick@LOWEROK{1}%
+ }{%
+ \def\pgfplots@drawticklines@for@placecomputedtick@LOWEROK{0}%
+ }%
+ \pgfplots@ifaxisline@B@onorientedsurf@should@be@drawn{1}{%
+ \def\pgfplots@drawticklines@for@placecomputedtick@UPPEROK{1}%
+ }{%
+ \def\pgfplots@drawticklines@for@placecomputedtick@UPPEROK{0}%
+ }%
+ \fi
\if\pgfkeysvalueof{/pgfplots/\pgfplotspointonorientedsurfaceB\space dir/value}r%
% local special handling for reversed axes: exchange
% meaning of 'left' and 'right' here.
diff --git a/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex b/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex
index 58ae93cbc1a..655c96f2c86 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex
@@ -458,7 +458,8 @@
% for two-dimensional plots and shall be optimized.
\def\pgfplotsqpointxy@orthogonal#1#2{%
\global\pgf@x=#1\pgf@xx%
- \global\pgf@y=#2\pgf@yy}
+ \global\pgf@y=#2\pgf@yy
+}
% Takes a domain as input and generates a foreach argument which
@@ -1278,6 +1279,32 @@
}%
}%
+% Tests if string '#2' starts with pattern '#1'.
+%
+% If so, it executes #3 and defines \pgfplotsretval to contain the
+% suffix which is not equal to #1. Otherwise it executes #4.
+\def\pgfplotsutilifstartswith#1#2#3#4{%
+ \def\pgfplotsutilifstartswith@ ##1#1##2\pgfplots@EOI{%
+ \def\pgfplotsutil@tmp{##1}%
+ \ifx\pgfplotsutil@tmp\pgfutil@empty
+ % Ah - a hit!
+ %
+ % define \pgfplotsretval to be the suffix...
+ \def\pgfplotsutil@tmp#1####1\pgfplots@EOI{%
+ \def\pgfplotsretval{####1}%
+ }%
+ \pgfplotsutil@tmp#2\pgfplots@EOI
+ %
+ % ... and execute the <true> code:
+ #3\relax
+ \else
+ % hm. No such prefix.
+ #4\relax
+ \fi
+ }%
+ \pgfplotsutilifstartswith@#2--#1\pgfplots@EOI
+}%
+
% Usage:
% \pgfplotsutilstrreplace{<token>}{<replacement>}{<string>}
%