summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/generic/pgfplots/README12
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/ChangeLog41
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/Makefile16
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/README167
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/TeX-programming-notes.pdfbin341542 -> 341881 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots-macros.tex111
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.figlist146
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.libs.patchplots.tex206
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.makefile292
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.pdfbin6506090 -> 6583604 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.preamble.tex19
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.preliminaries.tex148
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.2dplots.tex40
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.3dplots.tex14
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.axis-addplot.tex4
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.markers-meta.tex12
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.specifyrange.tex77
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.tickoptions.tex6
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.tex170
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.title_abstract_intro.tex17
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.pdfbin0 -> 42956 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.tex78
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.dat649
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.script1
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.table351
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.pdfbin649259 -> 654165 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.tex47
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.pdfbin396500 -> 400308 bytes
-rw-r--r--Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.tex102
-rw-r--r--Master/texmf-dist/source/context/third/pgfplots/pgfplotstests.tar.bz2bin807328 -> 812833 bytes
-rw-r--r--Master/texmf-dist/source/latex/pgfplots/pgfplotstests.tar.bz2bin633037 -> 639139 bytes
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.patchplots.code.tex708
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/lua/pgfplots.lua (renamed from Master/texmf-dist/scripts/lua/pgfplots/pgfplots.lua)0
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex4
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex4
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_misc.code.tex20
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorelayers.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfcorescopes.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeys.code.tex4
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfkeysfiltered.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex23
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.pdflinks.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmanual.prettyprinter.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex53
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternalshared.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex389
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex16
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex33
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex187
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex15
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex740
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex76
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex12
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex2
-rw-r--r--Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex66
-rw-r--r--Master/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clickable.code.tex2
-rw-r--r--Master/texmf-dist/tex/latex/pgfplots/pgfplots.sty13
-rw-r--r--Master/texmf-dist/tex/latex/pgfplots/pgfplotstable.sty7
65 files changed, 4045 insertions, 1081 deletions
diff --git a/Master/texmf-dist/doc/generic/pgfplots/README b/Master/texmf-dist/doc/generic/pgfplots/README
index dc10b5637af..3562f43fec1 100644
--- a/Master/texmf-dist/doc/generic/pgfplots/README
+++ b/Master/texmf-dist/doc/generic/pgfplots/README
@@ -46,6 +46,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
HISTORY:
+1.7
+- added feature: 'bar shift' and 'bar width' can now be expressed in terms of axis units (compat=1.7 or higher)
+- fixed incompatibility regression pgfplots 1.6.1 pgf 2.10: layers
+- fixed incompatibility pgfplots and imakeidx
+- added feature: 'enlargelimits={abs=1cm}', i.e. enlarge by dimension rather than unit
+- patchplots lib: added patch type=bicubic
+- patchplots lib: added support for global paths (fillable)
+- patchplots lib: added patch type sampling feature
+- patchplots lib: improved usability (documentation and improvements)
+- fixed path issues in context: moved lua input file to tex/generic
+- fixed bug: \ref{legendimage} inside of legend text was wrong.
+
1.6.1:
- fixed incompatibility lualatex,shader=interp, and german package (introduced in 1.6)
diff --git a/Master/texmf-dist/doc/latex/pgfplots/ChangeLog b/Master/texmf-dist/doc/latex/pgfplots/ChangeLog
index 66b35538d12..fcfa6d14d9c 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/ChangeLog
+++ b/Master/texmf-dist/doc/latex/pgfplots/ChangeLog
@@ -1,3 +1,44 @@
+2012-10-24 Christian Feuersaenger <cfeuersaenger@users.sourceforge.net>
+ - RELEASED 1.7
+
+2012-10-24 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - added patch type=bicubic
+ - added support for global paths (fillable) for patch plots lib
+ - added patch type sampling feature
+
+2012-10-11 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed search path issue in context: moved pgfplots.lua to tex/generic
+
+2012-10-03 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed bug: pgfplots accidentally \let\directlua=\relax if not loaded with lualatex (and a couple of similar incidents).
+ Thanks to Heiko Oberdiek for the fix.
+ - worked on size compensation for 'enlarge x limits={abs=1cm}', i.e. for
+ enlarge-by-dimension. It will now respect width/height for standard axes.
+ - added contour external/output point meta key.
+
+2012-10-01 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed bug: \ref{legendimage} inside of legend text was wrong.
+
+2012-09-30 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed(?) bug: log basis and stacked plots
+
+2012-09-21 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - added debug output feature: \addplot3 graphics[debug=visual]
+
+2012-09-10 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed incompatibility regression pgfplots 1.6.1 pgf 2.10: layers
+
+2012-09-02 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - fixed sanity checking for logarithmic samples of undefined domains
+
+2012-09-01 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - added early draft for 'enlarge x limits={abs=1cm}', i.e. for
+ enlarge-by-dimension.
+
+2012-08-27 Christian Feuersaenger <ludewich@users.sourceforge.net>
+ - added switch 'compat/bar width by units' which interpretes 'bar width=1'
+ in terms of axis units (width = 1 unit)
+
2012-08-23 Christian Feuersaenger <ludewich@users.sourceforge.net>
- RELEASED 1.6.1
diff --git a/Master/texmf-dist/doc/latex/pgfplots/Makefile b/Master/texmf-dist/doc/latex/pgfplots/Makefile
index 4f61e6ecb76..ce8e067f04f 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/Makefile
+++ b/Master/texmf-dist/doc/latex/pgfplots/Makefile
@@ -24,6 +24,22 @@ include pgfplots.makefile
@echo ""
@echo "$@ compiled successfully. You may need to re-run make several times to get all cross-references right."
+html: FORCE
+ mkdir -p html/figures/generated
+ mkdir -p html/gnuplot
+ # FIXME: this inclusion pattern might include aux files of the pdf version!
+ @cd html && \
+ export TEXINPUTS=../:$$TEXINPUTS; \
+ $(PDFLATEX) '\def\pgfplotsmanualhtlatexmode{1} \input pgfplots.tex'
+ @cd html && \
+ $(TEXMFCNF_FOR_MEMLIMITS) && \
+ export TEXINPUTS=../:$$TEXINPUTS; \
+ make -k -f pgfplots.makefile
+ @cd html && \
+ export TEXINPUTS=../:$$TEXINPUTS; \
+ htlatex pgfplots.tex
+
+
pgfplots.pdf: $(ALL_FIGURES)
pgfplots.makefile:
diff --git a/Master/texmf-dist/doc/latex/pgfplots/README b/Master/texmf-dist/doc/latex/pgfplots/README
deleted file mode 100644
index dc10b5637af..00000000000
--- a/Master/texmf-dist/doc/latex/pgfplots/README
+++ /dev/null
@@ -1,167 +0,0 @@
-pgfplots - Create normal/logarithmic plots in two and three dimensions for LaTeX/TeX/ConTeXt.
-
-pgfplotstable - Loads, rounds, formats and postprocesses numerical tables.
-
-PGFPlots draws high--quality function plots in normal or logarithmic scaling
-with a user-friendly interface directly in TeX. The user supplies axis labels,
-legend entries and the plot coordinates for one or more plots and PGFPlots
-applies axis scaling, computes any logarithms and axis ticks and draws the
-plots. It supports line plots, scatter plots, piecewise constant plots, bar
-plots, area plots, mesh-- and surface plots, patch plots, contour plots, quiver
-plots, histogram plots, polar axes, ternary diagrams, smith charts and some
-more.
-
-Pgfplots is based on Till Tantau's package PGF/TikZ (pgf).
-
-Pgfplotstable displays numerical tables rounded to desired precision in various
-display formats, for example scientific format, fixed point format or integer,
-using TeX's math facilities for pretty printing. Furthermore, it provides
-methods for table postprocessing.
-
-Please take a look at
- doc/latex/pgfplots/pgfplots.pdf
-and
- doc/latex/pgfplots/pgfplotstable.pdf.
-
-
-REMARK
-The virus killer Avira Antivir reports the virus HTML/Malicious PDF.Gen in pgfplots.pdf.
-This is a FALSE ALARM caused by the pgfplots library for interactive,
-clickable plots (based on javascript). It is virus-free.
-
-Copyright 2007-2011 by Christian Feuersaenger.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-HISTORY:
-1.6.1:
-- fixed incompatibility lualatex,shader=interp, and german package (introduced in 1.6)
-
-1.6:
-- added support for layered graphics (main use case: multiple axes and layers)
-- added support for second colormap in mesh plots (mesh/interior colormap name)
-- added support for scopes inside of axes
-- contour plots: added ability to provide list of discrete labels (mesh/levels)
-- empty lines are interpreted as interruptions in data plots (was undocumented since 1.4)
-- added more scaling options to 'scale mode=scale uniformly' (affects axis equal in 3d
- and \addplot3 graphics)
-- fixed wrong implementation of 'axis equal' and 'unit vector ratio' in 3d
- (backwards compatible for 2d, but not for 3d - the 3d implementation was plain wrong)
-- fixed incompatibility of lualatex and shader=interp
-- fixed bugs/added features around \addplot3 graphics
-- fixed bug: colorbar did not support ymode=log
-- fixed a couple of minor bugs
-- fixed bounding box computation for clip=false,axis lines=none
-
-1.5.1:
-- more operations for FPU library (==, !=,<=,>=,?)
-- fixed bug in usage of decorations in \addplot
-- bugfix for contour prepared format=matlab
-- added 'const plot mark mid' and 'jump mark mid' plot handlers
-- nodes on a plot (\addplot ... node[pos=<fraction>] {};)
-- 'trim axis group left' and 'trim axis group right'
-- bugfixes for polar axes and log+stacked plots
-- added style 'log ticks with fixed point'
-- introduced patched tikz paths to simplify circles and ellipses within an axis
-- patchplots lib: patch type=polygon
-- some more bugfixes
-
-1.5:
- - Contour plots,
- - Histograms,
- - Quiver plots,
- - patch plots (library)
- - Triangle Meshes
- - Bilinear Elements
- - Quadratic Triangles
- - Biquadratic Quadrilaterals
- - Coons Patches
- - Discrete colorbars,
- - Table sorting,
- - Linear regression,
- - Ternary diagrams,
- - Tieline Plots
- - Smith Charts
- - Polar axes,
- - Empty lines in input files result in interrupted plots,
- - PDF user defined coordinate mouse popups
- - CMYK colormaps and shadings,
- - new markers and cycle lists
- - access to axis limits,
- - \addplot3 graphics: pgfplots draws an appropriate axis for a three-dimensional(!) external png graphics
- - 3D axes: support to provide explicit unit vectors:
- - explicit unit vectors
- - explicit unit vectors which are uniformly rescaled to match width/height
- - 3D axes: improved support for unit vector ratios
- - improvements of the groupplot styles
- - preliminary support for (2d) bar plots in 3d axes
- - new shader 'faceted interp'
- - table package:
- - 'every nth row' style
- - 'comment chars' key to define comment characters in input files
- - 'skip first n' style
- - lots of smaller bugfixes (see ChangeLog for details)
-
-
-1.4.1:
-- improved compatibility to gnuplot 4.4
-
-1.4:
-Version 1.4 contains several new features, mostly work on details.
-It fixes many bugs and provides the following improvements:
-- detached legends
-- detached colorbars
-- ybar (and similar plots) can now be mixed with other plot types
- like line plots.
-- improved legend formatting
-- added 'restrict x to domain*' which cups coordinates outside of a specified domain (same for y and z)
-- Added support for linear regression
-- Inline tables,
-- Lots of bug fixes
-
-The next version will make a greater step when it is stable.
-
-
-1.3.1:
-Version 1.3.1 is a bugfix release containing
-- improved parametric plots with gnuplot
-- improved normalsize, small and footnotesize scale styles and added tiny
-- a lot of bugfixes
-
-1.3:
-- improvements for two dimensional visualization, among them
- - axis equal,
- - color bars,
- - nodes near coords,
- - jumps in plots,
- - improved description positioning,
- - reverseable axis directions,
- - simpler alignment of adjacent axes,
- - units and a simplified user interface,
-- new three dimensional line, scatter, mesh and surface plots,
-- a copy of the automatic pdf externalization library,
-- an improved manual enhanced with a lot of pdf cross references.
-
-1.2.2:
-- fixed a problem with the samples key,
-- provides some smaller fixes and some manual improvements.
-- added plot graphics.
-
-1.2:
-- completely rewritten math expression parser with extended data range,
-- colormaps for scatter plots
-- fine tuning for plot parameters.
-- table package has been extended and is now a fully featured table typesetting, computing and postprocessing tool.
-
diff --git a/Master/texmf-dist/doc/latex/pgfplots/TeX-programming-notes.pdf b/Master/texmf-dist/doc/latex/pgfplots/TeX-programming-notes.pdf
index 29e9654abe4..ede9265aac9 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/TeX-programming-notes.pdf
+++ b/Master/texmf-dist/doc/latex/pgfplots/TeX-programming-notes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots-macros.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots-macros.tex
index c018e43613a..647b49724a8 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots-macros.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots-macros.tex
@@ -92,16 +92,21 @@
\def\pgfmanualbar{\char`\|}
\makeatletter
-\newif\ifpgfplotsmanualexternalexpensive
-\let\pgfplotsmanualexternalexpensivetrue@orig=\pgfplotsmanualexternalexpensivetrue
-
-% use \pgfplotsmanualexternalexpensivetrue to externalize expensive
-% examples.
-\def\pgfplotsmanualexternalexpensivetrue{%
- \usepgfplotslibrary{external}
- \pgfplotsmanualexternalexpensivetrue@orig
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\usepgfplotslibrary{external}
+
+% use \pgfplotsmanualenableexternalizationofexpensive in the preamble
+% to enable externalization of expensive examples.
+% This will ONLY externalize expensive examples, i.e. those for which
+% \pgfplotsexpensiveexample is written:
+%
+% \pgfplotsexpensiveexample
+% \begin{codeexample}
+\def\pgfplotsmanualenableexternalizationofexpensive{%
+ \pgfplotsmanual@enable@externalization@for@expensivetrue
\tikzexternalize[
- prefix=figures/expensiveexample,
+ prefix=figures/expensiveexampleX,% the 'X' suffix is to avoid confusion in git: previous versions contained the pdfs in git
figure name={},
export=false, % needs to be activated for single pictures (i.e. expensive ones)
mode=list and make,
@@ -115,6 +120,7 @@
}%
%\pgfkeys{/pgf/images/include external/.code={\href{file:#1}{\pgfimage{#1}}}} % FIXME : NOT FOR THE FINAL VERSION
+\newif\ifpgfplotsmanual@enable@externalization@for@expensive
\newif\ifpgfplots@example@is@expensive
\pgfkeys{
@@ -128,13 +134,98 @@
% Write this macro directly in front of \begin{codeexample} (without arguments):
\def\pgfplotsexpensiveexample{%
- \ifpgfplotsmanualexternalexpensive
+ \ifpgfplotsmanual@enable@externalization@for@expensive
\pgfplots@example@is@expensivetrue
\else
\message{[NOTE: I am now about to typeset an expensive example. You will need to ENLARGE YOUR TeX MEMORY CAPACITIES if this fails.]}%
\fi
}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifpgfplotsmanualhtmlmode
+
+% MACROS FOR HTML OUTPUT:
+% HTML will be compiled in a separate folder. See the Makefile
+\tikzset{
+ external/html export mode/.style={
+ system call={%
+ pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\\def\\pgfplotsmanualhtlatexmode{1}\texsource" && pdftoppm "\image.pdf" | pnmtopng > "\image.png"%
+ },
+ /pgf/images/external info,
+ /pgf/images/include external/.code={%
+ \includegraphics
+ [width=\pgfexternalwidth,height=\pgfexternalheight]
+ {##1.png}%
+ },
+ prefix=figures/generated/,
+ figure name={manual},
+ mode=list and make,
+ verbose=false,
+ },
+}
+
+\def\pgfplotsmanual@configure@for@htlatexmode{%
+ % disable this; we will externalize everything now:
+ \let\pgfplotsmanualenableexternalizationofexpensive=\relax
+ %
+ \message{^^Jpgfplots manual: initializing external lib for HTML output (png)^^J}%
+ \tikzexternalize[
+ html export mode,
+ ]
+ %
+ \@ifpackageloaded{tex4ht}{%
+ \usepackage[html,png,3]{tex4ht}
+ \tikzset{external/mode=only graphics}%
+ \patches@for@htlatex
+ }{%
+ }%
+ %
+ \pgfplotsmanualhtmlmodetrue
+ %
+ \gdef\pgfsys@imagesuffixlist{.png}
+ %
+ \tikzifexternalizing{%
+ %\nofiles
+ \pgfkeys{/pdflinks/codeexample links=false}%
+ }{}%
+}
+
+% explanation of how to customize tex4ht:
+% http://www.cvr.cc/tex4ht-low-level-commands/#more-482
+%
+% some reference:
+% http://www.cvr.cc/tex4ht-options/
+%
+% some tex4ht mailing list discussion:
+% http://tug.org/pipermail/tex4ht/2010q4/000246.html
+\def\patches@for@htlatex{%
+ \let\savecolor\color
+ \NewConfigure{color}[2]{\def\a at color{##1}\def\b at color{##2}}
+ \def\@@tmp##1{\a at color##1\b at color\savecolor{##1}\aftergroup\endspan}
+ \let\color\@@tmp
+ \def\endspan{\Tg</span>}
+ \Configure{color}{\HCode{<span style="color:}}{\HCode{;">}}
+}%
+
+\@ifpackageloaded{tex4ht}{
+ % always active here:
+ \def\pgfplotsmanualhtlatexmode{1}%
+}{
+}
+
+% the macro \pgfplotsmanualhtlatexmode should be set from command line
+% (to any value). If it is known, the manual will be translated to
+% HTML.
+\pgfutil@ifundefined{pgfplotsmanualhtlatexmode}{%
+}{%
+ \pgfplotsmanual@configure@for@htlatexmode
+}%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
\newenvironment{addplotoperation}[3][]{
\begin{pgfmanualentry}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.figlist b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.figlist
index 72fe5bfd092..c9c6930e0e5 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.figlist
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.figlist
@@ -1,73 +1,73 @@
-figures/expensiveexamplereference_addplot_0
-figures/expensiveexamplereference_addplot_1
-figures/expensiveexamplereference_addplot_2
-figures/expensiveexamplereference_twodim_0
-figures/expensiveexamplereference_twodim_1
-figures/expensiveexamplereference_twodim_2
-figures/expensiveexamplereference_twodim_3
-figures/expensiveexamplereference_twodim_4
-figures/expensiveexamplereference_threedim_0
-figures/expensiveexamplereference_threedim_1
-figures/expensiveexamplereference_threedim_2
-figures/expensiveexamplereference_threedim_3
-figures/expensiveexamplereference_threedim_4
-figures/expensiveexamplereference_threedim_5
-figures/expensiveexamplereference_threedim_6
-figures/expensiveexamplereference_threedim_7
-figures/expensiveexamplereference_threedim_8
-figures/expensiveexamplereference_threedim_9
-figures/expensiveexamplereference_threedim_10
-figures/expensiveexamplereference_threedim_11
-figures/expensiveexamplereference_threedim_12
-figures/expensiveexamplereference_threedim_13
-figures/expensiveexamplereference_threedim_14
-figures/expensiveexamplereference_threedim_15
-figures/expensiveexamplereference_threedim_16
-figures/expensiveexamplereference_threedim_17
-figures/expensiveexamplereference_threedim_18
-figures/expensiveexamplereference_threedim_19
-figures/expensiveexamplereference_threedim_20
-figures/expensiveexamplereference_threedim_21
-figures/expensiveexamplereference_threedim_22
-figures/expensiveexamplereference_threedim_23
-figures/expensiveexamplereference_threedim_24
-figures/expensiveexamplereference_threedim_interior_colormap_0
-figures/expensiveexamplereference_threedim_interior_colormap_1
-figures/expensiveexamplereference_threedim_interior_colormap_2
-figures/expensiveexamplereference_threedim_interior_colormap_3
-figures/expensiveexamplereference_threedim_contour_0
-figures/expensiveexamplereference_threedim_contour_1
-figures/expensiveexamplereference_threedim_contour_2
-figures/expensiveexamplereference_threedim_contour_3
-figures/expensiveexamplereference_threedim_contour_4
-figures/expensiveexamplereference_threedim_25
-figures/expensiveexamplereference_threedim_26
-figures/expensiveexamplereference_threedim_27
-figures/expensiveexamplereference_threedim_28
-figures/expensiveexamplereference_threedim_29
-figures/expensiveexamplereference_threedim_30
-figures/expensiveexamplereference_threedim_31
-figures/expensiveexamplereference_0
-figures/expensiveexamplereference_1
-figures/expensiveexamplereference_2
-figures/expensiveexamplereference_3
-figures/expensiveexamplereference_threedimaxis_0
-figures/expensiveexamplereference_threedimaxis_1
-figures/expensiveexamplereference_threedimaxis_2
-figures/expensiveexamplereference_threedimaxis_3
-figures/expensiveexamplereference_threedimaxis_4
-figures/expensiveexamplereference_threedimaxis_5
-figures/expensiveexamplereference_threedimaxis_6
-figures/expensiveexamplereference_threedimaxis_7
-figures/expensiveexamplereference_threedimaxis_8
-figures/expensiveexamplereference_4
-figures/expensiveexamplereference_5
-figures/expensiveexamplereference_nodes_0
-figures/expensiveexamplereference_nodes_1
-figures/expensiveexamplereference_nodes_2
-figures/expensiveexamplereference_nodes_3
-figures/expensiveexamplepatchplot_0
-figures/expensiveexamplepolar_0
-figures/expensiveexamplememspeed_0
-figures/expensiveexamplememspeed_1
-figures/expensiveexamplememspeed_2
+figures/expensiveexampleXreference_addplot_0
+figures/expensiveexampleXreference_addplot_1
+figures/expensiveexampleXreference_addplot_2
+figures/expensiveexampleXreference_twodim_0
+figures/expensiveexampleXreference_twodim_1
+figures/expensiveexampleXreference_twodim_2
+figures/expensiveexampleXreference_twodim_3
+figures/expensiveexampleXreference_twodim_4
+figures/expensiveexampleXreference_threedim_0
+figures/expensiveexampleXreference_threedim_1
+figures/expensiveexampleXreference_threedim_2
+figures/expensiveexampleXreference_threedim_3
+figures/expensiveexampleXreference_threedim_4
+figures/expensiveexampleXreference_threedim_5
+figures/expensiveexampleXreference_threedim_6
+figures/expensiveexampleXreference_threedim_7
+figures/expensiveexampleXreference_threedim_8
+figures/expensiveexampleXreference_threedim_9
+figures/expensiveexampleXreference_threedim_10
+figures/expensiveexampleXreference_threedim_11
+figures/expensiveexampleXreference_threedim_12
+figures/expensiveexampleXreference_threedim_13
+figures/expensiveexampleXreference_threedim_14
+figures/expensiveexampleXreference_threedim_15
+figures/expensiveexampleXreference_threedim_16
+figures/expensiveexampleXreference_threedim_17
+figures/expensiveexampleXreference_threedim_18
+figures/expensiveexampleXreference_threedim_19
+figures/expensiveexampleXreference_threedim_20
+figures/expensiveexampleXreference_threedim_21
+figures/expensiveexampleXreference_threedim_22
+figures/expensiveexampleXreference_threedim_23
+figures/expensiveexampleXreference_threedim_24
+figures/expensiveexampleXreference_threedim_interior_colormap_0
+figures/expensiveexampleXreference_threedim_interior_colormap_1
+figures/expensiveexampleXreference_threedim_interior_colormap_2
+figures/expensiveexampleXreference_threedim_interior_colormap_3
+figures/expensiveexampleXreference_threedim_contour_0
+figures/expensiveexampleXreference_threedim_contour_1
+figures/expensiveexampleXreference_threedim_contour_2
+figures/expensiveexampleXreference_threedim_contour_3
+figures/expensiveexampleXreference_threedim_contour_4
+figures/expensiveexampleXreference_threedim_25
+figures/expensiveexampleXreference_threedim_26
+figures/expensiveexampleXreference_threedim_27
+figures/expensiveexampleXreference_threedim_28
+figures/expensiveexampleXreference_threedim_29
+figures/expensiveexampleXreference_threedim_30
+figures/expensiveexampleXreference_threedim_31
+figures/expensiveexampleXreference_0
+figures/expensiveexampleXreference_1
+figures/expensiveexampleXreference_2
+figures/expensiveexampleXreference_3
+figures/expensiveexampleXreference_threedimaxis_0
+figures/expensiveexampleXreference_threedimaxis_1
+figures/expensiveexampleXreference_threedimaxis_2
+figures/expensiveexampleXreference_threedimaxis_3
+figures/expensiveexampleXreference_threedimaxis_4
+figures/expensiveexampleXreference_threedimaxis_5
+figures/expensiveexampleXreference_threedimaxis_6
+figures/expensiveexampleXreference_threedimaxis_7
+figures/expensiveexampleXreference_threedimaxis_8
+figures/expensiveexampleXreference_4
+figures/expensiveexampleXreference_5
+figures/expensiveexampleXreference_nodes_0
+figures/expensiveexampleXreference_nodes_1
+figures/expensiveexampleXreference_nodes_2
+figures/expensiveexampleXreference_nodes_3
+figures/expensiveexampleXpatchplot_0
+figures/expensiveexampleXpolar_0
+figures/expensiveexampleXmemspeed_0
+figures/expensiveexampleXmemspeed_1
+figures/expensiveexampleXmemspeed_2
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.libs.patchplots.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.libs.patchplots.tex
index cf23448973a..54acad0f01b 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.libs.patchplots.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.libs.patchplots.tex
@@ -3,21 +3,36 @@
\tikzset{external/figure name/.add={}{patchplot_}}%
\label{sec:lib:patchplots}
\begin{pgfplotslibrary}{patchplots}
- A library for advanced |patch| plots. It has been designed to visualize shaded isoparametric finite element meshes of higher order. Its core is an interface to the generation of smoothly shaped elements with interpolated color values (based on \texttt{.pdf} Shading Type 6 and \texttt{.pdf} Shading Type 7), with additional (limited) support for constant color filling without shadings.
+ A library for advanced |patch| plots. Its strength is the creation of patches with smooth boundaries and smoothly shaded colors.
+
+ A |patch| plot is a plot in which each individual patch is available. Here, ``available'' means that the user provided each individual patch manually. This can be achieved by means of a long series of patches which have been concatenated in a suitable way (compare the description of |patch| plots in section~\ref{sec:pgfplots:3d:patch}) or by means of a mathematical expression which is sampled (compare the key |patch type sampling|). Most |patch type|s expect a series of point evaluations in a specific sequence.
+
+ Note that even though each individual patch might have a smooth boundary, the |patchplots| library \emph{does not interpolate smoothly between adjacent patches}. Consequently, it is task of the one who creates the patches (which means: evaluated some function at its vertices) to ensure that patches can be glued together in an adequate way. This allows a lot of freedom, including both jumps and smoothly concatenated edges.
+
+ The |patchplots| library comes with a couple of inherently two--dimensional |patch type|s (including second order triangles/rectangular patches and cubic tensor product patches known for finite elements). Typically, these patches live in a three--dimensional axis. Often, they are used to visualize the surface of function values $f(x,y)$. The |patchplots| library ensures that such patches are drawn in a way which respects the current view. In particular, if a patch folds over itsself (which is possible), it is drawn such that foreground areas are in the foreground and background areas are in the background.
+
+ The |patchplots| library comes with smoothly shaded patches. More precisely, both the boundary of patches and their color shading are smooth. Note, however, that the patch boundary typically has much more smoothness than the color shading.
+
+ The |patchplots| library also allows automatic conversion from a higher--order patch to triangles (triangulation) by means of the key |patch to triangles|. Furthermore, it features automatic |patch refines|.
+
+ Use the |patchplots| library if you want to have smooth boundaries for your patches, or if you need advanced shadings, or if you want polygon plots, or if you want more freedom in one--dimensional patches.
-\subsubsection{Additional Patch Types}
\message{Underfull hbox is OK.^^J}%
-\begin{pgfplotskey}{patch type=\mchoice{default,rectangle,triangle,line,quadratic spline,cubic spline,\\bilinear,triangle quadr,biquadratic,coons,polygon,tensor bezier} (initially default)}
+\begin{pgfplotskey}{patch type=\mchoice{default,rectangle,triangle,line,quadratic spline,cubic spline,\\bilinear,triangle quadr,biquadratic,bicubic,polygon,coons,tensor bezier} (initially default)}
The |patchplots| library supports several new |patch type|s in addition to the initially available choices (which are |rectangle|,|triangle| and |line|). The documentation of the two--dimensional choices from page~\pageref{key:patch:type} is repeated here.
- There are two new one--dimensional patch types, namely |quadratic spline| and |cubic spline|. Here, |patch type=quadratic spline| consists of quadratic patches of $n=3$ vertices each. The vertices are interpolated exactly:
+ The new |patch type|s are discussed in detail on the following pages.
+\end{pgfplotskey} % end the environment to simplify sectioning.
+
+\subsubsection{One--Dimensional Patch Types}
+ There are two new one--dimensional patch types, namely |quadratic spline| and |cubic spline|. Here, |patch type=|\declareandlabel{quadratic spline} consists of quadratic patches of $n=3$ vertices each. The vertices are interpolated exactly:
\begin{codeexample}[]
\begin{tikzpicture}
\begin{axis}[nodes near coords={(\coordindex)},
title={\texttt{patch type=quadratic spline}}]
\addplot[
mark=*,
- patch,mesh,% without mesh, pgfplots tries to fill
+ patch,
patch type=quadratic spline]
coordinates {
% left, right, middle-> first segment
@@ -30,14 +45,14 @@ coordinates {
\end{codeexample}
\noindent In our example, the first segment interpolates $f(x)=x^2$ at the points $\{0,\nicefrac12,1\}$. The |quadratic spline| is actually nothing but piecewise Lagrangian interpolation with quadratic polynomials: it expects three points in the sequence `(left end), (right end), (middle)' and interpolates these three points with a quadratic polynomial. Unlike the default 1d |mesh| visualization (which uses |patch type=line| implicitly), you have to use the special syntax above (or the equivalent approach by means of |patch table|). Note that |patch type=quadratic spline| results in correct shapes, but uses \emph{just constant color} for each segment; high--order color shading is only supported approximately using |patch refines|.
- The |patch type=cubic spline| is very similar: it expects patches of $n=4$ vertices and interpolates them with a cubic polynomial:
+ The |patch type=|\declareandlabel{cubic spline} is very similar: it expects patches of $n=4$ vertices and interpolates them with a cubic polynomial:
\begin{codeexample}[]
\begin{tikzpicture}
\begin{axis}[nodes near coords={(\coordindex)},
title={\texttt{patch type=cubic spline}}]
\addplot[
mark=*,
- patch,mesh,
+ patch,
patch type=cubic spline]
coordinates {
% left, right, left middle, right middle
@@ -51,7 +66,141 @@ coordinates {
\end{codeexample}
\noindent Here, we interpolated $f(x)=x^3$ at the four equidistant points $\{-1,-\nicefrac13,\nicefrac13,1\}$ with a cubic polynomial (which is $x^3$). The |cubic spline| expects a sequence of patches, each with four coordinates, given in the sequence `(left end), (right end), (interpolation point at $\nicefrac13$), (interpolation point at $\nicefrac23$)'. It has limitations and features like |quadratic spline|, see above.
+\subsubsection{Providing Patches by means of Mathematical Expressions}
+ Most |patch type|s expect a specific number of vertices in a specific sequence. This is part of what the |patchplots| library is. But is is still tedious to provide this sort of data.
+
+ For simple |patch type|s like |line,rectangle| and |bilinear|, you can provide the input coordinates with any of the input methods which are available for all other plot handlers. In particular, |line| is just a |sharp plot| (with individually colored segments) and |rectangle| is nothing but a |surf| plot. Note that both |rectangle| and |bilinear| also accept the standard matrix input (with scanlines, see |mesh/ordering| and its documentation). In summary: \emph{simple patch types accept a simple input format}.
+
+\begin{pgfplotskey}{patch type sampling=\mchoice{true,false} (initially false)}
+ There are some complicated |patch type|s. In particular, all |patch type|s of higher order (i.e.\ \verbpdfref{quadratic spline}, \verbpdfref{cubic spline}, \verbpdfref{triangle quadr}, |biquadratic|, |bicubic|) need more points than just their corners. For such patch types, you need to resort to |mesh input=patches|. That means you need to provide extra vertices and their function evaluation values in a specific sequence.
+
+ The |patch type sampling| method allows to simplify the procedure for such complicated |patch type|s\footnote{Note that \texttt{patch type sampling} is more or less useless for simple patch types.}: it works together with |\addplot expression| and evaluates the mathematical expression at each of the required vertices (in the correct sequence):
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \begin{axis}
+ \addplot[
+ samples=5,domain=-3:3,
+ mesh,patch type=cubic spline,
+ patch type sampling,
+ % avoid individual colors per segment:
+ blue,point meta=none,
+ ]
+ {exp(-x^2)};
+
+ % a second plot which shows the
+ % generated x positions:
+ \addplot[
+ mark=*,only marks,scatter,
+ samples=5,domain=-3:3,
+ patch type=cubic spline,
+ patch type sampling,
+ point meta={exp(-x^2)},
+ ]
+ {-0.1};
+
+ % a third plot which shows the marks
+ % without patch type sampling:
+ \addplot[
+ mark=*,only marks,scatter,
+ samples=5,domain=-3:3,
+ point meta={exp(-x^2)},
+ ]
+ {-0.15};
+
+ \end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ \noindent The first plot above is almost a normal plot by expression. The |samples| and |domain| key controls the sampling procedure, and |blue,point meta=none| defines the global color to use. Note that the special choice |point meta=none| simply disables individual colors per mesh segment (which is the default for |mesh| plots). However, the |patch type sampling| key here makes a huge difference: it tells \PGFPlots\ to check the current value of |patch type| and to sample a coordinate sequence which is suitable as input for that |patch type|. We see that the outcome is a partially smooth function (more about that below).
+
+ The method |patch type sampling| samples |x| just as usual. The result is a sequence $[x_0,x_1,\dotsc,x_k]$. For each interval $[x_i,x_{i+1}]$, a |patch type| is sampled inside of the interval. To this end, the current |patch type| is used to generate a standardized vertex pattern in the unit cube. For |patch type=cubic spline|, this generates four points $0, \nicefrac13, \nicefrac23, 1$. These standardized numbers are mapped into $[x_i, x_{i+1}]$. Then, any mathematical expressions (in our case |exp(-x^2)|) are evaluated at the resulting positions.
+
+ The second plot in our example above shows the |mark|ers resulting from |patch type sampling|. Note that we see $13$ markers even though we have said |samples=5|. These $5$ samples are shown in the third plot. This is because |patch type=cubic spline| needs $4$ points for each patch (i.e.\ $4$ points in each sampled interval).
+
+ Note that even though the result in our example above is \emph{partially} smooth, it is \emph{not} globally smooth. In other words: each resulting mesh segment is a polynomial of third order. But: the five cubic polynomials are determined independently; and they are simple glued together without any intelligence. In particular, they are \emph{unsmooth} at the five initial sampling points! This key cannot apply global smoothing. It is really just a convenient method which simplifies sampling of such patch types.
+
+ The method |patch type sampling| can also be used for |surf| plots, i.e.\ for matrix sampling. It works in the same way:
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}
+ \addplot3[surf,shader=interp,
+ patch type=bicubic,
+ patch type sampling,
+ samples=5,domain=-3:3]
+ {exp(-x^2-y^2)};
+
+ % show the generated grid on top:
+ \addplot3[
+ mark=*,mark size=1pt,only marks,scatter,
+ samples=5,domain=-3:3,
+ patch type=bicubic,
+ patch type sampling,
+ point meta={exp(-x^2-y^2)},
+ ]
+ {1.1};
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ The example is similar to our one--dimensional example above: it uses the same 1d function as product. We see that it has $13^2$ samples instead of just $5^2$, and we see that the geometry is partially smooth (see above for ``partially''). Note, however, that the color interpolation is only applied once per patch. The following example shows a |bilinear| patch with unsmooth geometry, but higher resolution for the color data, on a $13\times13$ mesh:
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}
+ \addplot3[surf,shader=interp,
+ patch type=bilinear,
+ samples=13,domain=-3:3]
+ {exp(-x^2-y^2)};
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ Note that you may want to view the preceding examples in Acrobat Reader. Many free pdf viewers cannot display these shadings properly.
+\end{pgfplotskey}
+
+\subsubsection{Global One--Dimensional Curves with Smooth Splines}
+\index{point meta!point meta=none for smooth patch plots}
+Typically, \PGFPlots\ assumes that you want individually colored patch segments whenever you use one of the plot handlers |mesh|, |surf|, or |patch|. The individual colors are determined by the current |colormap| and the value of |point meta| (compare section~\ref{pgfplots:point:meta}).
+Technically, individually colored path segments are one unit. If you |fill| them, you fill only one segment. You cannot fill them against the axis. In particular, you cannot use |\closedcycle| for individually colored |mesh| or |patch| plots.
+\index{closedcycle!Mesh or patch plots}%
+\index{mesh!closedcycle}%
+\index{patch!closedcycle}%
+
+The |patchplots| library comes with one--dimensional |patch type|s like \verbpdfref{quadratic spline} or \verbpdfref{cubic spline}. It would be useful to draw a global path, that is: one which has a single color such that |\closedcycle| works. This is supported if you write |point meta=none|:
+\index{mesh!point meta=none and global paths}%
+\index{surf!point meta=none and global paths}%
+\index{patch!point meta=none and global paths}%
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}[
+ axis lines=middle,
+ axis on top,
+ enlargelimits,
+ title={Global path with
+ \texttt{cubic spline}}]
+\addplot[
+ mark=*,
+ patch,
+ patch type=cubic spline,
+ point meta=none,% allow \closedcycle
+ blue,
+ fill=blue!60!black,
+]
+table {
+ % left, right, left middle, right middle
+ -1 -1
+ 1 1
+ -0.333333 -0.037037
+ 0.333333 +0.037037
+
+ 1 1
+ 2 -0.5
+ 1.333333 1.5
+ 1.666666 1
+}
+\closedcycle;
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+
+\subsubsection{Two--Dimensional Patch Types}
The |patchplots| library is especially strong for |shader=interp|, so this is our main focus in the remaining documentation here.
\paragraph{Attention:} At the time of this writing, many free pdf viewers do not fully support the following shadings\footnote{The author of this package has submitted bugfixes to Linux viewers based on xpdf/libpoppler, so the problem will (hopefully) vanish in future versions.}. The preferred viewer is Adobe Acrobat Reader.
@@ -202,8 +351,44 @@ coordinates {
\end{axis}
\end{tikzpicture}
\end{codeexample}
- \noindent We see that the shape's boundary is reconstructed exactly using the |biquadratic| patch. In addition, |patch refines| improves the (first order) color interpolation. Details for |patch refines| are discussed in Section~\ref{sec:lib:patchplots:refinement} abd details and limitations regarding superimposed grid lines are discussed in Section~\ref{sec:lib:patchplots:grids}.
+ \noindent We see that the shape's boundary is reconstructed exactly using the |biquadratic| patch. In addition, |patch refines| improves the (first order) color interpolation. Details for |patch refines| are discussed in Section~\ref{sec:lib:patchplots:refinement} and details and limitations regarding superimposed grid lines are discussed in Section~\ref{sec:lib:patchplots:grids}.
+ The choice \declareandlabel{bicubic} is similar to |biquadratic|: it allows to defines two--dimensional patches whose boundary is defined by four cubic polynomials. Consequently, it allows very smooth boundaries -- especially since the viewer constructs these boundaries at every zoom level. A |bicubic| patch is constructed from $16$ points which are arranged in a $4\times4$ matrix. Each consecutive $16$ points make up a single |bicubic| patch. The $17$th point starts the next |bicubic| patch (just as for any other |patch type|).
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}[nodes near coords={(\coordindex)},
+ title=Single Bicubic Quadrilateral]
+\addplot3[patch,patch type=bicubic,shader=interp]
+coordinates {
+ (0,0,1) (1,0,0) (2,0,0) (3,0,0)
+ (0,1,0) (1,1,0) (2,1,0) (3,1,0)
+ (0,2,0) (1,2,0) (2,2,0) (3,2,0)
+ (0,3,0) (1,3,0) (2,3,0) (3,3,0)
+};
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ Just as for |biquadratic|, the color interpolation of |bicubic| is (just) bilinear, even though the geometry is of higher order. The color interpolation uses the |point meta| values determined at the four corners of each patch; all other values of |point meta| are ignored by the shader (although their values are used to compute |point meta min| and |point meta max|).
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}[
+ title=Two Bicubic Patches]
+\addplot3[patch,patch type=bicubic,shader=interp,point meta=explicit]
+coordinates {
+ (0,0,1)[1] (1,0,0)[0] (2,0,0)[0] (3,0,0)[0]
+ (0,1,0)[0] (1,1,0)[0] (2,1,0)[0] (3,1,0)[0]
+ (0,2,0)[0] (1,2,0)[0] (2,2,0)[0] (3,2,0)[0]
+ (0,3,0)[0] (1,3,0)[0] (2,3,0)[0] (3,3,0)[0]
+
+ (3,0,0)[0] (4,0,0)[0] (5,0,0)[0] (6,0,0)[0.7]
+ (3,1,0)[0] (4,1,.5)[1](5,1,0)[0] (6,1,0)[0]
+ (3,2,0)[0] (4,2,0)[0] (5,2,0)[0] (6,2,0)[0]
+ (3,3,0)[0] (4,3,0)[0] (5,3,0)[0] (6,3,0)[0.1]
+};
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ The previous example uses two patches of type |bicubic|. Note that the color data (|point meta|) has been provided explicitly -- and its values are only used at the corners (the |[1]| value after the point |(4,1,.5)| is ignored). Color interpolation of |bicubic| patches uses only the color data at the patch's corners. The remaining color data values are ignored. Note that if you leave the default (which is |point meta=f(x)| instead of |point meta=explicit|), the second patch will be blue. This is because the four corner vertices of the second patch define the color shading -- and their $z$ value is~$0$.
The choice \declareandlabel{coons} expects a sequence of one or more Coons patches, made up of $n=12$ points each. A Coons patch is delimited by four cubic B\'ezier curves, with the end points attached to each other -- and the $n$ points provide the required control points for these curves in a specific ordering which is illustrated in the following example:
\begin{codeexample}[]
@@ -237,7 +422,7 @@ coordinates {
Even for two dimensions, Coons patches may fold over themselves. To determine which part is foreground and which part is background, the following rule applies: the four corner points $(0)$, $(3)$, $(6)$, $(9)$ are associated to the unit cube points $(u,v) = (0,0)$, $(0,1)$, $(1,1)$ and $(1,0)$, respectively. The edge between corner $(3)$ and $(6)$ (i.e. the one with $v=1$) is foreground, the edge between $(1)$ and $(9)$ is background. Thus, large values of $v$ are drawn on top of small values of $v$. If $v$ is constant, large values of $u$ are drawn on top of small values of $u$. Thus, reordering the patch vertices (choosing a different first vertex and/or reversing the sequence) allows to get different foreground/background configurations\footnote{Internally, \PGFPlots\ employs such mechanisms to map the higher order isoparametric patch types to Coons patches, sorting according their corner's depth information.}.
- The choice \declareandlabel{tensor bezier} is similar to |patch type=coons|: it allows to define a bezier patch. However, it allows more freedom: it has $16$ control points instead of the $12$ of a |coons| patch. The four additional control points are situated in the center of each patch. This |patch type| generates \texttt{.pdf} shadings of type~$7$ (whereas |coons| patches are shadings of type~$6$). It has been added for reasons of completeness, although it has not been tested properly. Please refer to the specification of the \texttt{.pdf} format for details\footnote{If someone is willing to test it and document it, feel free to email me!}.
+ The choice \declareandlabel{tensor bezier} is similar to |patch type=coons|: it allows to define a bezier patch. However, it allows more freedom: it has $16$ control points instead of the $12$ of a |coons| patch. The four additional control points are situated in the center of each patch. This |patch type| generates \texttt{.pdf} shadings of type~$7$ (whereas |coons| patches are shadings of type~$6$). It has been added for reasons of completeness, although it has not been tested properly. Please refer to the specification of the \texttt{.pdf} format for details\footnote{If someone is willing to test it and document it, feel free to email me!}. The choice |tensor bezier| is actually \emph{the same} as |patch type=bicubic| -- except that |bicubic| automatically respects the view depth (foreground/background) and is given in a different by means of function evaluations rather than control points.
The choice \declareandlabel{polygon} expects polygons with a fixed number of vertices. This |patch type| requires the number of vertices as argument:
@@ -287,7 +472,6 @@ table[row sep=\\] {
The |patch type=polygon| supports \emph{neither} triangulation \emph{nor} shading \emph{nor} refinement. The order of appearance of the input points is supposed to be the order in which the line--to operations of the resulting path are generated.
-\end{pgfplotskey}
@@ -323,7 +507,7 @@ table[row sep=\\] {
The refined patches reproduce the geometry's shape exactly. In addition, they improve color interpolation. Note that its purpose is just visualization, therefor hanging nodes are allowed (and will be generated by |patch refine| for most |patch type|s).
- Patch refinement is implemented for all supported patches except for |patch type=coons|, |tensor bezier|, and |polygon|.
+ Patch refinement is implemented for all supported patches except for |patch type=coons|, |tensor bezier|, |bicubic| (might follow eventually) and |polygon|.
\end{pgfplotskey}
\begin{pgfplotskey}{patch to triangles=\mchoice{true,false} (initially false)}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.makefile b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.makefile
index 0349f8170b3..8de8be9a094 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.makefile
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.makefile
@@ -12,222 +12,222 @@ include $(ALL_FIGURE_NAMES:%=%.dep)
mkdir -p $(dir $@)
touch $@ # will be filled later.
-figures/expensiveexamplereference_addplot_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_addplot_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_addplot_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_addplot_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_addplot_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_addplot_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_addplot_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_addplot_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_addplot_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_addplot_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_addplot_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_addplot_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_twodim_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_twodim_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_twodim_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_twodim_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_twodim_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_twodim_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_twodim_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_twodim_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_twodim_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_twodim_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_twodim_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_twodim_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_twodim_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_twodim_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_twodim_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_twodim_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_twodim_4.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_twodim_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_twodim_4.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_twodim_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_4.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_4.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_5.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_5.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_6.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_6" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_6.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_6" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_7.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_7" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_7.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_7" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_8.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_8" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_8.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_8" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_9.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_9" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_9.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_9" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_10.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_10" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_10.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_10" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_11.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_11" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_11.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_11" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_12.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_12" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_12.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_12" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_13.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_13" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_13.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_13" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_14.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_14" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_14.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_14" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_15.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_15" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_15.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_15" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_16.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_16" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_16.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_16" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_17.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_17" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_17.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_17" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_18.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_18" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_18.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_18" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_19.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_19" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_19.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_19" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_20.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_20" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_20.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_20" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_21.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_21" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_21.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_21" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_22.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_22" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_22.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_22" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_23.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_23" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_23.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_23" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_24.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_24" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_24.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_24" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_interior_colormap_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_interior_colormap_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_interior_colormap_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_interior_colormap_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_interior_colormap_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_interior_colormap_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_interior_colormap_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_interior_colormap_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_interior_colormap_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_interior_colormap_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_interior_colormap_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_interior_colormap_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_interior_colormap_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_interior_colormap_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_interior_colormap_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_interior_colormap_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_contour_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_contour_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_contour_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_contour_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_contour_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_contour_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_contour_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_contour_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_contour_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_contour_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_contour_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_contour_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_contour_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_contour_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_contour_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_contour_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_contour_4.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_contour_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_contour_4.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_contour_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_25.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_25" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_25.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_25" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_26.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_26" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_26.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_26" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_27.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_27" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_27.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_27" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_28.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_28" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_28.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_28" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_29.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_29" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_29.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_29" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_30.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_30" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_30.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_30" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedim_31.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedim_31" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedim_31.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedim_31" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_4.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_4.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_5.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_5.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_6.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_6" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_6.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_6" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_7.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_7" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_7.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_7" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_threedimaxis_8.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_threedimaxis_8" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_threedimaxis_8.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_threedimaxis_8" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_4.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_4.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_4" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_5.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_5.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_5" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_nodes_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_nodes_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_nodes_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_nodes_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_nodes_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_nodes_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_nodes_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_nodes_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_nodes_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_nodes_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_nodes_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_nodes_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplereference_nodes_3.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplereference_nodes_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXreference_nodes_3.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXreference_nodes_3" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplepatchplot_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplepatchplot_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXpatchplot_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXpatchplot_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplepolar_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplepolar_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXpolar_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXpolar_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplememspeed_0.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplememspeed_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXmemspeed_0.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXmemspeed_0" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplememspeed_1.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplememspeed_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXmemspeed_1.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXmemspeed_1" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
-figures/expensiveexamplememspeed_2.pdf:
- pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexamplememspeed_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
+figures/expensiveexampleXmemspeed_2.pdf:
+ pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "figures/expensiveexampleXmemspeed_2" "\def\tikzexternalrealjob{pgfplots}\input{pgfplots}"
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.pdf b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.pdf
index 8abcdab378e..810470436bf 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.pdf
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preamble.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preamble.tex
index ec147b226ab..e4bf27ee3c8 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preamble.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preamble.tex
@@ -89,12 +89,6 @@
\usepackage{textcomp}
\usepackage{booktabs}
-\IfFileExists{ocg.sty}{%
- \usepackage{ocg}%
-}{%
- \usepackage{pgfplots_ocg_copy}%
-}
-
\usepackage{calc}
\usepackage[formats]{listings}
%\usepackage{courier} % don't use it - the '^' character can't be copy-pasted in courier
@@ -145,11 +139,22 @@
\usepackage{nicefrac}
\input{pgfplots-macros}
+\makeatletter
+\@ifpackageloaded{tex4ht}{
+}{%
+ \IfFileExists{ocg.sty}{%
+ \usepackage{ocg}%
+ }{%
+ \usepackage{pgfplots_ocg_copy}%
+ }
+}%
+\makeatother
+
\usepackage{nicefrac}
\graphicspath{{figures/}}
-\def\preambleconfig{width=7cm,compat=1.6}
+\def\preambleconfig{width=7cm,compat=1.7}
\expandafter\pgfplotsset\expandafter{\preambleconfig}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preliminaries.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preliminaries.tex
new file mode 100644
index 00000000000..b3c7384d94c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.preliminaries.tex
@@ -0,0 +1,148 @@
+\section[About PGFPlots: Preliminaries]{About {\normalfont\PGFPlots}: Preliminaries}
+This section contains information about upgrades, the team, the installation (in case you need to do it manually) and troubleshooting. You may skip it completely except for the upgrade remarks.
+
+\PGFPlots\ is built completely on \Tikz/\PGF. Knowledge of \Tikz\ will simplify the work with \PGFPlots, although it is not required.
+
+However, note that this library requires at least \PGF\ version $2.10$. At the time of this writing, many \TeX-distributions still contain the older \PGF\ version $1.18$, so it may be necessary to install a recent \PGF\ prior to using \PGFPlots.
+
+\subsection{Components}
+\PGFPlots\ comes with two components:
+\begin{enumerate}
+ \item the plotting component (which you are currently reading) and
+ \item the \PGFPlotstable\ component which simplifies number formatting and postprocessing of numerical tables. It comes as a separate package and has its own manual \href{file:pgfplotstable.pdf}{pgfplotstable.pdf}.
+\end{enumerate}
+
+\subsection{Upgrade remarks}
+This release provides a lot of improvements which can be found in all detail in \texttt{ChangeLog} for interested readers. However, some attention is useful with respect to the following changes.
+
+\subsubsection{New Optional Features}
+\PGFPlots\ has been written with backwards compatibility in mind: old \TeX\ files should compile without modifications and without changes in the appearance. However, new features occasionally lead to a different behavior. In such a case, \PGFPlots\ will deactivate the new feature\footnote{In case of broken backwards compatibility, we apologize -- and ask you to submit a bug report. We will take care of it.}.
+
+Any new features or bugfixes which cause backwards compatibility problems need to be activated \emph{manually} and \emph{explicitly}. In order to do so, you should use
+\begin{codeexample}[code only]
+\usepackage{pgfplots}
+\pgfplotsset{compat=1.6}
+\end{codeexample}
+\noindent in your preamble. This will configure the compatibility layer.
+
+You should have at least |compat=1.3|. The suggested value is printed to the |.log| file after running \TeX.
+
+Here is a list of changes introduced in recent versions of \PGFPlots:
+\begin{enumerate}
+ \item \PGFPlots\ 1.6 added new options for more accurate scaling and more scaling options for |\addplot3 graphics|. These are enabled with |compat=1.6| or higher.
+
+ \item \PGFPlots\ 1.5.1 interpretes circle- and ellipse radii as \PGFPlots\ coordinates (older versions used \pgfname\ unit vectors which have no direct relation to \PGFPlots). In other words: starting with version 1.5.1, it is possible to write |\draw circle[radius=5]| inside of an axis. This requires |\pgfplotsset{compat=1.5.1}| or higher.
+
+ Without this compatibility setting, circles and ellipses use low--level canvas units of \pgfname\ as in earlier versions.
+
+ \item \PGFPlots\ 1.5 uses |log origin=0| as default (which influences logarithmic bar plots or stacked logarithmic plots). Older versions keep |log origin=infty|. This requires |\pgfplotsset{compat=1.5}| or higher.
+
+ \item \PGFPlots\ 1.4 has fixed several smaller bugs which might produce differences of about $1$--$2\text{pt}$ compared to earlier releases. This requires |\pgfplotsset{compat=1.4}| or higher.
+
+ \item \PGFPlots\ 1.3 comes with user interface improvements. The technical distinction between ``behavior options'' and ``style options'' of older versions is no longer necessary (although still fully supported).
+
+ This is always activated.
+
+ \item \PGFPlots\ 1.3 has a new feature which allows to \emph{move axis labels tight to tick labels} automatically. This is strongly recommended. It requires |\pgfplotsset{compat=1.3}| or higher.
+
+ Since this affects the spacing, it is not enabled be default.
+
+ \item \PGFPlots\ 1.3 supports reversed axes. It is no longer necessary to use workarounds with negative units.
+\pgfkeys{/pdflinks/search key prefixes in/.add={/pgfplots/,}{}}
+
+ Take a look at the |x dir=reverse| key.
+
+ Existing workarounds will still function properly. Use |\pgfplotsset{compat=1.3}| or higher together with |x dir=reverse| to switch to the new version.
+\end{enumerate}
+
+\subsubsection{Old Features Which May Need Attention}
+\begin{enumerate}
+ \item The |scatter/classes| feature produces proper legends as of version 1.3. This may change the appearance of existing legends of plots with |scatter/classes|.
+
+ \item Starting with \PGFPlots\ $1.1$, |\tikzstyle| should \emph{no longer be used} to set \PGFPlots\ options.
+
+ Although |\tikzstyle| is still supported for some older \PGFPlots\ options, you should replace any occurance of |\tikzstyle| with |\pgfplotsset{|\meta{style name}|/.style={|\meta{key-value-list}|}}| or the associated |/.append style| variant. See Section~\ref{sec:styles} for more detail.
+\end{enumerate}
+I apologize for any inconvenience caused by these changes.
+
+\begin{pgfplotskey}{compat=\mchoice{1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default} (initially default)}
+ The preamble configuration
+\begin{codeexample}[code only]
+\usepackage{pgfplots}
+\pgfplotsset{compat=1.6}
+\end{codeexample}
+ allows to choose between backwards compatibility and most recent features.
+
+ Occasionally, you might want to use different versions in the same document. Then, provide
+\begin{codeexample}[code only]
+\begin{figure}
+ \pgfplotsset{compat=1.4}
+ ...
+ \caption{...}
+\end{figure}
+\end{codeexample}
+ \noindent in order to restrict the compatibility setting to the actual context (in this case, the |figure| environment).
+
+ The the output of your |.log| file to see the suggested value for |compat|.
+
+ Use |\pgfplotsset{compat=default}| to restore the factory settings.
+
+ Although typically unnecessary, it is also possible to activate only selected changes and keep compatibility to older versions in general:
+ \begin{pgfplotskeylist}{%
+ compat/path replacement=\meta{version},%
+ compat/labels=\meta{version},%
+ compat/scaling=\meta{version},%
+ compat/scale mode=\meta{version},%
+ compat/empty line=\meta{version},%
+ compat/plot3graphics=\meta{version},%
+ compat/general=\meta{version}%
+ }
+ Let us assume that we have a document with |\pgfplotsset{compat=1.3}| and you want to keep it this way.
+
+ In addition, you realized that version 1.5.1 supports circles and ellipses. Then, use
+\begin{codeexample}[]
+% preamble:
+\pgfplotsset{compat=1.3,compat/path replacement=1.5.1}
+\begin{tikzpicture}
+\begin{axis}[
+ extra x ticks={-2,2},
+ extra y ticks={-2,2},
+ extra tick style={grid=major}]
+ \addplot {x};
+ \draw (axis cs:0,0) circle[radius=2];
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+
+ All of these keys accept the possible values of the |compat| key.
+
+ The |compat/path replacement| key controls how radii of circles and ellipses are interpreted.
+
+ The |compat/labels| key controls how axis labels are aligned: either uses adjacent to ticks or with an absolute offset.
+
+ The |compat/scaling| key controls some bugfixes introduced in version 1.4 and 1.6: they might introduce slight scaling differences in order to improve the accuracy.
+
+ The |compat/plot3graphics| controls new features for |\addplot3 graphics|.
+
+ The |compat/scale mode| allows to enable/disable the warning ``The content of your 3d axis has CHANGED compared to previous versions'' because the |axis equal| and |unit vector ratio| features where broken for all versions before~1.6 and have been fixed in~1.6.
+
+ The |compat/empty line| allows to write empty lines into input files in order to generate a jump. This requires |compat=1.4| or newer. See |empty line| for details.
+
+ The |compat/general| key currently only activates |log origin|.
+
+ The detailed effects can be seen on the beginning of this section.
+ \end{pgfplotskeylist}
+
+ The value \meta{version} can be |default|, |pre 1.3|, |1.3|, |1.4|, |1.5|, |1.5.1|, |1.6|, and |newest|. The value |default| is the same as |pre 1.3| (up to insignificant changes). The use of |newest| is strongly \emph{discouraged}: it might cause changes in your document, depending on the current version of \PGFPlots. Please inspect your |.log| file to see suggestions for the best possible version.
+\end{pgfplotskey}
+
+\subsection{The Team}
+\PGFPlots\ has been written mainly by Christian Feuersänger with many improvements of Pascal Wolkotte and Nick Papior Andersen as a spare time project. We hope it is useful and provides valuable plots.
+
+If you are interested in writing something but don't know how, consider reading the auxiliary manual \href{file:TeX-programming-notes.pdf}{TeX-programming-notes.pdf} which comes with \PGFPlots. It is far from complete, but maybe it is a good starting point (at least for more literature).
+
+\subsection{Acknowledgements}
+I thank God for all hours of enjoyed programming. I thank Pascal Wolkotte and Nick Papior Andersen for their programming efforts and contributions as part of the development team. I thank J\"urnjakob Dugge for his contribution of |hist/density|, matlab scripts for \verbpdfref{\addplot3} |graphics|, excellent user forum help and helpful bug reports. I thank Stefan Tibus, who contributed the |plot shell| feature. I thank Tom Cashman for the contribution of the |reverse legend| feature. Special thanks go to Stefan Pinnow whose tests of \PGFPlots\ lead to numerous quality improvements. Furthermore, I thank Dr.~Schweitzer for many fruitful discussions and Dr.~Meine for his ideas and suggestions. Special thanks go to Markus B\"ohning for proof-reading all the manuals of \PGF, \PGFPlots, and \PGFPlotstable. Thanks as well to the many international contributors who provided feature requests or identified bugs or simply improvements of the manual!
+
+Last but not least, I thank Till Tantau and Mark Wibrow for their excellent graphics (and more) package \PGF\ and \Tikz, which is the base of \PGFPlots.
+
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.2dplots.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.2dplots.tex
index a35ef1b049f..16162db494a 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.2dplots.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.2dplots.tex
@@ -176,7 +176,7 @@ coordinates
Here |xbar| yields |/pgfplots/xbar| because it is an argument to the axis, not to a single plot.
For bar plots, it is quite common to provide textual coordinates or even descriptive nodes near the bars.
- This can be realized using the |symbolix y coords| and |nodes near coords| keys, respectively:
+ This can be implemented using the keys |symbolic y coords| and |nodes near coords|, respectively:
\begin{codeexample}[]
\begin{tikzpicture}
\begin{axis}[
@@ -385,12 +385,46 @@ Here, |ybar| yields |/pgfplots/ybar| because it is an argument to the axis, not
\end{pgfplotskey}
-\begin{key}{/pgf/bar width=\marg{dimension} (initially 10pt)}
+\begin{key}{/pgf/bar width=\marg{dimension or unit} (initially 10pt)}
Configures the width used by |xbar| and |ybar|. It is accepted to provide mathematical expressions.
+
+ As of \PGFPlots\ 1.7, it is allows to provide an \emph{unit} as |bar width|. In this case, the |bar width| will be interpreted as axis unit:
+\begin{codeexample}[]
+\begin{tikzpicture}
+\begin{axis}[
+ xbar=0pt,% space of 0pt between adjacent bars
+ bar width=2,
+ width=7cm,
+ height=12cm,
+ minor y tick num=4,
+ ytick=data,
+ enlargelimits=0.15]
+\addplot
+coordinates
+ {(10,5) (15,10) (5,15) (24,20) (30,25)};
+\addplot
+coordinates
+ {(3,5) (5,10) (15,15) (20,20) (35,25)};
+\end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ In order to interprete arguments as units, you have to write |\pgfplotsset{compat=1.7}| (or newer) into your preamble. Older versions will implicitly append the |pt| suffix if the argument is no dimension.
+
+ \begin{command}{\pgfplotbarwidth}
+ A mathematical expression which results in the fully computed value of |bar width| (i.e.\ it includes any unit computations).
+ \end{command}
+
+ Note that you may need to |enlargelimits| in order to see the complete bar -- \PGFPlots\ will not automatically update the axis limits to respect |bar width|.
\end{key}
-\begin{key}{/pgf/bar shift=\marg{dimension} (initially 0pt)}
+\begin{key}{/pgf/bar shift=\marg{dimension or unit} (initially 0pt)}
Configures a shift for |xbar| and |ybar|. Use |bar shift| together with |bar width| to draw multiple bar plots into the same axis. It is accepted to provide mathematical expressions.
+
+ As of \PGFPlots\ 1.7, it is allows to provide an \emph{unit} as |bar shift|. In this case, the |bar shift| will be interpreted as axis unit.
+ \begin{command}{\pgfplotbarshift}
+ A mathematical expression which results in the fully computed value of |bar shift| (i.e.\ it includes any unit computations).
+ \end{command}
+ Note that you may need to |enlargelimits| in order to see the complete bar -- \PGFPlots\ will not automatically update the axis limits to respect |bar shift|.
\end{key}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.3dplots.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.3dplots.tex
index b1a41674b22..b06207ff078 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.3dplots.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.3dplots.tex
@@ -903,6 +903,8 @@ As mentioned, you can use any of the \PGFPlots\ input methods as long as it yiel
All this invocation of |gnuplot|, including input/output file management is transparent to the user. It only requires two things: first of all, it requires matrix data as input\footnote{Note that \texttt{contour gnuplot} processes the input stream only once. Consequently, the temporary file will contain only information which was available before the first point has been seen. The example above works because it contains |empty line|s as end-of-scanline markers. If you do not provide such markers, you may need to provide two of the three options \texttt{mesh/rows}, \texttt{mesh/cols}, or \texttt{mesh/num points}.}. Second, it requires you to enable system calls. Consider the documentation for \verbpdfref{plot gnuplot} for how to enable system calls.
+ Note that the $z$ coordinate of the data which is communicated to |gnuplot| is the current value of |point meta|. This allows to generate contours on two columns only and has more freedom. See also the |contour external/output point meta| key.
+
There are several fine-tuning parameters of the input/output file management, and it is even possible to invoke different programs than |gnuplot| (even |matlab|). These details are discussed at the end of this section, see below at page~\pageref{key:pgfplots:contour:gnuplot}.
\end{plottype}
@@ -1198,6 +1200,18 @@ save 'exporteddata.dat' data -ASCII
A template to generate system calls for the external program. Inside of \meta{system call}, you may use |\script| as placeholder for the filename which contains the result of |contour external/script|.
\end{pgfplotskey}
+ \begin{pgfplotskey}{contour external/output point meta=\marg{point meta read from result of external tool} (initially empty)}
+ Allows to customize the |point meta| configuration which is applied to the result of the external tool.
+
+ In |contour external|, the value of |point meta| is used to generate the \emph{input} $z$ coordinate for the external tool.
+
+ As soon as the external tool computed contour lines, its output is read and interpreted as contour lines -- and the value of |output point meta| determines the value of |point meta| which will be used to visualize the result.
+
+ An empty value means to use the $z$ coordinate returned by the external tool.
+
+ Any other value is interpreted as a valid choice of |point meta|.
+ \end{pgfplotskey}
+
\begin{stylekey}{/pgfplots/contour gnuplot}
\label{key:pgfplots:contour:gnuplot}
The initial configuration is
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.axis-addplot.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.axis-addplot.tex
index b4a4a6f5296..f6471e13210 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.axis-addplot.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.axis-addplot.tex
@@ -1473,10 +1473,12 @@ Consider the following list of you encounter problems while working with \verbpd
\item The image should have a ``right--handed--coordinate system'': you should be able to take your right hand, point your thumb in direction of the $x$ axis, your first finger in direction of~$y$, and your second finger in direction of the $z$~axis. If that is impossible, once of your axes is reversed and you need to communicate that to \PGFPlots\ explicitly by means of the |x dir=reverse| key (and its variants).
\item There is a |debug| key to investigate what the algorithm is doing:
-\begin{pgfplotskey}{plot graphics/debug=\marg{true,false} (initially false)}
+\begin{pgfplotskey}{plot graphics/debug=\mchoice{true,false,visual} (initially false)}
If you provide |\addplot3 graphics[debug,points={...}]|, \PGFPlots\ will provide debug information onto your terminal and into the logfile. It will also generate extra files containing the determined unit vectors and the linear system used to derive them (one such file for every |\addplot3 graphics| statement, the filename will be the graphics file name and |.dat| appended).
Without the |debug| key, only the log file will contain brief information what \PGFPlots\ is doing behind the scenes.
+
+ The choice \declaretext{true} activates log messages. The choice \declaretext{visual} activates log messages \emph{and} places some filled circles at the provided |points|. The choice \declaretext{false} disables all |debug| features.
\end{pgfplotskey}
\end{itemize}
}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.markers-meta.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.markers-meta.tex
index a587e61b55f..c2c4ecc4048 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.markers-meta.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.markers-meta.tex
@@ -1307,11 +1307,17 @@ In this case, the \emph{last} entry also needs a terminating `|\\|', but one can
\subsection{Providing Color Data - Point Meta}
\label{pgfplots:point:meta}
-\PGFPlots\ provides features which modify plots depending on a special coordinate, the ``point meta data''. For example, scatter plots may vary marker colors, size or appearance depending on this special data. Surface and mesh plots are another example: here, the color of a surface patch (or mesh part) depends on ``point meta''.
+\PGFPlots\ provides features which modify plots depending on a special coordinate, the ``point meta data''. For example, scatter plots may vary marker colors, size or appearance depending on this special data. Surface and mesh plots are another example: here, the color of a surface patch (or mesh part) depends on ``point meta''. The ``meta data'' of a node is not the position (which is given as $(x,y)$ or $(x,y,z)$). It is ``some information'' about that node; you could say: it is a specific property of the node. This is commonly called ``meta data''.
-The common idea idea is to tell \PGFPlots\ how to get this data. It is not necessary to provide data explicitly -- in many cases, the data which is used to color surface patches or marker colors is the plot's $y$ or $z$ coordinate. The method used to tell \PGFPlots\ where to find ``point meta data'' is the |point meta| key.
+In \PGFPlots, every node has its coordinate \emph{and} its meta data. Thus, two--dimensional plots have three values: $x$, $y$, and the |point meta| data. Three--dimensional plots have four values for each coordinate: $x$, $y$, $z$, and the |point meta|.
-A further common idea is the use of color maps: if the point meta data is in the interval $[m_{\text{min}},m_{\text{max}}]$, the point meta coordinate $m = m_{\text{min}}$ will get the lowest color provided by the color map while $m=m_{\text{max}}$ will get the highest color provided by the color map. Any coordinate between this values will be mapped linearly: for example, the mean $m = 1/2 (m_{\text{max}} + m_{\text{min}})$ will get the middle color of the color map. This is why ``point meta'' is sometimes called ``color data''.
+In many cases, |point meta| is interpreted to be color data. To be more precise: it is interpreted to be \emph{scalar} color data which is mapped into the |colormap| (more about this approach in the next paragraphs). However, |point meta| can be anything. Often, it is a single number as in the case of color data. That number is mapped linearly to the interval $[0,1000]$ such that $0$ corresponds to the smallest encountered value and $1000$ corresponds to the largest encountered scalar value. The mapped value is available as |\pgfplotspointmetatransformed|. This special value allows to define some property of the plot: it can be the color (together with |colormap|). It can also be the |line width| in a |mesh| plot (more precisely: the |line width| could be defined to depend on the transformed meta data). The value can also be used to define |mark size|. However, |point meta| data does not necessarily need to be a number. It can be a text label (any text that you like). This is used by |nodes near coords|, for example. It could also contain a tuple like RGB color information (which is not commonly used, however). Thus, |point meta| is really some abstract information about individual coordinates.
+
+Note that there is only \emph{one} |point meta| per point. See the key |visualization depends on| if you need more than one meta data value per coordinate.
+
+The common idea idea is to tell \PGFPlots\ how to get the meta data. It is not necessary to provide data explicitly -- in many cases, the data which is used to color surface patches or marker colors is the plot's $y$ or $z$ coordinate. The method used to tell \PGFPlots\ where to find ``point meta data'' is the |point meta| key.
+
+The most common use-case of |point meta| is color information: if the point meta data is in the interval $[m_{\text{min}},m_{\text{max}}]$, the point meta coordinate $m = m_{\text{min}}$ will get the lowest color provided by the color map while $m=m_{\text{max}}$ will get the highest color provided by the color map. As already mentioned, this is accomplished using |\pgfplotspointmetatransformed| $\in [0,1000]$ (per convention). Any coordinate between the smallest and largest values will be mapped linearly: for example, the mean $m = 1/2 (m_{\text{max}} + m_{\text{min}})$ will get the middle color of the color map (it will have |\pgfplotspointmetatransformed| $=500$). This is why ``point meta'' is sometimes called ``color data'' in this manual.
\begin{codeexample}[]
\begin{tikzpicture}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.specifyrange.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.specifyrange.tex
index b6da2d73a6d..a5013fd13b0 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.specifyrange.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.specifyrange.tex
@@ -124,48 +124,43 @@ Enlarges the axis size for one axis (or all of them for |enlargelimits|) somewha
You can set |xmin|, |xmax| and |ymin|, |ymax| to the minimum/maximum values of your data and |enlarge x limits| will enlarge the canvas such that the axis doesn't touch the plots.
-\begin{itemize}
- \item The value \declaretext{true} enlarges the lower and upper limit.
- \item The value \declaretext{false} uses tight axis limits as specified by the user (or read from input coordinates).
- \item The value \declaretext{auto} will enlarge limits only for axis for which axis limits have been determined automatically.
+ The value \declaretext{true} enlarges the lower and upper limit.
- For three--dimensional figures, the \declaretext{auto} mechanism applies only for the $z$ axis. The $x$ and $y$ axis won't be enlarged.
- \item The value \declaretext{upper} enlarges only the upper axis limit while \declaretext{lower} enlarges only the lower axis limit.
- \item Values like `|enlarge x limits=0.1|' will enlarge lower and upper axis limit relatively (in this example, $10\%$ of the axis limits will be added on both sides).
- \item It is also possible to change just the relative threshold using the \declaretext{value=}\marg{val} key. It can be combined with any of the other possible values. For example,
-
- |\pgfplotsset{enlarge x limits={value=0.2,upper}}|
-
- will enlarge (only) the upper axis limit by $20\%$ of the axis range. Another example is
-
- |\pgfplotsset{enlarge x limits={value=0.2,auto}}|
-
- which changes the default threshold of the \declaretext{auto} value to $20\%$.
- \item While |value| uses relative thresholds, \declaretext{abs value} is used in the same way with absolute values.
+ The value \declaretext{false} uses tight axis limits as specified by the user (or read from input coordinates).
- \paragraph{Attention:} |abs value| is applied \emph{multiplicative} for logarithmic axes! That means |abs value=10| for a logarithmic axis adds $\log 10$ to upper and/or lower axis limits.
-
- \item Finally, \declaretext{abs=}\marg{value} is the same as |true,abs value=|\marg{value} and \declaretext{rel=}\marg{value} is the same as |true,value=|\marg{value}.
-\end{itemize}
+ The value \declaretext{auto} will enlarge limits only for axis for which axis limits have been determined automatically.
+ For three--dimensional figures, the \declaretext{auto} mechanism applies only for the $z$ axis. The $x$ and $y$ axis won't be enlarged.
\begin{codeexample}[]
\begin{tikzpicture}
- \begin{axis}
+ \begin{axis}[small]
\addplot {5 * x^3 - x^2 + 4*x -2};
\end{axis}
\end{tikzpicture}
\end{codeexample}
+
+ Specifying a number \declaretext{val}ue like `|enlarge x limits=0.2|' will enlarge lower and upper axis limit relatively. The following example adds $20\%$ of the axis limits on both sides:
\begin{codeexample}[]
\begin{tikzpicture}
- \begin{axis}[enlarge x limits=0.2]
+ \begin{axis}[small,enlarge x limits=0.2]
\addplot {5 * x^3 - x^2 + 4*x -2};
\end{axis}
\end{tikzpicture}
\end{codeexample}
+ \noindent The choice \declaretext{rel=}\marg{value} is the same as |true,value=|\marg{value}, i.e.\ it activates relative enlargement for both |upper| and |lower| limit.
+
+ The value \declaretext{upper} enlarges only the upper axis limit while \declaretext{lower} enlarges only the lower axis limit. In this case, the amount added to the respective limit can be specified using the \declaretext{value=}\marg{val} key. It can be combined with any of the other possible values. For example,
+
+ |\pgfplotsset{enlarge x limits={value=0.2,upper}}|
+
+ will enlarge (only) the upper axis limit by $20\%$ of the axis range. Another example is
+ |\pgfplotsset{enlarge x limits={value=0.2,auto}}|
+
+ which changes the default threshold of the \declaretext{auto} value to $20\%$.
\begin{codeexample}[]
\begin{tikzpicture}
- \begin{axis}[minor x tick num=4,
+ \begin{axis}[small,minor x tick num=1,
enlarge x limits={rel=0.5,upper}
]
\addplot {5 * x^3 - x^2 + 4*x -2};
@@ -173,27 +168,55 @@ You can set |xmin|, |xmax| and |ymin|, |ymax| to the minimum/maximum values of y
\end{tikzpicture}
\end{codeexample}
+
+ While |value| uses relative thresholds, \declaretext{abs value} accepts absolute values: it adds an absolute value to the selected axis. The choice \declaretext{abs=}\marg{value} is the same as |true,abs value=|\marg{value}, i.e.\ it adds an absolute value to both |upper| and |lower| limit:
\begin{codeexample}[]
\begin{tikzpicture}
- \begin{axis}[minor x tick num=4,
+ \begin{axis}[small,minor x tick num=1,
enlarge x limits={abs=3}
]
\addplot {5 * x^3 - x^2 + 4*x -2};
\end{axis}
\end{tikzpicture}
\end{codeexample}
+ \noindent Here, we enlarged by $3$ units of the $x$ axis. Note that you can also specify \emph{dimensions} like |1cm|:
+\begin{codeexample}[]
+\begin{tikzpicture}
+ \begin{axis}[small,minor x tick num=1,
+ enlarge x limits={abs=1cm}
+ ]
+ \addplot {5 * x^3 - x^2 + 4*x -2}
+ coordinate[pos=0] (first)
+ coordinate[pos=1] (last);
+
+ \draw[red,->] (first) -- ++(-1cm,0pt);
+ \draw[red,->] (last) -- ++(1cm,0pt);
+ \end{axis}
+\end{tikzpicture}
+\end{codeexample}
+ \noindent Technically, the use of absolute dimensions is a little bit different. For example, it allows to enlarge by more than |width| which is impossible for all other choices. \PGFPlots\ will try to fulfill both the provided |width|/|height| and the absolute axis enlargements. If it fails to do so, it will give up on |width|/|height| constraints and print a warning message to your log file. See also the key |enlargelimits respects figure size|.\index{Errors!enlargelimits respects figure size=true: could not respect the prescribed width/height}
+ \paragraph{Attention:} |abs value| is applied \emph{multiplicatively} for logarithmic axes! That means |abs value=10| for a logarithmic axis adds $\log 10$ to upper and/or lower axis limits.
\begin{codeexample}[]
\begin{tikzpicture}
- \begin{loglogaxis}[enlarge x limits={abs=11}]
+ \begin{loglogaxis}[small,enlarge x limits={abs=11}]
\addplot+[domain=1:100000] {x^-2};
\end{loglogaxis}
\end{tikzpicture}
\end{codeexample}
- Note that |enlargelimits| is applied before any changes to axis limits are considered as part of |scale mode|: |enlargelimits| will always be applied. Afterwards, the choice |scale mode=scale uniformly| will enlarge limits once more in order to satisfy all scaling constraints. The two limit enlargements are independent of each other, i.e.\ even if you say |enlargelimits=false|, |scale mode| will still increase axis limits if this seems to be necessary. See |scale mode| (especially |scale mode=units only|) and |unit rescale keep size| for detail on how to disable limit enlargement caused by |scale mode|.
+
+ Note that |enlargelimits| is applied before any changes to axis limits are considered as part of |scale mode|: |enlargelimits| will always be applied. Afterwards, the choice |scale mode=scale uniformly| will enlarge limits once more in order to satisfy all scaling constraints. The two limit enlargements are independent of each other, i.e.\ even if you say |enlargelimits=false|, |scale mode| will still increase axis limits if this seems to be necessary. An exception for this rule is enlarge-by-dimension, i.e.\ something like |abs=1cm| (see |enlargelimits respects figure size| for this case).
+ See |scale mode| (especially |scale mode=units only|) and |unit rescale keep size| for detail on how to disable limit enlargement caused by |scale mode|.
\end{pgfplotsxykeylist}
+\begin{pgfplotskey}{enlargelimits respects figure size=\mchoice{true,false} (initially true)}
+ A key which is \emph{only} used for something like |enlarge x limits={abs=1cm}|, i.e.\ for enlarge-by-dimension. It controls if \PGFPlots\ will try to respect |width|/|height|. You should probably always leave it as its default unless you run into problems.
+
+ If \PGFPlots\ fails to respect the figure size, it will print a warning message of sorts ``enlargelimits respects figure size=true: could not respect the prescribed width/height'' to your log file\index{Errors!enlargelimits respects figure size=true: could not respect the prescribed width/height}.
+
+\end{pgfplotskey}
+
\begin{pgfplotsxykeylist}{%
log origin \x=\mchoice{0,infty} (initially infty),%
log origin=\mchoice{0,infty} (initially infty)}%
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.tickoptions.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.tickoptions.tex
index 00cd439a0c0..e4c82f1807e 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.tickoptions.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.reference.tickoptions.tex
@@ -769,11 +769,15 @@ The tick placement algorithm depends on a number of parameters which can be tune
\end{pgfplotskey}
\begin{pgfplotskeylist}{tickwidth=\marg{dimension} (initially 0.15cm),major tick length=\marg{dimension} (initially 0.15cm)}
- Sets the length of major tick lines.
+ Sets the length of major tick lines.
+
+ It can be accessed using |\pgfkeysvalueof{/pgfplots/major tick length}|.
\end{pgfplotskeylist}
\begin{pgfplotskeylist}{subtickwidth=\marg{dimension} (initially 0.1cm),minor tick length=\marg{dimension} (initially 0.1cm)}
Sets the length of minor tick lines.
+
+ It can be accessed using |\pgfkeysvalueof{/pgfplots/minor tick length}|.
\end{pgfplotskeylist}
\begin{pgfplotsxykeylist}{\x tick placement tolerance (initially 0.05pt)}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.tex
index c010a3c790c..11adc2855a6 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.tex
@@ -50,7 +50,7 @@
tabsize=4,
}
-\pgfplotsmanualexternalexpensivetrue
+\pgfplotsmanualenableexternalizationofexpensive
%\usetikzlibrary{external}
%\tikzexternalize[prefix=figures/]{pgfplots}
@@ -62,7 +62,7 @@
%\\{\small Attention: you are using an unstable development version.}
}
-%\includeonly{pgfplots.reference,pgfplots.basic.reference}
+%\includeonly{pgfplots.intro}
\begin{document}
@@ -99,172 +99,10 @@
(1496065,4.670e-05)
};
}%
-\maketitle
-\begin{abstract}%
-\PGFPlots\ draws high--quality function plots in normal or logarithmic scaling with a user-friendly interface directly in \TeX. The user supplies axis labels, legend entries and the plot coordinates for one or more plots and \PGFPlots\ applies axis scaling, computes any logarithms and axis ticks and draws the plots. It supports line plots, scatter plots, piecewise constant plots, bar plots, area plots, mesh-- and surface plots, patch plots, contour plots, quiver plots, histogram plots, polar axes, ternary diagrams, smith charts and some more. It is based on Till Tantau's package \PGF/\Tikz.
-\end{abstract}
-\tableofcontents
-\section{Introduction}
-This package provides tools to generate plots and labeled axes easily. It draws normal plots, logplots and semi-logplots, in two and three dimensions. Axis ticks, labels, legends (in case of multiple plots) can be added with key-value options. It can cycle through a set of predefined line/marker/color specifications. In summary, its purpose is to simplify the generation of high-quality function and/or data plots, and solving the problems of
-\begin{itemize}
- \item consistency of document and font type and font size,
- \item direct use of \TeX\ math mode in axis descriptions,
- \item consistency of data and figures (no third party tool necessary),
- \item inter-document consistency using preamble configurations and styles.
-\end{itemize}
-Although not necessary, separate |.pdf| or |.eps| graphics can be generated using the |external| library developed as part of \Tikz.
-You are invited to use \PGFPlots\ for visualization of medium sized data sets in two and three dimensions.
-
-
-\section[About PGFPlots: Preliminaries]{About {\normalfont\PGFPlots}: Preliminaries}
-This section contains information about upgrades, the team, the installation (in case you need to do it manually) and troubleshooting. You may skip it completely except for the upgrade remarks.
-
-\PGFPlots\ is built completely on \Tikz/\PGF. Knowledge of \Tikz\ will simplify the work with \PGFPlots, although it is not required.
-
-However, note that this library requires at least \PGF\ version $2.10$. At the time of this writing, many \TeX-distributions still contain the older \PGF\ version $1.18$, so it may be necessary to install a recent \PGF\ prior to using \PGFPlots.
-
-\subsection{Components}
-\PGFPlots\ comes with two components:
-\begin{enumerate}
- \item the plotting component (which you are currently reading) and
- \item the \PGFPlotstable\ component which simplifies number formatting and postprocessing of numerical tables. It comes as a separate package and has its own manual \href{file:pgfplotstable.pdf}{pgfplotstable.pdf}.
-\end{enumerate}
-
-\subsection{Upgrade remarks}
-This release provides a lot of improvements which can be found in all detail in \texttt{ChangeLog} for interested readers. However, some attention is useful with respect to the following changes.
-
-\subsubsection{New Optional Features}
-\PGFPlots\ has been written with backwards compatibility in mind: old \TeX\ files should compile without modifications and without changes in the appearance. However, new features occasionally lead to a different behavior. In such a case, \PGFPlots\ will deactivate the new feature\footnote{In case of broken backwards compatibility, we apologize -- and ask you to submit a bug report. We will take care of it.}.
-
-Any new features or bugfixes which cause backwards compatibility problems need to be activated \emph{manually} and \emph{explicitly}. In order to do so, you should use
-\begin{codeexample}[code only]
-\usepackage{pgfplots}
-\pgfplotsset{compat=1.6}
-\end{codeexample}
-\noindent in your preamble. This will configure the compatibility layer.
-
-You should have at least |compat=1.3|. The suggested value is printed to the |.log| file after running \TeX.
-
-Here is a list of changes introduced in recent versions of \PGFPlots:
-\begin{enumerate}
- \item \PGFPlots\ 1.6 added new options for more accurate scaling and more scaling options for |\addplot3 graphics|. These are enabled with |compat=1.6| or higher.
-
- \item \PGFPlots\ 1.5.1 interpretes circle- and ellipse radii as \PGFPlots\ coordinates (older versions used \pgfname\ unit vectors which have no direct relation to \PGFPlots). In other words: starting with version 1.5.1, it is possible to write |\draw circle[radius=5]| inside of an axis. This requires |\pgfplotsset{compat=1.5.1}| or higher.
-
- Without this compatibility setting, circles and ellipses use low--level canvas units of \pgfname\ as in earlier versions.
-
- \item \PGFPlots\ 1.5 uses |log origin=0| as default (which influences logarithmic bar plots or stacked logarithmic plots). Older versions keep |log origin=infty|. This requires |\pgfplotsset{compat=1.5}| or higher.
-
- \item \PGFPlots\ 1.4 has fixed several smaller bugs which might produce differences of about $1$--$2\text{pt}$ compared to earlier releases. This requires |\pgfplotsset{compat=1.4}| or higher.
-
- \item \PGFPlots\ 1.3 comes with user interface improvements. The technical distinction between ``behavior options'' and ``style options'' of older versions is no longer necessary (although still fully supported).
-
- This is always activated.
-
- \item \PGFPlots\ 1.3 has a new feature which allows to \emph{move axis labels tight to tick labels} automatically. This is strongly recommended. It requires |\pgfplotsset{compat=1.3}| or higher.
-
- Since this affects the spacing, it is not enabled be default.
-
- \item \PGFPlots\ 1.3 supports reversed axes. It is no longer necessary to use workarounds with negative units.
-\pgfkeys{/pdflinks/search key prefixes in/.add={/pgfplots/,}{}}
-
- Take a look at the |x dir=reverse| key.
-
- Existing workarounds will still function properly. Use |\pgfplotsset{compat=1.3}| or higher together with |x dir=reverse| to switch to the new version.
-\end{enumerate}
-
-\subsubsection{Old Features Which May Need Attention}
-\begin{enumerate}
- \item The |scatter/classes| feature produces proper legends as of version 1.3. This may change the appearance of existing legends of plots with |scatter/classes|.
-
- \item Starting with \PGFPlots\ $1.1$, |\tikzstyle| should \emph{no longer be used} to set \PGFPlots\ options.
-
- Although |\tikzstyle| is still supported for some older \PGFPlots\ options, you should replace any occurance of |\tikzstyle| with |\pgfplotsset{|\meta{style name}|/.style={|\meta{key-value-list}|}}| or the associated |/.append style| variant. See Section~\ref{sec:styles} for more detail.
-\end{enumerate}
-I apologize for any inconvenience caused by these changes.
-
-\begin{pgfplotskey}{compat=\mchoice{1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default} (initially default)}
- The preamble configuration
-\begin{codeexample}[code only]
-\usepackage{pgfplots}
-\pgfplotsset{compat=1.6}
-\end{codeexample}
- allows to choose between backwards compatibility and most recent features.
-
- Occasionally, you might want to use different versions in the same document. Then, provide
-\begin{codeexample}[code only]
-\begin{figure}
- \pgfplotsset{compat=1.4}
- ...
- \caption{...}
-\end{figure}
-\end{codeexample}
- \noindent in order to restrict the compatibility setting to the actual context (in this case, the |figure| environment).
-
- The the output of your |.log| file to see the suggested value for |compat|.
-
- Use |\pgfplotsset{compat=default}| to restore the factory settings.
-
- Although typically unnecessary, it is also possible to activate only selected changes and keep compatibility to older versions in general:
- \begin{pgfplotskeylist}{%
- compat/path replacement=\meta{version},%
- compat/labels=\meta{version},%
- compat/scaling=\meta{version},%
- compat/scale mode=\meta{version},%
- compat/empty line=\meta{version},%
- compat/plot3graphics=\meta{version},%
- compat/general=\meta{version}%
- }
- Let us assume that we have a document with |\pgfplotsset{compat=1.3}| and you want to keep it this way.
-
- In addition, you realized that version 1.5.1 supports circles and ellipses. Then, use
-\begin{codeexample}[]
-% preamble:
-\pgfplotsset{compat=1.3,compat/path replacement=1.5.1}
-\begin{tikzpicture}
-\begin{axis}[
- extra x ticks={-2,2},
- extra y ticks={-2,2},
- extra tick style={grid=major}]
- \addplot {x};
- \draw (axis cs:0,0) circle[radius=2];
-\end{axis}
-\end{tikzpicture}
-\end{codeexample}
-
- All of these keys accept the possible values of the |compat| key.
-
- The |compat/path replacement| key controls how radii of circles and ellipses are interpreted.
-
- The |compat/labels| key controls how axis labels are aligned: either uses adjacent to ticks or with an absolute offset.
-
- The |compat/scaling| key controls some bugfixes introduced in version 1.4 and 1.6: they might introduce slight scaling differences in order to improve the accuracy.
-
- The |compat/plot3graphics| controls new features for |\addplot3 graphics|.
-
- The |compat/scale mode| allows to enable/disable the warning ``The content of your 3d axis has CHANGED compared to previous versions'' because the |axis equal| and |unit vector ratio| features where broken for all versions before~1.6 and have been fixed in~1.6.
-
- The |compat/empty line| allows to write empty lines into input files in order to generate a jump. This requires |compat=1.4| or newer. See |empty line| for details.
-
- The |compat/general| key currently only activates |log origin|.
-
- The detailed effects can be seen on the beginning of this section.
- \end{pgfplotskeylist}
-
- The value \meta{version} can be |default|, |pre 1.3|, |1.3|, |1.4|, |1.5|, |1.5.1|, |1.6|, and |newest|. The value |default| is the same as |pre 1.3| (up to insignificant changes). The use of |newest| is strongly \emph{discouraged}: it might cause changes in your document, depending on the current version of \PGFPlots. Please inspect your |.log| file to see suggestions for the best possible version.
-\end{pgfplotskey}
-
-\subsection{The Team}
-\PGFPlots\ has been written mainly by Christian Feuersänger with many improvements of Pascal Wolkotte and Nick Papior Andersen as a spare time project. We hope it is useful and provides valuable plots.
-
-If you are interested in writing something but don't know how, consider reading the auxiliary manual \href{file:TeX-programming-notes.pdf}{TeX-programming-notes.pdf} which comes with \PGFPlots. It is far from complete, but maybe it is a good starting point (at least for more literature).
-
-\subsection{Acknowledgements}
-I thank God for all hours of enjoyed programming. I thank Pascal Wolkotte and Nick Papior Andersen for their programming efforts and contributions as part of the development team. I thank J\"urnjakob Dugge for his contribution of |hist/density|, matlab scripts for \verbpdfref{\addplot3} |graphics|, excellent user forum help and helpful bug reports. I thank Stefan Tibus, who contributed the |plot shell| feature. I thank Tom Cashman for the contribution of the |reverse legend| feature. Special thanks go to Stefan Pinnow whose tests of \PGFPlots\ lead to numerous quality improvements. Furthermore, I thank Dr.~Schweitzer for many fruitful discussions and Dr.~Meine for his ideas and suggestions. Special thanks go to Markus B\"ohning for proof-reading all the manuals of \PGF, \PGFPlots, and \PGFPlotstable. Thanks as well to the many international contributors who provided feature requests or identified bugs or simply improvements of the manual!
-
-Last but not least, I thank Till Tantau and Mark Wibrow for their excellent graphics (and more) package \PGF\ and \Tikz, which is the base of \PGFPlots.
+\include{pgfplots.title_abstract_intro}
+\include{pgfplots.preliminaries}%
\include{pgfplots.install}%
\include{pgfplots.intro}%
\include{pgfplots.reference}%
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.title_abstract_intro.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.title_abstract_intro.tex
new file mode 100644
index 00000000000..d51a79fa581
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.title_abstract_intro.tex
@@ -0,0 +1,17 @@
+\maketitle
+\begin{abstract}%
+\PGFPlots\ draws high--quality function plots in normal or logarithmic scaling with a user-friendly interface directly in \TeX. The user supplies axis labels, legend entries and the plot coordinates for one or more plots and \PGFPlots\ applies axis scaling, computes any logarithms and axis ticks and draws the plots. It supports line plots, scatter plots, piecewise constant plots, bar plots, area plots, mesh-- and surface plots, patch plots, contour plots, quiver plots, histogram plots, polar axes, ternary diagrams, smith charts and some more. It is based on Till Tantau's package \PGF/\Tikz.
+\end{abstract}
+\tableofcontents
+\section{Introduction}
+This package provides tools to generate plots and labeled axes easily. It draws normal plots, logplots and semi-logplots, in two and three dimensions. Axis ticks, labels, legends (in case of multiple plots) can be added with key-value options. It can cycle through a set of predefined line/marker/color specifications. In summary, its purpose is to simplify the generation of high-quality function and/or data plots, and solving the problems of
+\begin{itemize}
+ \item consistency of document and font type and font size,
+ \item direct use of \TeX\ math mode in axis descriptions,
+ \item consistency of data and figures (no third party tool necessary),
+ \item inter-document consistency using preamble configurations and styles.
+\end{itemize}
+Although not necessary, separate |.pdf| or |.eps| graphics can be generated using the |external| library developed as part of \Tikz.
+
+You are invited to use \PGFPlots\ for visualization of medium sized data sets in two and three dimensions.
+
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.pdf b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.pdf
new file mode 100644
index 00000000000..0cc6dc1242e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.tex
new file mode 100644
index 00000000000..9c7914eadad
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage.tex
@@ -0,0 +1,78 @@
+\documentclass[a4paper]{article}
+
+\usepackage{pgfplots}
+
+\pgfplotsset{compat=newest}
+
+\begin{document}
+
+\begin{tikzpicture}
+ \begin{axis}[
+ point meta rel=per plot,
+ filter discard warning=false,
+ ]
+ \addplot3[surf,domain=0:1] {
+ x+y
+ + 0.8*sin(x*360)*x*(1-y)
+ + 0.4*(-sin(x*360)-sin(y*300))*(x+0.1)^2*(y+0.4)^2
+ + exp(-((x-0.2)^2 + (y-0.7)^2)*10)*0.8
+ };
+ \addplot3[red,
+ %--------------------------------------------------
+ % quiver={
+ % u=0,
+ % v=1,
+ % w=1-0.8*sin(1*360) ,
+ % },
+ %--------------------------------------------------
+ variable=\t,
+ domain=0:1,samples y=0]
+ (1.03,t,{
+ 1+t
+ + 0.8*sin(1*360)*1*(1-t)
+ + 0.4*(-sin(1*360)-sin(t*300))*(1+0.1)^2*(t+0.4)^2
+ + exp(-((1-0.2)^2 + (t-0.7)^2)*10)*0.8
+ });
+ %\tracingmacros=2 \tracingcommands=2
+ \addplot3[contour gnuplot={
+ number=9,
+ labels=false,
+ output point meta=rawz, % override the z filter
+ },
+ z filter/.code={%
+ \ifdim##1pt<0.15pt %
+ \def\pgfmathresult{}% skip incomplete contour
+ \else
+ \def\pgfmathresult{3}% fix complete contour plot at a specific level
+ \fi
+ },
+ domain=-0.3:0.6, domain y=-0.2:1.1,
+ colormap/hot,
+ ]
+ {
+ + exp(-((x-0.2)^2 + (y-0.7)^2)*10)*0.8
+ };
+
+ \addplot3[->,blue,domain=4:5*pi,variable=\t,samples=60,samples y=0]
+ ({sin(deg(t))*(1-t/5/pi)*0.3 + 0.2},
+ {cos(deg(t))*(1-t/5/pi)*0.15 + 0.7},
+ {3*t/(5*pi)});
+
+ \addplot3[quiver={
+ % deg'(t) !?
+ u= cos(deg(t)) * (1-t/5/pi)*0.3 - sin(deg(t)) *0.3 /5/pi,
+ v=-sin(deg(t)) * (1-t/5/pi)*0.15- cos(deg(t)) *0.15/5/pi,
+ w=3/5/pi,
+ scale arrows=1.5,
+ },
+ red,
+ -stealth,
+ variable=\t,
+ domain=4:5*pi,samples=5,samples y=0]
+ ({sin(deg(t))*(1-t/5/pi)*0.3 + 0.2},
+ {cos(deg(t))*(1-t/5/pi)*0.15 + 0.7},
+ {3*t/(5*pi)});
+ \end{axis}
+\end{tikzpicture}
+\end{document}
+
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.dat b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.dat
new file mode 100644
index 00000000000..1619a6f06a7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.dat
@@ -0,0 +1,649 @@
+-3.0e-1 -2.0e-1 1.99317627e-5 1.99317627e-5
+-2.625e-1 -2.0e-1 2.85958008e-5 2.85958008e-5
+-2.25e-1 -2.0e-1 3.98880615e-5 3.98880615e-5
+-1.875e-1 -2.0e-1 5.40964233e-5 5.40964233e-5
+-1.5e-1 -2.0e-1 7.13310669e-5 7.13310669e-5
+-1.125e-1 -2.0e-1 9.144519e-5 9.144519e-5
+-7.5e-2 -2.0e-1 1.13985596e-4 1.13985596e-4
+-3.75e-2 -2.0e-1 1.3813855e-4 1.3813855e-4
+0.0e0 -2.0e-1 1.62767578e-4 1.62767578e-4
+3.75e-2 -2.0e-1 1.86469727e-4 1.86469727e-4
+7.5e-2 -2.0e-1 2.07694702e-4 2.07694702e-4
+1.125e-1 -2.0e-1 2.24924316e-4 2.24924316e-4
+1.5e-1 -2.0e-1 2.36825806e-4 2.36825806e-4
+1.875e-1 -2.0e-1 2.4244397e-4 2.4244397e-4
+2.25e-1 -2.0e-1 2.41309082e-4 2.41309082e-4
+2.625e-1 -2.0e-1 2.335177e-4 2.335177e-4
+3.0e-1 -2.0e-1 2.19713623e-4 2.19713623e-4
+3.375e-1 -2.0e-1 2.00991089e-4 2.00991089e-4
+3.75e-1 -2.0e-1 1.78765625e-4 1.78765625e-4
+4.125e-1 -2.0e-1 1.54585205e-4 1.54585205e-4
+4.5e-1 -2.0e-1 1.29971802e-4 1.29971802e-4
+4.875e-1 -2.0e-1 1.06245728e-4 1.06245728e-4
+5.25e-1 -2.0e-1 8.444165e-5 8.444165e-5
+5.625e-1 -2.0e-1 6.52529907e-5 6.52529907e-5
+6.0e-1 -2.0e-1 4.90249634e-5 4.90249634e-5
+
+-3.0e-1 -1.45834e-1 5.13145386e-5 5.13145386e-5
+-2.625e-1 -1.45834e-1 7.36201172e-5 7.36201172e-5
+-2.25e-1 -1.45834e-1 1.02690674e-4 1.02690674e-4
+-1.875e-1 -1.45834e-1 1.39269531e-4 1.39269531e-4
+-1.5e-1 -1.45834e-1 1.83638794e-4 1.83638794e-4
+-1.125e-1 -1.45834e-1 2.35427979e-4 2.35427979e-4
+-7.5e-2 -1.45834e-1 2.93455933e-4 2.93455933e-4
+-3.75e-2 -1.45834e-1 3.5563977e-4 3.5563977e-4
+0.0e0 -1.45834e-1 4.19046265e-4 4.19046265e-4
+3.75e-2 -1.45834e-1 4.80065552e-4 4.80065552e-4
+7.5e-2 -1.45834e-1 5.34713501e-4 5.34713501e-4
+1.125e-1 -1.45834e-1 5.7906604e-4 5.7906604e-4
+1.5e-1 -1.45834e-1 6.09710449e-4 6.09710449e-4
+1.875e-1 -1.45834e-1 6.24169434e-4 6.24169434e-4
+2.25e-1 -1.45834e-1 6.2124878e-4 6.2124878e-4
+2.625e-1 -1.45834e-1 6.01191528e-4 6.01191528e-4
+3.0e-1 -1.45834e-1 5.65654663e-4 5.65654663e-4
+3.375e-1 -1.45834e-1 5.17455566e-4 5.17455566e-4
+3.75e-1 -1.45834e-1 4.6023291e-4 4.6023291e-4
+4.125e-1 -1.45834e-1 3.9798523e-4 3.9798523e-4
+4.5e-1 -1.45834e-1 3.3461145e-4 3.3461145e-4
+4.875e-1 -1.45834e-1 2.73530762e-4 2.73530762e-4
+5.25e-1 -1.45834e-1 2.17396484e-4 2.17396484e-4
+5.625e-1 -1.45834e-1 1.67990967e-4 1.67990967e-4
+6.0e-1 -1.45834e-1 1.26212402e-4 1.26212402e-4
+
+-3.0e-1 -9.1668e-2 1.24576904e-4 1.24576904e-4
+-2.625e-1 -9.1668e-2 1.78728882e-4 1.78728882e-4
+-2.25e-1 -9.1668e-2 2.49307251e-4 2.49307251e-4
+-1.875e-1 -9.1668e-2 3.38111572e-4 3.38111572e-4
+-1.5e-1 -9.1668e-2 4.45830444e-4 4.45830444e-4
+-1.125e-1 -9.1668e-2 5.71570313e-4 5.71570313e-4
+-7.5e-2 -9.1668e-2 7.12440186e-4 7.12440186e-4
+-3.75e-2 -9.1668e-2 8.6339722e-4 8.6339722e-4
+0.0e0 -9.1668e-2 1.01732422e-3 1.01732422e-3
+3.75e-2 -9.1668e-2 1.16546265e-3 1.16546265e-3
+7.5e-2 -9.1668e-2 1.29815063e-3 1.29815063e-3
+1.125e-1 -9.1668e-2 1.40581177e-3 1.40581177e-3
+1.5e-1 -9.1668e-2 1.48020752e-3 1.48020752e-3
+1.875e-1 -9.1668e-2 1.51531006e-3 1.51531006e-3
+2.25e-1 -9.1668e-2 1.50822754e-3 1.50822754e-3
+2.625e-1 -9.1668e-2 1.45953735e-3 1.45953735e-3
+3.0e-1 -9.1668e-2 1.37324585e-3 1.37324585e-3
+3.375e-1 -9.1668e-2 1.2562378e-3 1.2562378e-3
+3.75e-1 -9.1668e-2 1.1173169e-3 1.1173169e-3
+4.125e-1 -9.1668e-2 9.6619751e-4 9.6619751e-4
+4.5e-1 -9.1668e-2 8.1235596e-4 8.1235596e-4
+4.875e-1 -9.1668e-2 6.64069702e-4 6.64069702e-4
+5.25e-1 -9.1668e-2 5.27787354e-4 5.27787354e-4
+5.625e-1 -9.1668e-2 4.07843018e-4 4.07843018e-4
+6.0e-1 -9.1668e-2 3.0641394e-4 3.0641394e-4
+
+-3.0e-1 -3.7501999e-2 2.85214355e-4 2.85214355e-4
+-2.625e-1 -3.7501999e-2 4.09187256e-4 4.09187256e-4
+-2.25e-1 -3.7501999e-2 5.70769775e-4 5.70769775e-4
+-1.875e-1 -3.7501999e-2 7.7408081e-4 7.7408081e-4
+-1.5e-1 -3.7501999e-2 1.02068115e-3 1.02068115e-3
+-1.125e-1 -3.7501999e-2 1.3085498e-3 1.3085498e-3
+-7.5e-2 -3.7501999e-2 1.63105469e-3 1.63105469e-3
+-3.75e-2 -3.7501999e-2 1.97667358e-3 1.97667358e-3
+0.0e0 -3.7501999e-2 2.32908813e-3 2.32908813e-3
+3.75e-2 -3.7501999e-2 2.66824341e-3 2.66824341e-3
+7.5e-2 -3.7501999e-2 2.97202637e-3 2.97202637e-3
+1.125e-1 -3.7501999e-2 3.21850708e-3 3.21850708e-3
+1.5e-1 -3.7501999e-2 3.3887976e-3 3.3887976e-3
+1.875e-1 -3.7501999e-2 3.46916382e-3 3.46916382e-3
+2.25e-1 -3.7501999e-2 3.45297241e-3 3.45297241e-3
+2.625e-1 -3.7501999e-2 3.34154175e-3 3.34154175e-3
+3.0e-1 -3.7501999e-2 3.14396973e-3 3.14396973e-3
+3.375e-1 -3.7501999e-2 2.87604004e-3 2.87604004e-3
+3.75e-1 -3.7501999e-2 2.55800171e-3 2.55800171e-3
+4.125e-1 -3.7501999e-2 2.21206299e-3 2.21206299e-3
+4.5e-1 -3.7501999e-2 1.85982544e-3 1.85982544e-3
+4.875e-1 -3.7501999e-2 1.5203186e-3 1.5203186e-3
+5.25e-1 -3.7501999e-2 1.20830322e-3 1.20830322e-3
+5.625e-1 -3.7501999e-2 9.3369507e-4 9.3369507e-4
+6.0e-1 -3.7501999e-2 7.015177e-4 7.015177e-4
+
+-3.0e-1 1.6664001e-2 6.15755493e-4 6.15755493e-4
+-2.625e-1 1.6664001e-2 8.8339233e-4 8.8339233e-4
+-2.25e-1 1.6664001e-2 1.23223755e-3 1.23223755e-3
+-1.875e-1 1.6664001e-2 1.67116821e-3 1.67116821e-3
+-1.5e-1 1.6664001e-2 2.2036023e-3 2.2036023e-3
+-1.125e-1 1.6664001e-2 2.82506104e-3 2.82506104e-3
+-7.5e-2 1.6664001e-2 3.52134888e-3 3.52134888e-3
+-3.75e-2 1.6664001e-2 4.2675122e-3 4.2675122e-3
+0.0e0 1.6664001e-2 5.02835083e-3 5.02835083e-3
+3.75e-2 1.6664001e-2 5.76057007e-3 5.76057007e-3
+7.5e-2 1.6664001e-2 6.41636108e-3 6.41636108e-3
+1.125e-1 1.6664001e-2 6.94855469e-3 6.94855469e-3
+1.5e-1 1.6664001e-2 7.31623047e-3 7.31623047e-3
+1.875e-1 1.6664001e-2 7.48971436e-3 7.48971436e-3
+2.25e-1 1.6664001e-2 7.45469727e-3 7.45469727e-3
+2.625e-1 1.6664001e-2 7.2141333e-3 7.2141333e-3
+3.0e-1 1.6664001e-2 6.78757935e-3 6.78757935e-3
+3.375e-1 1.6664001e-2 6.20918213e-3 6.20918213e-3
+3.75e-1 1.6664001e-2 5.52255127e-3 5.52255127e-3
+4.125e-1 1.6664001e-2 4.77563843e-3 4.77563843e-3
+4.5e-1 1.6664001e-2 4.01525879e-3 4.01525879e-3
+4.875e-1 1.6664001e-2 3.28224731e-3 3.28224731e-3
+5.25e-1 1.6664001e-2 2.60866211e-3 2.60866211e-3
+5.625e-1 1.6664001e-2 2.01580688e-3 2.01580688e-3
+6.0e-1 1.6664001e-2 1.51449707e-3 1.51449707e-3
+
+-3.0e-1 7.0830002e-2 1.25359619e-3 1.25359619e-3
+-2.625e-1 7.0830002e-2 1.79851196e-3 1.79851196e-3
+-2.25e-1 7.0830002e-2 2.5087268e-3 2.5087268e-3
+-1.875e-1 7.0830002e-2 3.40235718e-3 3.40235718e-3
+-1.5e-1 7.0830002e-2 4.48631226e-3 4.48631226e-3
+-1.125e-1 7.0830002e-2 5.75149292e-3 5.75149292e-3
+-7.5e-2 7.0830002e-2 7.16913452e-3 7.16913452e-3
+-3.75e-2 7.0830002e-2 8.6880615e-3 8.6880615e-3
+0.0e0 7.0830002e-2 1.02370605e-2 1.02370605e-2
+3.75e-2 7.0830002e-2 1.17277344e-2 1.17277344e-2
+7.5e-2 7.0830002e-2 1.30627563e-2 1.30627563e-2
+1.125e-1 7.0830002e-2 1.41463623e-2 1.41463623e-2
+1.5e-1 7.0830002e-2 1.48949829e-2 1.48949829e-2
+1.875e-1 7.0830002e-2 1.524823e-2 1.524823e-2
+2.25e-1 7.0830002e-2 1.51768188e-2 1.51768188e-2
+2.625e-1 7.0830002e-2 1.4686914e-2 1.4686914e-2
+3.0e-1 7.0830002e-2 1.38186157e-2 1.38186157e-2
+3.375e-1 7.0830002e-2 1.26411499e-2 1.26411499e-2
+3.75e-1 7.0830002e-2 1.12432617e-2 1.12432617e-2
+4.125e-1 7.0830002e-2 9.7226929e-3 9.7226929e-3
+4.5e-1 7.0830002e-2 8.1743896e-3 8.1743896e-3
+4.875e-1 7.0830002e-2 6.68233643e-3 6.68233643e-3
+5.25e-1 7.0830002e-2 5.31101318e-3 5.31101318e-3
+5.625e-1 7.0830002e-2 4.10401367e-3 4.10401367e-3
+6.0e-1 7.0830002e-2 3.08337158e-3 3.08337158e-3
+
+-3.0e-1 1.24996002e-1 2.40677368e-3 2.40677368e-3
+-2.625e-1 1.24996002e-1 3.45290405e-3 3.45290405e-3
+-2.25e-1 1.24996002e-1 4.81643066e-3 4.81643066e-3
+-1.875e-1 1.24996002e-1 6.53207031e-3 6.53207031e-3
+-1.5e-1 1.24996002e-1 8.612915e-3 8.612915e-3
+-1.125e-1 1.24996002e-1 1.10421631e-2 1.10421631e-2
+-7.5e-2 1.24996002e-1 1.37635498e-2 1.37635498e-2
+-3.75e-2 1.24996002e-1 1.66800781e-2 1.66800781e-2
+0.0e0 1.24996002e-1 1.96539917e-2 1.96539917e-2
+3.75e-2 1.24996002e-1 2.25158691e-2 2.25158691e-2
+7.5e-2 1.24996002e-1 2.50791992e-2 2.50791992e-2
+1.125e-1 1.24996002e-1 2.71591553e-2 2.71591553e-2
+1.5e-1 1.24996002e-1 2.85963379e-2 2.85963379e-2
+1.875e-1 1.24996002e-1 2.9274646e-2 2.9274646e-2
+2.25e-1 1.24996002e-1 2.91375244e-2 2.91375244e-2
+2.625e-1 1.24996002e-1 2.81972534e-2 2.81972534e-2
+3.0e-1 1.24996002e-1 2.65299805e-2 2.65299805e-2
+3.375e-1 1.24996002e-1 2.42693726e-2 2.42693726e-2
+3.75e-1 1.24996002e-1 2.15855713e-2 2.15855713e-2
+4.125e-1 1.24996002e-1 1.86661743e-2 1.86661743e-2
+4.5e-1 1.24996002e-1 1.56940552e-2 1.56940552e-2
+4.875e-1 1.24996002e-1 1.28290405e-2 1.28290405e-2
+5.25e-1 1.24996002e-1 1.01961914e-2 1.01961914e-2
+5.625e-1 1.24996002e-1 7.87921387e-3 7.87921387e-3
+6.0e-1 1.24996002e-1 5.91971313e-3 5.91971313e-3
+
+-3.0e-1 1.79162e-1 4.35729736e-3 4.35729736e-3
+-2.625e-1 1.79162e-1 6.25128662e-3 6.25128662e-3
+-2.25e-1 1.79162e-1 8.7198242e-3 8.7198242e-3
+-1.875e-1 1.79162e-1 1.18258667e-2 1.18258667e-2
+-1.5e-1 1.79162e-1 1.55933105e-2 1.55933105e-2
+-1.125e-1 1.79162e-1 1.99909546e-2 1.99909546e-2
+-7.5e-2 1.79162e-1 2.49180786e-2 2.49180786e-2
+-3.75e-2 1.79162e-1 3.01985962e-2 3.01985962e-2
+0.0e0 1.79162e-1 3.55828125e-2 3.55828125e-2
+3.75e-2 1.79162e-1 4.07636597e-2 4.07636597e-2
+7.5e-2 1.79162e-1 4.54042358e-2 4.54042358e-2
+1.125e-1 1.79162e-1 4.9170227e-2 4.9170227e-2
+1.5e-1 1.79162e-1 5.1772815e-2 5.1772815e-2
+1.875e-1 1.79162e-1 5.30005981e-2 5.30005981e-2
+2.25e-1 1.79162e-1 5.2752124e-2 5.2752124e-2
+2.625e-1 1.79162e-1 5.10494263e-2 5.10494263e-2
+3.0e-1 1.79162e-1 4.80310913e-2 4.80310913e-2
+3.375e-1 1.79162e-1 4.39389404e-2 4.39389404e-2
+3.75e-1 1.79162e-1 3.90800293e-2 3.90800293e-2
+4.125e-1 1.79162e-1 3.37941162e-2 3.37941162e-2
+4.5e-1 1.79162e-1 2.84130371e-2 2.84130371e-2
+4.875e-1 1.79162e-1 2.3226355e-2 2.3226355e-2
+5.25e-1 1.79162e-1 1.84600464e-2 1.84600464e-2
+5.625e-1 1.79162e-1 1.42647095e-2 1.42647095e-2
+6.0e-1 1.79162e-1 1.07170654e-2 1.07170654e-2
+
+-3.0e-1 2.33328e-1 7.4391565e-3 7.4391565e-3
+-2.625e-1 2.33328e-1 1.06725952e-2 1.06725952e-2
+-2.25e-1 2.33328e-1 1.48869873e-2 1.48869873e-2
+-1.875e-1 2.33328e-1 2.01897339e-2 2.01897339e-2
+-1.5e-1 2.33328e-1 2.66223755e-2 2.66223755e-2
+-1.125e-1 2.33328e-1 3.41305542e-2 3.41305542e-2
+-7.5e-2 2.33328e-1 4.25423096e-2 4.25423096e-2
+-3.75e-2 2.33328e-1 5.15568481e-2 5.15568481e-2
+0.0e0 2.33328e-1 6.07488281e-2 6.07488281e-2
+3.75e-2 2.33328e-1 6.95949829e-2 6.95949829e-2
+7.5e-2 2.33328e-1 7.7517981e-2 7.7517981e-2
+1.125e-1 2.33328e-1 8.3936035e-2 8.3936035e-2
+1.5e-1 2.33328e-1 8.8328003e-2 8.8328003e-2
+1.875e-1 2.33328e-1 9.0488037e-2 9.0488037e-2
+2.25e-1 2.33328e-1 9.0015991e-2 9.0015991e-2
+2.625e-1 2.33328e-1 8.7135986e-2 8.7135986e-2
+3.0e-1 2.33328e-1 8.2015991e-2 8.2015991e-2
+3.375e-1 2.33328e-1 7.50146362e-2 7.50146362e-2
+3.75e-1 2.33328e-1 6.67194946e-2 6.67194946e-2
+4.125e-1 2.33328e-1 5.76962036e-2 5.76962036e-2
+4.5e-1 2.33328e-1 4.85093628e-2 4.85093628e-2
+4.875e-1 2.33328e-1 3.96538818e-2 3.96538818e-2
+5.25e-1 2.33328e-1 3.15158325e-2 3.15158325e-2
+5.625e-1 2.33328e-1 2.43536621e-2 2.43536621e-2
+6.0e-1 2.33328e-1 1.8297229e-2 1.8297229e-2
+
+-3.0e-1 2.87494e-1 1.19765869e-2 1.19765869e-2
+-2.625e-1 2.87494e-1 1.71827881e-2 1.71827881e-2
+-2.25e-1 2.87494e-1 2.39678589e-2 2.39678589e-2
+-1.875e-1 2.87494e-1 3.25054443e-2 3.25054443e-2
+-1.5e-1 2.87494e-1 4.2861499e-2 4.2861499e-2
+-1.125e-1 2.87494e-1 5.4948999e-2 5.4948999e-2
+-7.5e-2 2.87494e-1 6.8493335e-2 6.8493335e-2
+-3.75e-2 2.87494e-1 8.2968018e-2 8.2968018e-2
+0.0e0 2.87494e-1 9.7776001e-2 9.7776001e-2
+3.75e-2 2.87494e-1 1.12024048e-1 1.12024048e-1
+7.5e-2 2.87494e-1 1.24832031e-1 1.24832031e-1
+1.125e-1 2.87494e-1 1.35144043e-1 1.35144043e-1
+1.5e-1 2.87494e-1 1.42271973e-1 1.42271973e-1
+1.875e-1 2.87494e-1 1.4570398e-1 1.4570398e-1
+2.25e-1 2.87494e-1 1.44984009e-1 1.44984009e-1
+2.625e-1 2.87494e-1 1.40343994e-1 1.40343994e-1
+3.0e-1 2.87494e-1 1.32031982e-1 1.32031982e-1
+3.375e-1 2.87494e-1 1.20735962e-1 1.20735962e-1
+3.75e-1 2.87494e-1 1.07384033e-1 1.07384033e-1
+4.125e-1 2.87494e-1 9.2895996e-2 9.2895996e-2
+4.5e-1 2.87494e-1 7.80984131e-2 7.80984131e-2
+4.875e-1 2.87494e-1 6.3842688e-2 6.3842688e-2
+5.25e-1 2.87494e-1 5.07402954e-2 5.07402954e-2
+5.625e-1 2.87494e-1 3.9209082e-2 3.9209082e-2
+6.0e-1 2.87494e-1 2.94583374e-2 2.94583374e-2
+
+-3.0e-1 3.4166e-1 1.81832031e-2 1.81832031e-2
+-2.625e-1 3.4166e-1 2.60869385e-2 2.60869385e-2
+-2.25e-1 3.4166e-1 3.638844e-2 3.638844e-2
+-1.875e-1 3.4166e-1 4.9350061e-2 4.9350061e-2
+-1.5e-1 3.4166e-1 6.50724121e-2 6.50724121e-2
+-1.125e-1 3.4166e-1 8.3375977e-2 8.3375977e-2
+-7.5e-2 3.4166e-1 1.0394397e-1 1.0394397e-1
+-3.75e-2 3.4166e-1 1.26024048e-1 1.26024048e-1
+0.0e0 3.4166e-1 1.48511963e-1 1.48511963e-1
+3.75e-2 3.4166e-1 1.70119995e-1 1.70119995e-1
+7.5e-2 3.4166e-1 1.8947998e-1 1.8947998e-1
+1.125e-1 3.4166e-1 2.05248047e-1 2.05248047e-1
+1.5e-1 3.4166e-1 2.16040039e-1 2.16040039e-1
+1.875e-1 3.4166e-1 2.21167969e-1 2.21167969e-1
+2.25e-1 3.4166e-1 2.20128052e-1 2.20128052e-1
+2.625e-1 3.4166e-1 2.13088013e-1 2.13088013e-1
+3.0e-1 3.4166e-1 2.00439941e-1 2.00439941e-1
+3.375e-1 3.4166e-1 1.83400024e-1 1.83400024e-1
+3.75e-1 3.4166e-1 1.63072021e-1 1.63072021e-1
+4.125e-1 3.4166e-1 1.40991943e-1 1.40991943e-1
+4.5e-1 3.4166e-1 1.1857605e-1 1.1857605e-1
+4.875e-1 3.4166e-1 9.6895996e-2 9.6895996e-2
+5.25e-1 3.4166e-1 7.7034607e-2 7.7034607e-2
+5.625e-1 3.4166e-1 5.95274536e-2 5.95274536e-2
+6.0e-1 3.4166e-1 4.47237915e-2 4.47237915e-2
+
+-3.0e-1 3.95826e-1 2.60328613e-2 2.60328613e-2
+-2.625e-1 3.95826e-1 3.73485596e-2 3.73485596e-2
+-2.25e-1 3.95826e-1 5.20976685e-2 5.20976685e-2
+-1.875e-1 3.95826e-1 7.06552002e-2 7.06552002e-2
+-1.5e-1 3.95826e-1 9.3135986e-2 9.3135986e-2
+-1.125e-1 3.95826e-1 1.19456055e-1 1.19456055e-1
+-7.5e-2 3.95826e-1 1.48911987e-1 1.48911987e-1
+-3.75e-2 3.95826e-1 1.80432007e-1 1.80432007e-1
+0.0e0 3.95826e-1 2.12608032e-1 2.12608032e-1
+3.75e-2 3.95826e-1 2.4357605e-1 2.4357605e-1
+7.5e-2 3.95826e-1 2.7133606e-1 2.7133606e-1
+1.125e-1 3.95826e-1 2.93823975e-1 2.93823975e-1
+1.5e-1 3.95826e-1 3.09352051e-1 3.09352051e-1
+1.875e-1 3.95826e-1 3.16712036e-1 3.16712036e-1
+2.25e-1 3.95826e-1 3.1518396e-1 3.1518396e-1
+2.625e-1 3.95826e-1 3.05031982e-1 3.05031982e-1
+3.0e-1 3.95826e-1 2.87024048e-1 2.87024048e-1
+3.375e-1 3.95826e-1 2.6253601e-1 2.6253601e-1
+3.75e-1 3.95826e-1 2.3347998e-1 2.3347998e-1
+4.125e-1 3.95826e-1 2.01880005e-1 2.01880005e-1
+4.5e-1 3.95826e-1 1.69800049e-1 1.69800049e-1
+4.875e-1 3.95826e-1 1.38744019e-1 1.38744019e-1
+5.25e-1 3.95826e-1 1.10264038e-1 1.10264038e-1
+5.625e-1 3.95826e-1 8.5215942e-2 8.5215942e-2
+6.0e-1 3.95826e-1 6.40305298e-2 6.40305298e-2
+
+-3.0e-1 4.49992e-1 3.51468384e-2 3.51468384e-2
+-2.625e-1 4.49992e-1 5.04250366e-2 5.04250366e-2
+-2.25e-1 4.49992e-1 7.03366577e-2 7.03366577e-2
+-1.875e-1 4.49992e-1 9.5375977e-2 9.5375977e-2
+-1.5e-1 4.49992e-1 1.25784058e-1 1.25784058e-1
+-1.125e-1 4.49992e-1 1.61232056e-1 1.61232056e-1
+-7.5e-2 4.49992e-1 2.01e-1 2.01e-1
+-3.75e-2 4.49992e-1 2.43656006e-1 2.43656006e-1
+0.0e0 4.49992e-1 2.87024048e-1 2.87024048e-1
+3.75e-2 4.49992e-1 3.28871948e-1 3.28871948e-1
+7.5e-2 4.49992e-1 3.66319946e-1 3.66319946e-1
+1.125e-1 4.49992e-1 3.96728027e-1 3.96728027e-1
+1.5e-1 4.49992e-1 4.1770398e-1 4.1770398e-1
+1.875e-1 4.49992e-1 4.27615967e-1 4.27615967e-1
+2.25e-1 4.49992e-1 4.25624023e-1 4.25624023e-1
+2.625e-1 4.49992e-1 4.11855957e-1 4.11855957e-1
+3.0e-1 4.49992e-1 3.8752002e-1 3.8752002e-1
+3.375e-1 4.49992e-1 3.5447998e-1 3.5447998e-1
+3.75e-1 4.49992e-1 3.15271973e-1 3.15271973e-1
+4.125e-1 4.49992e-1 2.72615967e-1 2.72615967e-1
+4.5e-1 4.49992e-1 2.29248047e-1 2.29248047e-1
+4.875e-1 4.49992e-1 1.87400024e-1 1.87400024e-1
+5.25e-1 4.49992e-1 1.48911987e-1 1.48911987e-1
+5.625e-1 4.49992e-1 1.15063965e-1 1.15063965e-1
+6.0e-1 4.49992e-1 8.6416016e-2 8.6416016e-2
+
+-3.0e-1 5.04158e-1 4.47477051e-2 4.47477051e-2
+-2.625e-1 5.04158e-1 6.41987915e-2 6.41987915e-2
+-2.25e-1 5.04158e-1 8.953601e-2 8.953601e-2
+-1.875e-1 5.04158e-1 1.21456055e-1 1.21456055e-1
+-1.5e-1 5.04158e-1 1.60104004e-1 1.60104004e-1
+-1.125e-1 5.04158e-1 2.05319946e-1 2.05319946e-1
+-7.5e-2 5.04158e-1 2.55968018e-1 2.55968018e-1
+-3.75e-2 5.04158e-1 3.10144043e-1 3.10144043e-1
+0.0e0 5.04158e-1 3.65527954e-1 3.65527954e-1
+3.75e-2 5.04158e-1 4.18735962e-1 4.18735962e-1
+7.5e-2 5.04158e-1 4.66343994e-1 4.66343994e-1
+1.125e-1 5.04158e-1 5.05079956e-1 5.05079956e-1
+1.5e-1 5.04158e-1 5.31800049e-1 5.31800049e-1
+1.875e-1 5.04158e-1 5.44447998e-1 5.44447998e-1
+2.25e-1 5.04158e-1 5.41880005e-1 5.41880005e-1
+2.625e-1 5.04158e-1 5.24368042e-1 5.24368042e-1
+3.0e-1 5.04158e-1 4.93391968e-1 4.93391968e-1
+3.375e-1 5.04158e-1 4.51303955e-1 4.51303955e-1
+3.75e-1 5.04158e-1 4.01368042e-1 4.01368042e-1
+4.125e-1 5.04158e-1 3.47119995e-1 3.47119995e-1
+4.5e-1 5.04158e-1 2.91823975e-1 2.91823975e-1
+4.875e-1 5.04158e-1 2.38527954e-1 2.38527954e-1
+5.25e-1 5.04158e-1 1.89560059e-1 1.89560059e-1
+5.625e-1 5.04158e-1 1.46511963e-1 1.46511963e-1
+6.0e-1 5.04158e-1 1.10024048e-1 1.10024048e-1
+
+-3.0e-1 5.58324e-1 5.37246216e-2 5.37246216e-2
+-2.625e-1 5.58324e-1 7.7077002e-2 7.7077002e-2
+-2.25e-1 5.58324e-1 1.07543945e-1 1.07543945e-1
+-1.875e-1 5.58324e-1 1.45791992e-1 1.45791992e-1
+-1.5e-1 5.58324e-1 1.92287964e-1 1.92287964e-1
+-1.125e-1 5.58324e-1 2.4653601e-1 2.4653601e-1
+-7.5e-2 5.58324e-1 3.07264038e-1 3.07264038e-1
+-3.75e-2 5.58324e-1 3.72400024e-1 3.72400024e-1
+0.0e0 5.58324e-1 4.3881604e-1 4.3881604e-1
+3.75e-2 5.58324e-1 5.02671997e-1 5.02671997e-1
+7.5e-2 5.58324e-1 5.59975952e-1 5.59975952e-1
+1.125e-1 5.58324e-1 6.06384033e-1 6.06384033e-1
+1.5e-1 5.58324e-1 6.3846399e-1 6.3846399e-1
+1.875e-1 5.58324e-1 6.53592041e-1 6.53592041e-1
+2.25e-1 5.58324e-1 6.50552002e-1 6.50552002e-1
+2.625e-1 5.58324e-1 6.29592041e-1 6.29592041e-1
+3.0e-1 5.58324e-1 5.92384033e-1 5.92384033e-1
+3.375e-1 5.58324e-1 5.41880005e-1 5.41880005e-1
+3.75e-1 5.58324e-1 4.8194397e-1 4.8194397e-1
+4.125e-1 5.58324e-1 4.16735962e-1 4.16735962e-1
+4.5e-1 5.58324e-1 3.50400024e-1 3.50400024e-1
+4.875e-1 5.58324e-1 2.86391968e-1 2.86391968e-1
+5.25e-1 5.58324e-1 2.27647949e-1 2.27647949e-1
+5.625e-1 5.58324e-1 1.75880005e-1 1.75880005e-1
+6.0e-1 5.58324e-1 1.32104004e-1 1.32104004e-1
+
+-3.0e-1 6.1249e-1 6.08250244e-2 6.08250244e-2
+-2.625e-1 6.1249e-1 8.7215942e-2 8.7215942e-2
+-2.25e-1 6.1249e-1 1.2170398e-1 1.2170398e-1
+-1.875e-1 6.1249e-1 1.65072021e-1 1.65072021e-1
+-1.5e-1 6.1249e-1 2.17728027e-1 2.17728027e-1
+-1.125e-1 6.1249e-1 2.79104004e-1 2.79104004e-1
+-7.5e-2 6.1249e-1 3.47911987e-1 3.47911987e-1
+-3.75e-2 6.1249e-1 4.21615967e-1 4.21615967e-1
+0.0e0 6.1249e-1 4.96839966e-1 4.96839966e-1
+3.75e-2 6.1249e-1 5.69176025e-1 5.69176025e-1
+7.5e-2 6.1249e-1 6.33984009e-1 6.33984009e-1
+1.125e-1 6.1249e-1 6.86560059e-1 6.86560059e-1
+1.5e-1 6.1249e-1 7.2288794e-1 7.2288794e-1
+1.875e-1 6.1249e-1 7.40015991e-1 7.40015991e-1
+2.25e-1 6.1249e-1 7.3657605e-1 7.3657605e-1
+2.625e-1 6.1249e-1 7.12800049e-1 7.12800049e-1
+3.0e-1 6.1249e-1 6.70640015e-1 6.70640015e-1
+3.375e-1 6.1249e-1 6.13504028e-1 6.13504028e-1
+3.75e-1 6.1249e-1 5.45640015e-1 5.45640015e-1
+4.125e-1 6.1249e-1 4.71864014e-1 4.71864014e-1
+4.5e-1 6.1249e-1 3.96728027e-1 3.96728027e-1
+4.875e-1 6.1249e-1 3.24319946e-1 3.24319946e-1
+5.25e-1 6.1249e-1 2.57735962e-1 2.57735962e-1
+5.625e-1 6.1249e-1 1.99160034e-1 1.99160034e-1
+6.0e-1 6.1249e-1 1.49631958e-1 1.49631958e-1
+
+-3.0e-1 6.66656e-1 6.49399292e-2 6.49399292e-2
+-2.625e-1 6.66656e-1 9.3135986e-2 9.3135986e-2
+-2.25e-1 6.66656e-1 1.2994397e-1 1.2994397e-1
+-1.875e-1 6.66656e-1 1.7628003e-1 1.7628003e-1
+-1.5e-1 6.66656e-1 2.32447998e-1 2.32447998e-1
+-1.125e-1 6.66656e-1 2.97984009e-1 2.97984009e-1
+-7.5e-2 6.66656e-1 3.71447998e-1 3.71447998e-1
+-3.75e-2 6.66656e-1 4.5018396e-1 4.5018396e-1
+0.0e0 6.66656e-1 5.30447998e-1 5.30447998e-1
+3.75e-2 6.66656e-1 6.0766394e-1 6.0766394e-1
+7.5e-2 6.66656e-1 6.76880005e-1 6.76880005e-1
+1.125e-1 6.66656e-1 7.32968018e-1 7.32968018e-1
+1.5e-1 6.66656e-1 7.71776001e-1 7.71776001e-1
+1.875e-1 6.66656e-1 7.90104004e-1 7.90104004e-1
+2.25e-1 6.66656e-1 7.8642395e-1 7.8642395e-1
+2.625e-1 6.66656e-1 7.60975952e-1 7.60975952e-1
+3.0e-1 6.66656e-1 7.16e-1 7.16e-1
+3.375e-1 6.66656e-1 6.55031982e-1 6.55031982e-1
+3.75e-1 6.66656e-1 5.82527954e-1 5.82527954e-1
+4.125e-1 6.66656e-1 5.03800049e-1 5.03800049e-1
+4.5e-1 6.66656e-1 4.2353601e-1 4.2353601e-1
+4.875e-1 6.66656e-1 3.4623999e-1 3.4623999e-1
+5.25e-1 6.66656e-1 2.7518396e-1 2.7518396e-1
+5.625e-1 6.66656e-1 2.12608032e-1 2.12608032e-1
+6.0e-1 6.66656e-1 1.5971997e-1 1.5971997e-1
+
+-3.0e-1 7.20822e-1 6.53824463e-2 6.53824463e-2
+-2.625e-1 7.20822e-1 9.3776001e-2 9.3776001e-2
+-2.25e-1 7.20822e-1 1.30823975e-1 1.30823975e-1
+-1.875e-1 7.20822e-1 1.7747998e-1 1.7747998e-1
+-1.5e-1 7.20822e-1 2.33975952e-1 2.33975952e-1
+-1.125e-1 7.20822e-1 2.99984009e-1 2.99984009e-1
+-7.5e-2 7.20822e-1 3.74e-1 3.74e-1
+-3.75e-2 7.20822e-1 4.53223999e-1 4.53223999e-1
+0.0e0 7.20822e-1 5.34047974e-1 5.34047974e-1
+3.75e-2 7.20822e-1 6.1181604e-1 6.1181604e-1
+7.5e-2 7.20822e-1 6.81439941e-1 6.81439941e-1
+1.125e-1 7.20822e-1 7.38015991e-1 7.38015991e-1
+1.5e-1 7.20822e-1 7.76975952e-1 7.76975952e-1
+1.875e-1 7.20822e-1 7.95472046e-1 7.95472046e-1
+2.25e-1 7.20822e-1 7.91712036e-1 7.91712036e-1
+2.625e-1 7.20822e-1 7.6618396e-1 7.6618396e-1
+3.0e-1 7.20822e-1 7.2088794e-1 7.2088794e-1
+3.375e-1 7.20822e-1 6.59439941e-1 6.59439941e-1
+3.75e-1 7.20822e-1 5.8653601e-1 5.8653601e-1
+4.125e-1 7.20822e-1 5.0723999e-1 5.0723999e-1
+4.5e-1 7.20822e-1 4.26416016e-1 4.26416016e-1
+4.875e-1 7.20822e-1 3.48560059e-1 3.48560059e-1
+5.25e-1 7.20822e-1 2.77024048e-1 2.77024048e-1
+5.625e-1 7.20822e-1 2.14047974e-1 2.14047974e-1
+6.0e-1 7.20822e-1 1.60823975e-1 1.60823975e-1
+
+-3.0e-1 7.74988e-1 6.2075647e-2 6.2075647e-2
+-2.625e-1 7.74988e-1 8.9047974e-2 8.9047974e-2
+-2.25e-1 7.74988e-1 1.2418396e-1 1.2418396e-1
+-1.875e-1 7.74988e-1 1.6852002e-1 1.6852002e-1
+-1.5e-1 7.74988e-1 2.22208008e-1 2.22208008e-1
+-1.125e-1 7.74988e-1 2.84864014e-1 2.84864014e-1
+-7.5e-2 7.74988e-1 3.55040039e-1 3.55040039e-1
+-3.75e-2 7.74988e-1 4.3033606e-1 4.3033606e-1
+0.0e0 7.74988e-1 5.06991943e-1 5.06991943e-1
+3.75e-2 7.74988e-1 5.80855957e-1 5.80855957e-1
+7.5e-2 7.74988e-1 6.46952026e-1 6.46952026e-1
+1.125e-1 7.74988e-1 7.00647949e-1 7.00647949e-1
+1.5e-1 7.74988e-1 7.37696045e-1 7.37696045e-1
+1.875e-1 7.74988e-1 7.55215942e-1 7.55215942e-1
+2.25e-1 7.74988e-1 7.51696045e-1 7.51696045e-1
+2.625e-1 7.74988e-1 7.27456055e-1 7.27456055e-1
+3.0e-1 7.74988e-1 6.84400024e-1 6.84400024e-1
+3.375e-1 7.74988e-1 6.26063965e-1 6.26063965e-1
+3.75e-1 7.74988e-1 5.56848022e-1 5.56848022e-1
+4.125e-1 7.74988e-1 4.81552002e-1 4.81552002e-1
+4.5e-1 7.74988e-1 4.04895996e-1 4.04895996e-1
+4.875e-1 7.74988e-1 3.30959961e-1 3.30959961e-1
+5.25e-1 7.74988e-1 2.63015991e-1 2.63015991e-1
+5.625e-1 7.74988e-1 2.03248047e-1 2.03248047e-1
+6.0e-1 7.74988e-1 1.52671997e-1 1.52671997e-1
+
+-3.0e-1 8.29154e-1 5.55774536e-2 5.55774536e-2
+-2.625e-1 8.29154e-1 7.9736206e-2 7.9736206e-2
+-2.25e-1 8.29154e-1 1.11215942e-1 1.11215942e-1
+-1.875e-1 8.29154e-1 1.50832031e-1 1.50832031e-1
+-1.5e-1 8.29154e-1 1.98927979e-1 1.98927979e-1
+-1.125e-1 8.29154e-1 2.55015991e-1 2.55015991e-1
+-7.5e-2 8.29154e-1 3.17904053e-1 3.17904053e-1
+-3.75e-2 8.29154e-1 3.85287964e-1 3.85287964e-1
+0.0e0 8.29154e-1 4.5394397e-1 4.5394397e-1
+3.75e-2 8.29154e-1 5.20040039e-1 5.20040039e-1
+7.5e-2 8.29154e-1 5.79248047e-1 5.79248047e-1
+1.125e-1 8.29154e-1 6.27343994e-1 6.27343994e-1
+1.5e-1 8.29154e-1 6.60472046e-1 6.60472046e-1
+1.875e-1 8.29154e-1 6.76160034e-1 6.76160034e-1
+2.25e-1 8.29154e-1 6.72959961e-1 6.72959961e-1
+2.625e-1 8.29154e-1 6.51271973e-1 6.51271973e-1
+3.0e-1 8.29154e-1 6.12784058e-1 6.12784058e-1
+3.375e-1 8.29154e-1 5.6053601e-1 5.6053601e-1
+3.75e-1 8.29154e-1 4.98599976e-1 4.98599976e-1
+4.125e-1 8.29154e-1 4.31144043e-1 4.31144043e-1
+4.5e-1 8.29154e-1 3.62488037e-1 3.62488037e-1
+4.875e-1 8.29154e-1 2.96303955e-1 2.96303955e-1
+5.25e-1 8.29154e-1 2.35488037e-1 2.35488037e-1
+5.625e-1 8.29154e-1 1.81959961e-1 1.81959961e-1
+6.0e-1 8.29154e-1 1.36671997e-1 1.36671997e-1
+
+-3.0e-1 8.8332e-1 4.69238403e-2 4.69238403e-2
+-2.625e-1 8.8332e-1 6.7320044e-2 6.7320044e-2
+-2.25e-1 8.8332e-1 9.3855957e-2 9.3855957e-2
+-1.875e-1 8.8332e-1 1.27384033e-1 1.27384033e-1
+-1.5e-1 8.8332e-1 1.67959961e-1 1.67959961e-1
+-1.125e-1 8.8332e-1 2.15319946e-1 2.15319946e-1
+-7.5e-2 8.8332e-1 2.68384033e-1 2.68384033e-1
+-3.75e-2 8.8332e-1 3.25271973e-1 3.25271973e-1
+0.0e0 8.8332e-1 3.83287964e-1 3.83287964e-1
+3.75e-2 8.8332e-1 4.39063965e-1 4.39063965e-1
+7.5e-2 8.8332e-1 4.89072021e-1 4.89072021e-1
+1.125e-1 8.8332e-1 5.29640015e-1 5.29640015e-1
+1.5e-1 8.8332e-1 5.57656006e-1 5.57656006e-1
+1.875e-1 8.8332e-1 5.70848022e-1 5.70848022e-1
+2.25e-1 8.8332e-1 5.68215942e-1 5.68215942e-1
+2.625e-1 8.8332e-1 5.4988794e-1 5.4988794e-1
+3.0e-1 8.8332e-1 5.17391968e-1 5.17391968e-1
+3.375e-1 8.8332e-1 4.73303955e-1 4.73303955e-1
+3.75e-1 8.8332e-1 4.20895996e-1 4.20895996e-1
+4.125e-1 8.8332e-1 3.64e-1 3.64e-1
+4.5e-1 8.8332e-1 3.06063965e-1 3.06063965e-1
+4.875e-1 8.8332e-1 2.50135986e-1 2.50135986e-1
+5.25e-1 8.8332e-1 1.98839966e-1 1.98839966e-1
+5.625e-1 8.8332e-1 1.53624023e-1 1.53624023e-1
+6.0e-1 8.8332e-1 1.15384033e-1 1.15384033e-1
+
+-3.0e-1 9.3748601e-1 3.73595581e-2 3.73595581e-2
+-2.625e-1 9.3748601e-1 5.35985352e-2 5.35985352e-2
+-2.25e-1 9.3748601e-1 7.47652222e-2 7.47652222e-2
+-1.875e-1 9.3748601e-1 1.01375977e-1 1.01375977e-1
+-1.5e-1 9.3748601e-1 1.3370398e-1 1.3370398e-1
+-1.125e-1 9.3748601e-1 1.71400024e-1 1.71400024e-1
+-7.5e-2 9.3748601e-1 2.13647949e-1 2.13647949e-1
+-3.75e-2 9.3748601e-1 2.58936035e-1 2.58936035e-1
+0.0e0 9.3748601e-1 3.05104004e-1 3.05104004e-1
+3.75e-2 9.3748601e-1 3.49599976e-1 3.49599976e-1
+7.5e-2 9.3748601e-1 3.89368042e-1 3.89368042e-1
+1.125e-1 9.3748601e-1 4.21687988e-1 4.21687988e-1
+1.5e-1 9.3748601e-1 4.44015991e-1 4.44015991e-1
+1.875e-1 9.3748601e-1 4.54504028e-1 4.54504028e-1
+2.25e-1 9.3748601e-1 4.52432007e-1 4.52432007e-1
+2.625e-1 9.3748601e-1 4.37784058e-1 4.37784058e-1
+3.0e-1 9.3748601e-1 4.11936035e-1 4.11936035e-1
+3.375e-1 9.3748601e-1 3.76807983e-1 3.76807983e-1
+3.75e-1 9.3748601e-1 3.35119995e-1 3.35119995e-1
+4.125e-1 9.3748601e-1 2.8981604e-1 2.8981604e-1
+4.5e-1 9.3748601e-1 2.43656006e-1 2.43656006e-1
+4.875e-1 9.3748601e-1 1.99160034e-1 1.99160034e-1
+5.25e-1 9.3748601e-1 1.5828003e-1 1.5828003e-1
+5.625e-1 9.3748601e-1 1.22264038e-1 1.22264038e-1
+6.0e-1 9.3748601e-1 9.1855957e-2 9.1855957e-2
+
+-3.0e-1 9.9165201e-1 2.80495605e-2 2.80495605e-2
+-2.625e-1 9.9165201e-1 4.02418457e-2 4.02418457e-2
+-2.25e-1 9.9165201e-1 5.61330688e-2 5.61330688e-2
+-1.875e-1 9.9165201e-1 7.61278809e-2 7.61278809e-2
+-1.5e-1 9.9165201e-1 1.00343994e-1 1.00343994e-1
+-1.125e-1 9.9165201e-1 1.2866394e-1 1.2866394e-1
+-7.5e-2 9.9165201e-1 1.60439941e-1 1.60439941e-1
+-3.75e-2 9.9165201e-1 1.94447998e-1 1.94447998e-1
+0.0e0 9.9165201e-1 2.29088013e-1 2.29088013e-1
+3.75e-2 9.9165201e-1 2.6246399e-1 2.6246399e-1
+7.5e-2 9.9165201e-1 2.92312012e-1 2.92312012e-1
+1.125e-1 9.9165201e-1 3.16552002e-1 3.16552002e-1
+1.5e-1 9.9165201e-1 3.33352051e-1 3.33352051e-1
+1.875e-1 9.9165201e-1 3.41271973e-1 3.41271973e-1
+2.25e-1 9.9165201e-1 3.39671997e-1 3.39671997e-1
+2.625e-1 9.9165201e-1 3.28712036e-1 3.28712036e-1
+3.0e-1 9.9165201e-1 3.09264038e-1 3.09264038e-1
+3.375e-1 9.9165201e-1 2.82864014e-1 2.82864014e-1
+3.75e-1 9.9165201e-1 2.5157605e-1 2.5157605e-1
+4.125e-1 9.9165201e-1 2.17567993e-1 2.17567993e-1
+4.5e-1 9.9165201e-1 1.82920044e-1 1.82920044e-1
+4.875e-1 9.9165201e-1 1.49552002e-1 1.49552002e-1
+5.25e-1 9.9165201e-1 1.18823975e-1 1.18823975e-1
+5.625e-1 9.9165201e-1 9.1776001e-2 9.1776001e-2
+6.0e-1 9.9165201e-1 6.89909058e-2 6.89909058e-2
+
+-3.0e-1 1.04581801e0 1.98591309e-2 1.98591309e-2
+-2.625e-1 1.04581801e0 2.84918335e-2 2.84918335e-2
+-2.25e-1 1.04581801e0 3.97429199e-2 3.97429199e-2
+-1.875e-1 1.04581801e0 5.38993896e-2 5.38993896e-2
+-1.5e-1 1.04581801e0 7.10715576e-2 7.10715576e-2
+-1.125e-1 1.04581801e0 9.1135986e-2 9.1135986e-2
+-7.5e-2 1.04581801e0 1.1353601e-1 1.1353601e-1
+-3.75e-2 1.04581801e0 1.37624023e-1 1.37624023e-1
+0.0e0 1.04581801e0 1.62192017e-1 1.62192017e-1
+3.75e-2 1.04581801e0 1.85800049e-1 1.85800049e-1
+7.5e-2 1.04581801e0 2.06920044e-1 2.06920044e-1
+1.125e-1 1.04581801e0 2.24135986e-1 2.24135986e-1
+1.5e-1 1.04581801e0 2.35975952e-1 2.35975952e-1
+1.875e-1 1.04581801e0 2.4157605e-1 2.4157605e-1
+2.25e-1 1.04581801e0 2.40456055e-1 2.40456055e-1
+2.625e-1 1.04581801e0 2.32687988e-1 2.32687988e-1
+3.0e-1 1.04581801e0 2.18920044e-1 2.18920044e-1
+3.375e-1 1.04581801e0 2.0028003e-1 2.0028003e-1
+3.75e-1 1.04581801e0 1.7811206e-1 1.7811206e-1
+4.125e-1 1.04581801e0 1.54031982e-1 1.54031982e-1
+4.5e-1 1.04581801e0 1.2946399e-1 1.2946399e-1
+4.875e-1 1.04581801e0 1.05855957e-1 1.05855957e-1
+5.25e-1 1.04581801e0 8.4095947e-2 8.4095947e-2
+5.625e-1 1.04581801e0 6.50150269e-2 6.50150269e-2
+6.0e-1 1.04581801e0 4.88465088e-2 4.88465088e-2
+
+-3.0e-1 1.099984e0 1.32593262e-2 1.32593262e-2
+-2.625e-1 1.099984e0 1.90228027e-2 1.90228027e-2
+-2.25e-1 1.099984e0 2.6534729e-2 2.6534729e-2
+-1.875e-1 1.099984e0 3.59865723e-2 3.59865723e-2
+-1.5e-1 1.099984e0 4.74515259e-2 4.74515259e-2
+-1.125e-1 1.099984e0 6.08340576e-2 6.08340576e-2
+-7.5e-2 1.099984e0 7.58272583e-2 7.58272583e-2
+-3.75e-2 1.099984e0 9.1855957e-2 9.1855957e-2
+0.0e0 1.099984e0 1.08264038e-1 1.08264038e-1
+3.75e-2 1.099984e0 1.24024048e-1 1.24024048e-1
+7.5e-2 1.099984e0 1.3818396e-1 1.3818396e-1
+1.125e-1 1.099984e0 1.49631958e-1 1.49631958e-1
+1.5e-1 1.099984e0 1.57560059e-1 1.57560059e-1
+1.875e-1 1.099984e0 1.61312012e-1 1.61312012e-1
+2.25e-1 1.099984e0 1.60511963e-1 1.60511963e-1
+2.625e-1 1.099984e0 1.55312012e-1 1.55312012e-1
+3.0e-1 1.099984e0 1.46192017e-1 1.46192017e-1
+3.375e-1 1.099984e0 1.3370398e-1 1.3370398e-1
+3.75e-1 1.099984e0 1.18895996e-1 1.18895996e-1
+4.125e-1 1.099984e0 1.0281604e-1 1.0281604e-1
+4.5e-1 1.099984e0 8.6416016e-2 8.6416016e-2
+4.875e-1 1.099984e0 7.06788574e-2 7.06788574e-2
+5.25e-1 1.099984e0 5.61742798e-2 5.61742798e-2
+5.625e-1 1.099984e0 4.34080322e-2 4.34080322e-2
+6.0e-1 1.099984e0 3.26125366e-2 3.26125366e-2
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.script b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.script
new file mode 100644
index 00000000000..e88b7251573
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.script
@@ -0,0 +1 @@
+unset surface; set cntrparam levels 9; set contour; set table "pgfplots.titlepage_contourtmp0.table"; splot "pgfplots.titlepage_contourtmp0.dat";
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.table b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.table
new file mode 100644
index 00000000000..4a0def29330
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplots.titlepage_contourtmp0.table
@@ -0,0 +1,351 @@
+
+# Surface 0 of 1 surfaces
+
+# Curve title: ""pgfplots.titlepage_contourtmp0.dat""
+# Contour 0, label: 0.7
+ 0.1125 0.775467 0.7
+ 0.112047 0.774988 0.7
+ 0.0873021 0.720822 0.7
+ 0.0904578 0.666656 0.7
+ 0.1125 0.628177 0.7
+ 0.126374 0.61249 0.7
+ 0.15 0.597805 0.7
+ 0.1875 0.58741 0.7
+ 0.225 0.589459 0.7
+ 0.2625 0.604158 0.7
+ 0.273885 0.61249 0.7
+ 0.3 0.64755 0.7
+ 0.309841 0.666656 0.7
+ 0.312747 0.720822 0.7
+ 0.3 0.75183 0.7
+ 0.286413 0.774988 0.7
+ 0.2625 0.794509 0.7
+ 0.225 0.810552 0.7
+ 0.1875 0.81282 0.7
+ 0.15 0.801429 0.7
+ 0.1125 0.775467 0.7
+
+
+# Contour 1, label: 0.6
+ 0.1125 0.844313 0.6
+ 0.0911801 0.829154 0.6
+ 0.075 0.812552 0.6
+ 0.0483615 0.774988 0.6
+ 0.0375 0.741495 0.6
+ 0.0318023 0.720822 0.6
+ 0.033778 0.666656 0.6
+ 0.0375 0.65587 0.6
+ 0.0553358 0.61249 0.6
+ 0.075 0.587617 0.6
+ 0.107341 0.558324 0.6
+ 0.1125 0.554911 0.6
+ 0.15 0.538791 0.6
+ 0.1875 0.531727 0.6
+ 0.225 0.533127 0.6
+ 0.2625 0.543091 0.6
+ 0.292324 0.558324 0.6
+ 0.3 0.563596 0.6
+ 0.3375 0.602278 0.6
+ 0.344962 0.61249 0.6
+ 0.365963 0.666656 0.6
+ 0.368074 0.720822 0.6
+ 0.351621 0.774988 0.6
+ 0.3375 0.796533 0.6
+ 0.309176 0.829154 0.6
+ 0.3 0.836413 0.6
+ 0.2625 0.856547 0.6
+ 0.225 0.866884 0.6
+ 0.1875 0.868326 0.6
+ 0.15 0.861012 0.6
+ 0.1125 0.844313 0.6
+
+
+# Contour 2, label: 0.5
+ 0.1125 0.898192 0.5
+ 0.0851015 0.88332 0.5
+ 0.075 0.876756 0.5
+ 0.0375 0.842559 0.5
+ 0.0261302 0.829154 0.5
+ 0 0.782127 0.5
+-0.00342045 0.774988 0.5
+-0.0157973 0.720822 0.5
+-0.0142255 0.666656 0.5
+ 0 0.617583 0.5
+ 0.0016382 0.61249 0.5
+ 0.0359308 0.558324 0.5
+ 0.0375 0.5566 0.5
+ 0.075 0.523628 0.5
+ 0.107582 0.504158 0.5
+ 0.1125 0.501618 0.5
+ 0.15 0.489061 0.5
+ 0.1875 0.483551 0.5
+ 0.225 0.484645 0.5
+ 0.2625 0.492427 0.5
+ 0.292 0.504158 0.5
+ 0.3 0.507774 0.5
+ 0.3375 0.533279 0.5
+ 0.363703 0.558324 0.5
+ 0.375 0.573679 0.5
+ 0.398199 0.61249 0.5
+ 0.4125 0.660211 0.5
+ 0.414275 0.666656 0.5
+ 0.415859 0.720822 0.5
+ 0.4125 0.736088 0.5
+ 0.403312 0.774988 0.5
+ 0.375 0.827852 0.5
+ 0.374152 0.829154 0.5
+ 0.3375 0.866743 0.5
+ 0.314793 0.88332 0.5
+ 0.3 0.892253 0.5
+ 0.2625 0.907425 0.5
+ 0.225 0.915233 0.5
+ 0.1875 0.916305 0.5
+ 0.15 0.910801 0.5
+ 0.1125 0.898192 0.5
+
+
+# Contour 3, label: 0.4
+ 0.1125 0.94866 0.4
+ 0.087336 0.937486 0.4
+ 0.075 0.93171 0.4
+ 0.0375 0.906971 0.4
+ 0.011236 0.88332 0.4
+ 0 0.870508 0.4
+-0.0294643 0.829154 0.4
+-0.0375 0.811464 0.4
+-0.0526084 0.774988 0.4
+-0.0626931 0.720822 0.4
+-0.0614014 0.666656 0.4
+-0.048498 0.61249 0.4
+-0.0375 0.5887 0.4
+-0.0219164 0.558324 0.4
+ 0 0.529636 0.4
+ 0.0242952 0.504158 0.4
+ 0.0375 0.492865 0.4
+ 0.075 0.468231 0.4
+ 0.1125 0.451628 0.4
+ 0.11835 0.449992 0.4
+ 0.15 0.441142 0.4
+ 0.1875 0.436504 0.4
+ 0.225 0.437425 0.4
+ 0.2625 0.44398 0.4
+ 0.280769 0.449992 0.4
+ 0.3 0.456377 0.4
+ 0.3375 0.475457 0.4
+ 0.375 0.503297 0.4
+ 0.375946 0.504158 0.4
+ 0.4125 0.545302 0.4
+ 0.421961 0.558324 0.4
+ 0.448367 0.61249 0.4
+ 0.45 0.619101 0.4
+ 0.461418 0.666656 0.4
+ 0.462724 0.720822 0.4
+ 0.452483 0.774988 0.4
+ 0.45 0.781241 0.4
+ 0.429511 0.829154 0.4
+ 0.4125 0.854278 0.4
+ 0.388772 0.88332 0.4
+ 0.375 0.896515 0.4
+ 0.3375 0.924468 0.4
+ 0.312742 0.937486 0.4
+ 0.3 0.943783 0.4
+ 0.2625 0.95625 0.4
+ 0.225 0.962673 0.4
+ 0.1875 0.963559 0.4
+ 0.15 0.95903 0.4
+ 0.1125 0.94866 0.4
+
+
+# Contour 4, label: 0.3
+ 0.1125 1.00135 0.3
+ 0.0868936 0.991652 0.3
+ 0.075 0.987361 0.3
+ 0.0375 0.968319 0.3
+ 0 0.941123 0.3
+-0.00414573 0.937486 0.3
+-0.0375 0.903956 0.3
+-0.054159 0.88332 0.3
+-0.075 0.848738 0.3
+-0.0856761 0.829154 0.3
+-0.104412 0.774988 0.3
+-0.112492 0.720822 0.3
+-0.111471 0.666656 0.3
+-0.101112 0.61249 0.3
+-0.0794856 0.558324 0.3
+-0.075 0.550654 0.3
+-0.0445216 0.504158 0.3
+-0.0375 0.495894 0.3
+ 0 0.458945 0.3
+ 0.0116278 0.449992 0.3
+ 0.0375 0.431657 0.3
+ 0.075 0.412172 0.3
+ 0.1125 0.399077 0.3
+ 0.127415 0.395826 0.3
+ 0.15 0.390397 0.3
+ 0.1875 0.386352 0.3
+ 0.225 0.387174 0.3
+ 0.2625 0.392862 0.3
+ 0.272979 0.395826 0.3
+ 0.3 0.40282 0.3
+ 0.3375 0.417897 0.3
+ 0.375 0.439878 0.3
+ 0.388426 0.449992 0.3
+ 0.4125 0.469901 0.3
+ 0.444455 0.504158 0.3
+ 0.45 0.511718 0.3
+ 0.479528 0.558324 0.3
+ 0.4875 0.577758 0.3
+ 0.501197 0.61249 0.3
+ 0.511903 0.666656 0.3
+ 0.512956 0.720822 0.3
+ 0.504588 0.774988 0.3
+ 0.4875 0.823377 0.3
+ 0.485406 0.829154 0.3
+ 0.454066 0.88332 0.3
+ 0.45 0.888583 0.3
+ 0.4125 0.93005 0.3
+ 0.40407 0.937486 0.3
+ 0.375 0.960256 0.3
+ 0.3375 0.981772 0.3
+ 0.313159 0.991652 0.3
+ 0.3 0.997206 0.3
+ 0.2625 1.00785 0.3
+ 0.225 1.01331 0.3
+ 0.1875 1.01408 0.3
+ 0.15 1.0102 0.3
+ 0.1125 1.00135 0.3
+
+
+# Contour 5, label: 0.2
+ 0.075 1.05127 0.2
+ 0.062713 1.04582 0.2
+ 0.0375 1.03579 0.2
+ 0 1.0152 0.2
+-0.0314896 0.991652 0.2
+-0.0375 0.986989 0.2
+-0.075 0.95138 0.2
+-0.0871142 0.937486 0.2
+-0.1125 0.902214 0.2
+-0.12463 0.88332 0.2
+-0.149283 0.829154 0.2
+-0.15 0.82666 0.2
+-0.165512 0.774988 0.2
+-0.172552 0.720822 0.2
+-0.171664 0.666656 0.2
+-0.162625 0.61249 0.2
+-0.15 0.574744 0.2
+-0.144669 0.558324 0.2
+-0.116912 0.504158 0.2
+-0.1125 0.497622 0.2
+-0.075943 0.449992 0.2
+-0.075 0.448952 0.2
+-0.0375 0.412591 0.2
+-0.0146942 0.395826 0.2
+ 0 0.385171 0.2
+ 0.0375 0.363693 0.2
+ 0.075 0.348621 0.2
+ 0.100019 0.34166 0.2
+ 0.1125 0.337605 0.2
+ 0.15 0.329882 0.2
+ 0.1875 0.326466 0.2
+ 0.225 0.327151 0.2
+ 0.2625 0.331915 0.2
+ 0.3 0.341312 0.2
+ 0.300968 0.34166 0.2
+ 0.3375 0.353022 0.2
+ 0.375 0.370069 0.2
+ 0.4125 0.394154 0.2
+ 0.414698 0.395826 0.2
+ 0.45 0.423343 0.2
+ 0.476209 0.449992 0.2
+ 0.4875 0.463341 0.2
+ 0.517005 0.504158 0.2
+ 0.525 0.519005 0.2
+ 0.545028 0.558324 0.2
+ 0.561962 0.61249 0.2
+ 0.5625 0.615873 0.2
+ 0.57144 0.666656 0.2
+ 0.572398 0.720822 0.2
+ 0.564908 0.774988 0.2
+ 0.5625 0.783252 0.2
+ 0.549862 0.829154 0.2
+ 0.525 0.881605 0.2
+ 0.524152 0.88332 0.2
+ 0.4875 0.936593 0.2
+ 0.486792 0.937486 0.2
+ 0.45 0.97642 0.2
+ 0.431514 0.991652 0.2
+ 0.4125 1.00663 0.2
+ 0.375 1.02968 0.2
+ 0.337974 1.04582 0.2
+ 0.3375 1.04605 0.2
+ 0.3 1.05991 0.2
+ 0.2625 1.0687 0.2
+ 0.225 1.07323 0.2
+ 0.1875 1.07388 0.2
+ 0.15 1.07067 0.2
+ 0.1125 1.06337 0.2
+ 0.075 1.05127 0.2
+
+
+# Contour 6, label: 0.1
+ 0.418939 1.09998 0.1
+ 0.45 1.08289 0.1
+ 0.4875 1.05484 0.1
+ 0.497592 1.04582 0.1
+ 0.525 1.02101 0.1
+ 0.551098 0.991652 0.1
+ 0.5625 0.977041 0.1
+ 0.589957 0.937486 0.1
+ 0.6 0.918737 0.1
+
+-0.0188871 1.09998 0.1
+-0.0375 1.09035 0.1
+-0.075 1.06526 0.1
+-0.0976607 1.04582 0.1
+-0.1125 1.03302 0.1
+-0.15 0.992289 0.1
+-0.150533 0.991652 0.1
+-0.1875 0.940438 0.1
+-0.189439 0.937486 0.1
+-0.218128 0.88332 0.1
+-0.225 0.86415 0.1
+-0.238361 0.829154 0.1
+-0.250811 0.774988 0.1
+-0.2562 0.720822 0.1
+-0.255507 0.666656 0.1
+-0.248599 0.61249 0.1
+-0.234285 0.558324 0.1
+-0.225 0.535633 0.1
+-0.212707 0.504158 0.1
+-0.1875 0.459596 0.1
+-0.181798 0.449992 0.1
+-0.15 0.407214 0.1
+-0.14022 0.395826 0.1
+-0.1125 0.366617 0.1
+-0.0821907 0.34166 0.1
+-0.075 0.335634 0.1
+-0.0375 0.308921 0.1
+ 0 0.289868 0.1
+ 0.00585343 0.287494 0.1
+ 0.0375 0.272144 0.1
+ 0.075 0.259066 0.1
+ 0.1125 0.25032 0.1
+ 0.15 0.245048 0.1
+ 0.1875 0.242659 0.1
+ 0.225 0.243166 0.1
+ 0.2625 0.246424 0.1
+ 0.3 0.252804 0.1
+ 0.3375 0.262928 0.1
+ 0.375 0.277658 0.1
+ 0.394112 0.287494 0.1
+ 0.4125 0.295495 0.1
+ 0.45 0.316802 0.1
+ 0.482131 0.34166 0.1
+ 0.4875 0.345678 0.1
+ 0.525 0.379095 0.1
+ 0.540366 0.395826 0.1
+ 0.5625 0.422655 0.1
+ 0.582219 0.449992 0.1
+ 0.6 0.481159 0.1
+
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.pdf b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.pdf
index 027e8106b63..0ae6430c65b 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.pdf
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.tex
index 42a058d40a7..7830fd342ff 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstable.tex
@@ -1424,39 +1424,64 @@ The parameters can be customized using the optional integer argument(s): if $\te
\end{keylist}
-\begin{keylist}{/pgf/number format/relative=\meta{exponent base 10}}
+\begin{keylist}{/pgf/number format/relative*=\meta{exponent base 10}}
Configures |\pgfmathprintnumber| to format numbers relative to an order of magnitude, $10^r$, where $r$ is an integer number.
- The motivation is to provide a unified format for a \emph{sequence} of numbers:
+ This key addresses different use-cases.
+
+ \paragraph{First use-case:} provide a unified format for a \emph{sequence} of numbers. Consider the following test:
\begin{codeexample}[]
-\pgfkeys{/pgf/number format/relative={1}}
+\pgfkeys{/pgf/number format/relative*={1}}
\pgfmathprintnumber{6.42e-16}\hspace{1em}
\pgfmathprintnumber{1.2}\hspace{1em}
\pgfmathprintnumber{6}\hspace{1em}
\pgfmathprintnumber{20.6}\hspace{1em}
\pgfmathprintnumber{87}
\end{codeexample}
- \noindent With any other style, the |6.42e-16| would have been formatted as an isolated number. Here, it is rounded to |0| because when viewed relative to $10^3$, it has no significant digits.
+ \noindent With any other style, the |6.42e-16| would have been formatted as an isolated number. Here, it is rounded to |0| because when viewed relative to $10^1$ (the exponent $1$ is the argument for |relative|), it has no significant digits.
\begin{codeexample}[]
-\pgfkeys{/pgf/number format/relative={2}}
+\pgfkeys{/pgf/number format/relative*={2}}
\pgfmathprintnumber{123.345}\hspace{1em}
\pgfmathprintnumber{0.0012}\hspace{1em}
\pgfmathprintnumber{0.0014}\hspace{1em}
\end{codeexample}
- Here, it applies the initial |precision=2| to |123.345| -- relative to $100$. Two significant digits of |123.345| relative to $100$ are |123|. Similarly, the other two numbers are |0| compared to $100$ using the given |precision|.
+ \noindent The example above applies the initial |precision=2| to |123.345| -- relative to $100$. Two significant digits of |123.345| relative to $100$ are |123|. Note that the ``$2$ significant digits of |123.345|'' translates to ``round |1.2345| to $2$ digits'', which would yield |1.2300|. Similarly, the other two numbers are |0| compared to $100$ using the given |precision|.
\begin{codeexample}[]
-\pgfkeys{/pgf/number format/relative={-3}}
+\pgfkeys{/pgf/number format/relative*={-3}}
\pgfmathprintnumber{123.345}\hspace{1em}
\pgfmathprintnumber{0.0012}\hspace{1em}
\pgfmathprintnumber{0.0014}\hspace{1em}
\end{codeexample}
+ \paragraph{Second use-case:} improve rounding in the presence of \emph{inaccurate} numbers. Let us suppose that some limited-precision arithmetics resulted in the result |123456999| (like the |fpu| of \pgfname). You know that its precision is about five or six significant digits. And you want to provide a fixed point output. In this case, the trailing digits |....999| are a numerical artifact due to the limited precision. Use |relative*=3,precision=0| to eliminate the artifacts:
+\begin{codeexample}[]
+\pgfkeys{/pgf/number format/.cd,relative*={3},precision=0}
+\pgfmathprintnumber{123456999}\hspace{1em}
+\pgfmathprintnumber{123456999.12}
+\end{codeexample}
+\noindent Here, |precision=0| means that we inspect |123456.999| and round that number to $0$ digits. Finally, we move the period back to its initial position. Adding |relative style=fixed| results in fixed point output format:
+\begin{codeexample}[]
+\pgfkeys{/pgf/number format/.cd,relative*={3},precision=0,relative style=fixed}
+\pgfmathprintnumber{123456999}\hspace{1em}
+\pgfmathprintnumber{123456999.12}
+\end{codeexample}
+ \noindent Note that there is another alternative for this use-case which is discussed later: the |fixed relative| style.
+\begin{codeexample}[]
+\pgfkeys{/pgf/number format/.cd,fixed relative,precision=6}
+\pgfmathprintnumber{123456999}\hspace{1em}
+\pgfmathprintnumber{123456999.12}
+\end{codeexample}
+
+ You might wonder why there is an asterisk in the key's name. The short answer is: there is also a \declareandlabel{/pgf/number format/relative} number printer which does unexpected things. The key |relative*| repairs this. Existing code will still use the old behavior.
- When applied to a number $x = \pm m \cdot 10^e$, the |relative=|$r$ method actually rounds $x / 10^r$ to the desired precision. More precisely: if $e-r>0$, it only rounds the mantissa of $x/10^r$ to the desired precision, otherwise it rounds the complete number to the desired precision. Afterwards, it disables rounding, multiplies the intermediate result by $10^r$, and evaluates the style |every relative| to actually format the result.
+
+ Technically, the key works as follows: as already explained above, |relative*=3| key applied to |123456999.12| moves the period by three positions and analyzes |123456.99912|. Mathematically speaking, we are given a number $x = \pm m \cdot 10^e$ and we attempt to apply |relative*=|$r$. The method then rounds $x / 10^r$ to |precision| digits. Afterwards, it multiplies the result by $10^r$ and typesets it.
+
\end{keylist}
+
\begin{stylekey}{/pgf/number format/every relative}
A style which configures how the |relative| method finally displays its results.
@@ -1470,6 +1495,10 @@ The parameters can be customized using the optional integer argument(s): if $\te
Although supported, I discourage from using |fixed zerofill| or |sci zerofill| in this context -- it may lead to a suggestion of higher precision than is actually used (because |fixed zerofill| might simply add |.00| although there was a different information before |relative| rounded the result).
\end{stylekey}
+\begin{key}{/pgf/number format/relative style=\marg{options}}
+ The same as |every relative/.append style=|\marg{options}.
+\end{key}
+
\begin{keylist}{/pgf/number format/fixed relative}
Configures |\pgfmathprintnumber| to format numbers in a similar way to the |fixed| style, but the |precision| is interpreted relatively to the number's exponent.
@@ -1490,6 +1519,8 @@ The parameters can be customized using the optional integer argument(s): if $\te
Use |fixed relative| if you want |fixed| and if you know that only the first $n$ digits are correct. Use |sci| if you need a scientific display style and only the first $n$ digits are correct.
Note that |fixed relative| ignores the |fixed zerofill| flag.
+
+ See also the |relative*| key. Note that the |relative=|\marg{exponent} key explicitly moves the period to some designated position before it attempts to round the number. Afterwards, it ``rounds from the right'', i.e.\ it rounds to that explicitly chosen digit position. In contrast to that, |fixed relative| ``rounds from the left'': it takes the \emph{first} non-zero digit, temporarily places the period after this digit, and rounds that number. The rounding style |fixed| leaves the period where it is, and rounds everything behind that digit. The |sci| style is similar to |fixed relative|.
\end{keylist}
\begin{key}{/pgf/number format/int detect}
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.pdf b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.pdf
index 8c4aab7bc8b..1372bc88f1f 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.pdf
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.tex b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.tex
index 731e28ed67d..6ce2820e648 100644
--- a/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.tex
+++ b/Master/texmf-dist/doc/latex/pgfplots/pgfplotstodo.tex
@@ -29,6 +29,67 @@
\maketitle
\tableofcontents
+\section{Release TODO}
+
+\begin{itemize}
+ \item run tests against pgf CVS
+ \item run tests against latest pgf stable
+ \item finish manual
+ \begin{itemize}
+ \item fix warnings
+ \item browse through it
+ \end{itemize}
+ \item update ChangeLog with "RELEASED VERSION XXX" and update README
+ \item assign git tag for new version
+ \item ran \verb|scripts/pgfplots/pgfplotsrevisionfile.sh| to assign the package versions based on tag
+ \item recompile manual (to pick up the correct version)
+ \item run primitive example files
+ \item run context tests (basically compile and browse-through. There are no assertions.)
+ \begin{itemize}
+ \item run against pgf CVS
+ \item run against latest pgf stable
+ \end{itemize}
+ \item adjust the release makefile to get correct file names
+ \item assemble TDS.zip and CTAN.zip (using the release makefile)
+ \item upload to CTAN.
+\begin{verbatim}
+Submitted to host
+ dante.ctan.org
+Your name and email
+ Christian Feuersänger <cfeuersaenger@users.sourceforge.net>
+Filename
+ pgfplots_1.6.1.ctan.flatdir.zip
+Version number
+ 1.6.1
+Location on CTAN
+ /graphics/pgf/contrib/pgfplots/
+Summary description
+ pgfplots - Create normal/logarithmic plots in two and three dimensions for LaTeX.
+License type
+ gpl
+Announcement text
+ ...
+Notes to maintainers
+ As requested, I created a flat directory structure containing all files (i.e. it contains latex style files, context package files, plain tex include files, generic implementation files, and LUA code all in the same directory). I will also upload a TDS zip file to /install/graphics/pgf/contrib/pgfplots. Thanks for maintaining CTAN!
+\end{verbatim}
+ \item release to sourceforge. Make sure to update the README at top-level.
+ \item upload to sourceforge web space (using the release makefile)
+ \begin{itemize}
+ \item \verb|make -f pgfplots/scripts/pgfplots/Makefile.pgfplots_release_sourceforge |
+
+ this creates the release files
+ \item \verb|make -f pgfplots/scripts/pgfplots/Makefile.pgfplots_release_sourceforge uploaddist|
+
+ this copies the manuals
+ \item \verb|make -f pgfplots/scripts/pgfplots/Makefile.pgfplots_release_sourceforge upload|
+
+ this updates the unstable
+
+ \item if necessary, update \verb|scp://cfeuersaenger,pgfplots@web.sourceforge.net/htdocs/index.php|
+ \end{itemize}
+ \item send announcement to \verb|pgfplots-features@lists.sourceforge.net|
+\end{itemize}
+
\section{Tests}
ATTENTION: fix the buggy styles for axis lines=center in 3d
@@ -37,13 +98,13 @@ last test verifications:
\begin{tabular}{lllll}
& pgf CVS & pgf 2.10 & pgf 2.00 &pgf 2.00+compat=default\\
-pgfplotstests & for 1.6 & for 1.6 & for 1.4 &2009-12-30 \\
-manual & for 1.6 & for 1.6 & for 1.5 & \\
-pgfplotstable.pdf & for 1.6 & for 1.6 & for 1.5\\
+pgfplotstests & for 1.7 & for 1.7 & for 1.4 &2009-12-30 \\
+manual & for 1.7 & for 1.6 & for 1.5 & \\
+pgfplotstable.pdf & for 1.7 & for 1.6 & for 1.5\\
example latex & for 1.6 & for 1.5 & 2009-12-30 \\
example context & for 1.6 & for 1.5.1 & 2009-12-30 \\
example plain tex & for 1.6 & for 1.5.1 & 2009-12-30 \\
-tests context & for 1.6 & for 1.5.1\\
+tests context & for 1.7 & for 1.7\\
\end{tabular}
\section{Documentation todo}
@@ -815,6 +876,39 @@ Thanks!
\begin{bugtracker}
\begin{bug}
+ \verb|\closedcycle| does not work together with jumps / interrupted plots
+\end{bug}
+
+\begin{bug}
+ auto tick label assignment can sometimes produce strange results:
+
+\begin{minimal}
+\documentclass{article}
+\usepackage{pgfplots}
+\pgfplotsset{compat=1.6.1}
+
+\begin{document}
+
+\begin{tikzpicture}
+\begin{axis}[%
+scale only axis,
+xmin=0, xmax=0.02,
+ymin=-1, ymax=1]
+\end{axis}
+\end{tikzpicture}%
+\end{document}
+\end{minimal}
+\end{bug}
+
+
+
+\begin{bug}
+ pgfplots, nodes, and remember picture, and cell picture=true fails.
+
+ \url{http://tex.stackexchange.com/questions/72781/problem-tikz-pgfplots-and-external-coordinates-using-overlay/72804#72804}
+\end{bug}
+
+\begin{bug}
new layered graphics stuff: the style changes of the layer config are read too later; it is impossible to overwrite them within the same axis (for example using \verb|set layers,tick style={on layer=...}|)
\end{bug}
diff --git a/Master/texmf-dist/source/context/third/pgfplots/pgfplotstests.tar.bz2 b/Master/texmf-dist/source/context/third/pgfplots/pgfplotstests.tar.bz2
index fcc9515496f..fa2233e4521 100644
--- a/Master/texmf-dist/source/context/third/pgfplots/pgfplotstests.tar.bz2
+++ b/Master/texmf-dist/source/context/third/pgfplots/pgfplotstests.tar.bz2
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pgfplots/pgfplotstests.tar.bz2 b/Master/texmf-dist/source/latex/pgfplots/pgfplotstests.tar.bz2
index aa64b8de71f..30b4b742fbd 100644
--- a/Master/texmf-dist/source/latex/pgfplots/pgfplotstests.tar.bz2
+++ b/Master/texmf-dist/source/latex/pgfplots/pgfplotstests.tar.bz2
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.patchplots.code.tex b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.patchplots.code.tex
index 79990ec1fb8..933f48854d2 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.patchplots.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarypgfplots.patchplots.code.tex
@@ -56,9 +56,18 @@
+% A quadratic spline in the ordering
+%
+% <left> <right> <middle>
+%
+% where <left> is the function value at the left end of the spline
+% segmment, <right> the function value at the right end, and <middle>
+% the function value in the middle of the spline segment.
\pgfplotsdeclarepatchclass{quadratic spline}{%
allow matrix=0,
uses view depth=0,
+ get dimension=1,
+ supports global path=1,
new=\def\pgfplotspatchclass@qspline@no{A},
set next vertex={%
% EXPECTED ORDERING: first 2 corners, then 1 mid nodes
@@ -72,6 +81,31 @@
\expandafter\let\expandafter\pgfplotspatchclass@qspline@no\csname pgfpptchindexnext@\pgfplotspatchclass@qspline@no\endcsname
\fi
},
+ if current point can be first last={%
+ \pgfplots@loc@tmptrue
+ \if A\pgfplotspatchclass@qspline@no
+ % Ah - the current point is the 'C' point, i.e. the
+ % control point (we have advanced the '@no' counter)
+ \pgfplots@loc@tmpfalse
+ \fi
+ \ifpgfplots@loc@tmp
+ #1\relax%
+ \else
+ #2\relax
+ \fi
+ },
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@qspline@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@qspline@A\endvertex #1%
@@ -93,7 +127,7 @@
% in does the same.
\def\pgfplots@edge{%
\ifx\pgfplotspatchclass@qspline@A\PA
- \pgfpathmoveto{\expandafter\pgfplotspointpatchvertex\PA\endvertex}%
+ \pgfplotsplothandlermesh@pathmoveto{\expandafter\pgfplotspointpatchvertex\PA\endvertex}%
\fi
\pgfpathcurveto {%
\pgfpointadd
@@ -111,6 +145,7 @@
\let\PB=\pgfplotspatchclass@qspline@C
\let\PC=\pgfplotspatchclass@qspline@B
\pgfplots@edge
+ \pgfplotsplothandlermesh@setlastpoint{\expandafter\pgfplotspointpatchvertex\PC\endvertex}%
\endgroup
},
triangulate class=line,
@@ -156,6 +191,8 @@
\pgfplotsdeclarepatchclass{cubic spline}{%
allow matrix=0,
uses view depth=0,
+ get dimension=1,
+ supports global path=1,
new=\def\pgfplotspatchclass@cspline@no{A},
set next vertex={%
% EXPECTED ORDERING: first 2 corners, then 1 mid nodes
@@ -169,6 +206,39 @@
\expandafter\let\expandafter\pgfplotspatchclass@cspline@no\csname pgfpptchindexnext@\pgfplotspatchclass@cspline@no\endcsname
\fi
},
+ if current point can be first last={%
+ \pgfplots@loc@tmpfalse
+ \if B\pgfplotspatchclass@cspline@no
+ % Ah - the current point is the 'A' point (we have
+ % advanced the '@no' counter)
+ \pgfplots@loc@tmptrue
+ \fi
+ \if C\pgfplotspatchclass@cspline@no
+ % Ah - the current point is the 'B' point (we have
+ % advanced the '@no' counter)
+ \pgfplots@loc@tmptrue
+ \fi
+ \ifpgfplots@loc@tmp
+ #1\relax%
+ \else
+ #2\relax
+ \fi
+ },
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.3333333}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.6666666}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@A\endvertex #1%
@@ -178,32 +248,13 @@
},
fill path={%
% Draw the patch boundary using a bezier curve.
- \pgfpathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@A\endvertex}%
- % switch basis from lagrange to bezier (see formular on top of
- % this file)
- \pgfpathcurveto {%
- \begingroup
- \pgfplotspatchvertexaccumstart
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@A\times{-0.833333}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@C\times{3}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@D\times{-1.5}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@B\times{0.3333333}%
- \pgfplotspatchvertexfinish\pgfplots@loc@TMPa
- \expandafter\pgfplotspointpatchvertex\pgfplots@loc@TMPa\endvertex
- \endgroup
- }{%
- \begingroup
- \pgfplotspatchvertexaccumstart
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@A\times{0.333333}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@C\times{-1.5}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@D\times{3}%
- \expandafter\pgfplotspatchvertexaddXY\pgfplotspatchclass@cspline@B\times{-0.833333}%
- \pgfplotspatchvertexfinish\pgfplots@loc@TMPa
- \expandafter\pgfplotspointpatchvertex\pgfplots@loc@TMPa\endvertex
- \endgroup
- }{%
- \expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@B\endvertex
- }%
+ \pgfplotsplothandlermesh@pathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@A\endvertex}%
+ \pgfplotspathcubicfrominterpolation
+ {\pgfplotspatchclass@cspline@A}%
+ {\pgfplotspatchclass@cspline@C}%
+ {\pgfplotspatchclass@cspline@D}%
+ {\pgfplotspatchclass@cspline@B}%
+ \pgfplotsplothandlermesh@setlastpoint{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@B\endvertex}%
},
triangulate class=line,
triangulate={%
@@ -299,6 +350,34 @@
get num vertices=4,
}%
+\def\pgfplotspathcubicfrominterpolation#1#2#3#4{%
+ % switch basis from lagrange to bezier (see formular on top of
+ % this file)
+ \pgfpathcurveto {%
+ \begingroup
+ \pgfplotspatchvertexaccumstart
+ \expandafter\pgfplotspatchvertexaddXY#1\times{-0.833333}%
+ \expandafter\pgfplotspatchvertexaddXY#2\times{3}%
+ \expandafter\pgfplotspatchvertexaddXY#3\times{-1.5}%
+ \expandafter\pgfplotspatchvertexaddXY#4\times{0.3333333}%
+ \pgfplotspatchvertexfinish\pgfplots@loc@TMPa
+ \expandafter\pgfplotspointpatchvertex\pgfplots@loc@TMPa\endvertex
+ \endgroup
+ }{%
+ \begingroup
+ \pgfplotspatchvertexaccumstart
+ \expandafter\pgfplotspatchvertexaddXY#1\times{0.333333}%
+ \expandafter\pgfplotspatchvertexaddXY#2\times{-1.5}%
+ \expandafter\pgfplotspatchvertexaddXY#3\times{3}%
+ \expandafter\pgfplotspatchvertexaddXY#4\times{-0.833333}%
+ \pgfplotspatchvertexfinish\pgfplots@loc@TMPa
+ \expandafter\pgfplotspointpatchvertex\pgfplots@loc@TMPa\endvertex
+ \endgroup
+ }{%
+ \expandafter\pgfplotspointpatchvertex#4\endvertex
+ }%
+}%
+
% make a linearized sequence around the edge of the quad.triangle.
% note the ordering: first 3 corners, then 3 mid nodes:
\def\pgfplots@qtri@next@A{D}%
@@ -342,6 +421,50 @@
\expandafter\let\expandafter\pgfplotspatchclass@qtri@no\csname pgfpptchindexnext@\pgfplotspatchclass@qtri@no\endcsname
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ %
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \pgfplotspatchready
+ %
+ %
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ %
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@qtri@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@qtri@A\endvertex #1%
@@ -797,6 +920,21 @@
\pgfplotspatchready%
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@rect@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@rect@A\endvertex #1%
@@ -1145,6 +1283,36 @@
\expandafter\let\expandafter\pgfplotspatchclass@biquad@no\csname pgfpptchindexnext@\pgfplotspatchclass@biquad@no\endcsname
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \def\pgfplotspatchclassx{0.5}%
+ \def\pgfplotspatchclassy{0.5}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@biquad@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@biquad@A\endvertex #1%
@@ -1833,3 +2001,489 @@
get num vertices=16,
get num cdata vertices=4,
}%
+
+% A bicubic patch with 16 points.
+%
+% It expects points in the order (i.e. in matrix ordering, row-wise):
+%
+% AD BD CD DD
+% AC BC CC DC
+% AB BB CB DB
+% AA BA CA DA
+%
+\pgfplotsdeclarepatchclass{bicubic}{%
+ allow matrix=0,
+ new=\def\pgfplotspatchclass@bicubic@row{A}\def\pgfplotspatchclass@bicubic@col{A},
+ set next vertex={%
+ % defines \pgfplotspatchclass@bicubic@AA ... \pgfplotspatchclass@bicubic@DD (16 points)
+ \expandafter\edef\csname pgfplotspatchclass@bicubic@\pgfplotspatchclass@bicubic@row\pgfplotspatchclass@bicubic@col\endcsname{#1}%
+ \if D\pgfplotspatchclass@bicubic@row
+ \def\pgfplotspatchclass@bicubic@row{A}%
+ \if D\pgfplotspatchclass@bicubic@col
+ \def\pgfplotspatchclass@bicubic@col{A}%
+ \pgfplotspatchready
+ \else
+ \expandafter\let\expandafter\pgfplotspatchclass@bicubic@col\csname pgfpptchindexnext@\pgfplotspatchclass@bicubic@col\endcsname
+ \fi
+ \else
+ \expandafter\let\expandafter\pgfplotspatchclass@bicubic@row\csname pgfpptchindexnext@\pgfplotspatchclass@bicubic@row\endcsname
+ \fi
+ },
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.333333333}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0.666666666}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ %
+ %
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0.333333333}%
+ #1%
+ \def\pgfplotspatchclassx{0.333333333}%
+ \def\pgfplotspatchclassy{0.333333333}%
+ #1%
+ \def\pgfplotspatchclassx{0.666666666}%
+ \def\pgfplotspatchclassy{0.333333333}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0.333333333}%
+ #1%
+ %
+ %
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0.666666666}%
+ #1%
+ \def\pgfplotspatchclassx{0.333333333}%
+ \def\pgfplotspatchclassy{0.666666666}%
+ #1%
+ \def\pgfplotspatchclassx{0.666666666}%
+ \def\pgfplotspatchclassy{0.666666666}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0.666666666}%
+ #1%
+ %
+ %
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0.333333333}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0.666666666}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ %
+ %
+ %
+ \pgfplotspatchready
+ },%
+ first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AA\endvertex,
+ foreach vertex={%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@BA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@CA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AB\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@BB\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@CB\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DB\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AC\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@BC\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@CC\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DC\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AD\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@BD\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@CD\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DD\endvertex #1%
+ },
+ foreach cdata vertex={%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DA\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@DD\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@bicubic@AD\endvertex #1%
+ },
+ fill path={%
+ % Visualize the patch boundary using four bezier curves.
+ %
+ % This involves a change from Lagrange to bezier
+ % representation of the boundary curves.
+ %
+ \pgfpathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@bicubic@AA\endvertex}%
+ \pgfplotspathcubicfrominterpolation
+ {\pgfplotspatchclass@bicubic@AA}
+ {\pgfplotspatchclass@bicubic@BA}
+ {\pgfplotspatchclass@bicubic@CA}
+ {\pgfplotspatchclass@bicubic@DA}
+ \pgfplotspathcubicfrominterpolation
+ {\pgfplotspatchclass@bicubic@DA}
+ {\pgfplotspatchclass@bicubic@DB}
+ {\pgfplotspatchclass@bicubic@DC}
+ {\pgfplotspatchclass@bicubic@DD}
+ \pgfplotspathcubicfrominterpolation
+ {\pgfplotspatchclass@bicubic@DD}
+ {\pgfplotspatchclass@bicubic@CD}
+ {\pgfplotspatchclass@bicubic@BD}
+ {\pgfplotspatchclass@bicubic@AD}
+ \pgfplotspathcubicfrominterpolation
+ {\pgfplotspatchclass@bicubic@AD}
+ {\pgfplotspatchclass@bicubic@AC}
+ {\pgfplotspatchclass@bicubic@AB}
+ {\pgfplotspatchclass@bicubic@AA}
+ \pgfpathclose
+ },
+ stream to shader={%
+ \begingroup
+ %
+ % AD BD CD DD
+ % AC BC CC DC
+ % AB BB CB DB
+ % AA BA CA DA
+ %
+ % STEP 1: ensure that the patch's coordinates are streamed in
+ % a sequence which is compatible with the DEPTH of the
+ % corners.
+ %
+ % we use
+ % \pgfplotspatchclass@rect@to@coonspatch@findshadingsequence@for@depth
+ % which works for bilinear, biquadratic, and bicubic
+ %
+ % define helper macros which are input for
+ % \pgfplotspatchclass@rect@to@coonspatch@findshadingsequence@for@depth:
+ \let\pgfplotspatchclass@rect@A=\pgfplotspatchclass@bicubic@AA
+ \let\pgfplotspatchclass@rect@B=\pgfplotspatchclass@bicubic@DA
+ \let\pgfplotspatchclass@rect@C=\pgfplotspatchclass@bicubic@DD
+ \let\pgfplotspatchclass@rect@D=\pgfplotspatchclass@bicubic@AD
+ \pgfplotspatchclass@rect@to@coonspatch@findshadingsequence@for@depth
+ {pgfplotspatchclass@rect@}{\Pcur}{\Pnextseq}%
+ %
+ %\message{using \Pcur\space(set = \Pnextseq)^^J}%
+ % now, translate the result into our matrix form.
+ % This means to (a) identify the FIRST point which needs to be
+ % streamed (it is stored in \Pcur as 'A', 'B', 'C', or 'D')
+ % and (b) keep in mind that we have to take care of the
+ % sequence in which points are streamed ("forward" means to
+ % rotate the matrix elements and "backward" means to transpose
+ % the "forward" result).
+ %
+ \if A\Pcur
+ % Ah - the point "AA" needs to be streamed as first.
+ %
+ % Well, this is simple: take the matrix as-is!
+ % simply copy 1:1
+ \let\P@AA=\pgfplotspatchclass@bicubic@AA
+ \let\P@BA=\pgfplotspatchclass@bicubic@BA
+ \let\P@CA=\pgfplotspatchclass@bicubic@CA
+ \let\P@DA=\pgfplotspatchclass@bicubic@DA
+ \let\P@AB=\pgfplotspatchclass@bicubic@AB
+ \let\P@BB=\pgfplotspatchclass@bicubic@BB
+ \let\P@CB=\pgfplotspatchclass@bicubic@CB
+ \let\P@DB=\pgfplotspatchclass@bicubic@DB
+ \let\P@AC=\pgfplotspatchclass@bicubic@AC
+ \let\P@BC=\pgfplotspatchclass@bicubic@BC
+ \let\P@CC=\pgfplotspatchclass@bicubic@CC
+ \let\P@DC=\pgfplotspatchclass@bicubic@DC
+ \let\P@AD=\pgfplotspatchclass@bicubic@AD
+ \let\P@BD=\pgfplotspatchclass@bicubic@BD
+ \let\P@CD=\pgfplotspatchclass@bicubic@CD
+ \let\P@DD=\pgfplotspatchclass@bicubic@DD
+ \fi
+ \if B\Pcur
+ % the "DA" point needs to be streamed as first.
+ %
+ % Reorder
+ % AD BD CD DD
+ % AC BC CC DC
+ % AB BB CB DB
+ % AA BA CA DA
+ % to
+ % AA AB AC AD
+ % BA BB BC BD
+ % CA CB CC CD
+ % DA DB DC DD
+ %
+ \let\P@AA=\pgfplotspatchclass@bicubic@DA
+ \let\P@BA=\pgfplotspatchclass@bicubic@DB
+ \let\P@CA=\pgfplotspatchclass@bicubic@DC
+ \let\P@DA=\pgfplotspatchclass@bicubic@DD
+ \let\P@AB=\pgfplotspatchclass@bicubic@CA
+ \let\P@BB=\pgfplotspatchclass@bicubic@CB
+ \let\P@CB=\pgfplotspatchclass@bicubic@CC
+ \let\P@DB=\pgfplotspatchclass@bicubic@CD
+ \let\P@AC=\pgfplotspatchclass@bicubic@BA
+ \let\P@BC=\pgfplotspatchclass@bicubic@BB
+ \let\P@CC=\pgfplotspatchclass@bicubic@BC
+ \let\P@DC=\pgfplotspatchclass@bicubic@BD
+ \let\P@AD=\pgfplotspatchclass@bicubic@AA
+ \let\P@BD=\pgfplotspatchclass@bicubic@AB
+ \let\P@CD=\pgfplotspatchclass@bicubic@AC
+ \let\P@DD=\pgfplotspatchclass@bicubic@AD
+ \fi
+ \if C\Pcur
+ % the "DD" point needs to be streamed as first.
+ %
+ % Reorder
+ % AD BD CD DD
+ % AC BC CC DC
+ % AB BB CB DB
+ % AA BA CA DA
+ % to
+ % DA CA BA AA
+ % DB CB BB AB
+ % DC CC BC AC
+ % DD CD BD AD
+ %
+ \let\P@AA=\pgfplotspatchclass@bicubic@DD
+ \let\P@BA=\pgfplotspatchclass@bicubic@CD
+ \let\P@CA=\pgfplotspatchclass@bicubic@BD
+ \let\P@DA=\pgfplotspatchclass@bicubic@AD
+ \let\P@AB=\pgfplotspatchclass@bicubic@DC
+ \let\P@BB=\pgfplotspatchclass@bicubic@CC
+ \let\P@CB=\pgfplotspatchclass@bicubic@BC
+ \let\P@DB=\pgfplotspatchclass@bicubic@AC
+ \let\P@AC=\pgfplotspatchclass@bicubic@DB
+ \let\P@BC=\pgfplotspatchclass@bicubic@CB
+ \let\P@CC=\pgfplotspatchclass@bicubic@BB
+ \let\P@DC=\pgfplotspatchclass@bicubic@AB
+ \let\P@AD=\pgfplotspatchclass@bicubic@DA
+ \let\P@BD=\pgfplotspatchclass@bicubic@CA
+ \let\P@CD=\pgfplotspatchclass@bicubic@BA
+ \let\P@DD=\pgfplotspatchclass@bicubic@AA
+ \fi
+ \if D\Pcur
+ % the "AD" point needs to be streamed as first.
+ %
+ % Reorder
+ % AD BD CD DD
+ % AC BC CC DC
+ % AB BB CB DB
+ % AA BA CA DA
+ % to
+ % DD DC DB DA
+ % CD CC CB CA
+ % BD BC BB BA
+ % AD AC AB AA
+ %
+ \let\P@AA=\pgfplotspatchclass@bicubic@AD
+ \let\P@BA=\pgfplotspatchclass@bicubic@AC
+ \let\P@CA=\pgfplotspatchclass@bicubic@AB
+ \let\P@DA=\pgfplotspatchclass@bicubic@AA
+ \let\P@AB=\pgfplotspatchclass@bicubic@BD
+ \let\P@BB=\pgfplotspatchclass@bicubic@BC
+ \let\P@CB=\pgfplotspatchclass@bicubic@BB
+ \let\P@DB=\pgfplotspatchclass@bicubic@BA
+ \let\P@AC=\pgfplotspatchclass@bicubic@CD
+ \let\P@BC=\pgfplotspatchclass@bicubic@CC
+ \let\P@CC=\pgfplotspatchclass@bicubic@CB
+ \let\P@DC=\pgfplotspatchclass@bicubic@CA
+ \let\P@AD=\pgfplotspatchclass@bicubic@DD
+ \let\P@BD=\pgfplotspatchclass@bicubic@DC
+ \let\P@CD=\pgfplotspatchclass@bicubic@DB
+ \let\P@DD=\pgfplotspatchclass@bicubic@DA
+ \fi
+ \ifx\Pnextseq\pgfutil@empty
+ \else
+ % reverse the ordering. This means to transpose the
+ % matrix:
+ \pgfplotspatchclass@bicubic@transpose
+ \fi
+ %
+ % Step: convert to tensor bezier representation.
+ %
+ % Converting a 2d tensor product lagrangian interpoland to a
+ % 2d tensor product bezier interpoland can be achieved by
+ % means of 1d algorithms along LINES in the matrix.
+ %
+ % The underlying proof for this is related to the tensor
+ % product form: the U and V coordinates are orthogonal to each
+ % other, so we can redistribute all intermediate results. (I
+ % do not have the real proof, so this hand-waving argument has
+ % to be enough). I verified its results experimentally.
+ %
+ % Note that the underlying 1d operation is the same as for
+ % 'patch type=cubic spline' . We only need to apply it to all
+ % lines in U direction and afterwards to all lines in V
+ % direction.
+ %
+ \def\pgfplotspatchvertexaddXY@expanded##1\times{%
+ \edef\pgfplots@loc@TMPa{##1}%
+ \expandafter\pgfplotspatchvertexaddXY\pgfplots@loc@TMPa\times
+ }%
+ %
+ % this macro operates on \pgfplots@line{[ABCD]}, see below:
+ \def\pgfplots@apply@to@line{%
+ \pgfplotspatchvertexaccumstart
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{A}\times{-0.833333}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{B}\times{3}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{C}\times{-1.5}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{D}\times{0.3333333}%
+ \pgfplotspatchvertexfinish\pgfplots@controlpoint@A
+ %
+ \pgfplotspatchvertexaccumstart
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{A}\times{0.333333}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{B}\times{-1.5}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{C}\times{3}%
+ \pgfplotspatchvertexaddXY@expanded\pgfplots@line{D}\times{-0.833333}%
+ \pgfplotspatchvertexfinish\pgfplots@controlpoint@B
+ %
+ \expandafter\expandafter\expandafter\let\pgfplots@line{B}=\pgfplots@controlpoint@A
+ \expandafter\expandafter\expandafter\let\pgfplots@line{C}=\pgfplots@controlpoint@B
+ }%
+ %
+ \def\pgfplots@line##1{\csname P@##1A\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@##1B\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@##1C\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@##1D\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ %
+ \def\pgfplots@line##1{\csname P@A##1\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@B##1\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@C##1\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ \def\pgfplots@line##1{\csname P@D##1\endcsname}%
+ \pgfplots@apply@to@line
+ %
+ % OK. The tensor product representation is READY.
+ %
+ % Stream it to the shader. Note that the shader has a
+ % DIFFERENT ordering; it expects points in the cyclic ordering
+ %
+ % AA BA CA DA DB DC DD CD BD AD AC AB BB CB CC BC
+ %
+ % note furthermore that only the corners have "point meta" in
+ % this shading :-(
+ %
+ \expandafter\pgfplotspatchvertex\P@AA\endvertex
+ \let\pgfplots@current@point@meta=\pgfplotspatchvertexmeta
+ \pgfplotsaxisvisphasetransformpointmeta
+ \pgfplotslibrarysurfstreamcoord{\pgfqpoint\pgfplotspatchvertexx\pgfplotspatchvertexy}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@BA\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@CA\endvertex}{\pgfplotspointmetatransformed}%
+ \expandafter\pgfplotspatchvertex\P@DA\endvertex
+ \let\pgfplots@current@point@meta=\pgfplotspatchvertexmeta
+ \pgfplotsaxisvisphasetransformpointmeta
+ \pgfplotslibrarysurfstreamcoord{\pgfqpoint\pgfplotspatchvertexx\pgfplotspatchvertexy}{\pgfplotspointmetatransformed}%
+ %
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@DB\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@DC\endvertex}{\pgfplotspointmetatransformed}%
+ \expandafter\pgfplotspatchvertex\P@DD\endvertex
+ \let\pgfplots@current@point@meta=\pgfplotspatchvertexmeta
+ \pgfplotsaxisvisphasetransformpointmeta
+ \pgfplotslibrarysurfstreamcoord{\pgfqpoint\pgfplotspatchvertexx\pgfplotspatchvertexy}{\pgfplotspointmetatransformed}%
+ %
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@CD\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@BD\endvertex}{\pgfplotspointmetatransformed}%
+ \expandafter\pgfplotspatchvertex\P@AD\endvertex
+ \let\pgfplots@current@point@meta=\pgfplotspatchvertexmeta
+ \pgfplotsaxisvisphasetransformpointmeta
+ \pgfplotslibrarysurfstreamcoord{\pgfqpoint\pgfplotspatchvertexx\pgfplotspatchvertexy}{\pgfplotspointmetatransformed}%
+ %
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@AC\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@AB\endvertex}{\pgfplotspointmetatransformed}%
+ %
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@BB\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@CB\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@CC\endvertex}{\pgfplotspointmetatransformed}%
+ \pgfplotslibrarysurfstreamcoord{\expandafter\pgfplotspointpatchvertex\P@BC\endvertex}{\pgfplotspointmetatransformed}%
+ \endgroup
+ },
+ triangulate={%
+ \let\pgfplotsplothandlermesh@patchclass@=\pgfplotsplothandlermesh@patchclass
+ \def\pgfplotsplothandlermesh@patchclass{triangle}%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{new}%
+ % Ok. Now create a lot of triangles.
+ %
+ % FIXME: The ordering is not arbitrary (unless z buffer=sort is in effect).
+ %
+ % ##1: the row index of the cell to be triangulated (either A,B,or C)
+ % ##2: the col index of the cell to be triangulated (either A,B,or C)
+ % ##3: the 1. 'set edge visible' value for the first triangle
+ % ##4: the 2. 'set edge visible' value for the first triangle
+ % ##5: the 3. 'set edge visible' value for the first triangle
+ % ##6: the 1. 'set edge visible' value for the second triangle
+ % ##7: the 2. 'set edge visible' value for the second triangle
+ % ##8: the 3. 'set edge visible' value for the second triangle
+ \def\pgfplots@bicubic@triangulate@cell##1##2##3##4##5##6##7##8{%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}0##3%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}1##4%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}2##5%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@##1##2\endcsname}%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@\csname pgfpptchindexnext@##1\endcsname##2\endcsname}%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@\csname pgfpptchindexnext@##1\endcsname \csname pgfpptchindexnext@##2\endcsname\endcsname}%
+ %
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}0##6%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}1##7%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}2##8%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@##1\csname pgfpptchindexnext@##2\endcsname\endcsname}%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@##1##2\endcsname}%
+ \pgfplotsplothandlermesh@setnextvertex{\csname pgfplotspatchclass@bicubic@\csname pgfpptchindexnext@##1\endcsname \csname pgfpptchindexnext@##2\endcsname\endcsname}%
+ %
+ }%
+ %
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}01%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}10%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set edge visible}20%
+ \pgfplots@bicubic@triangulate@cell AA100 100%
+ \pgfplots@bicubic@triangulate@cell BA100 000%
+ \pgfplots@bicubic@triangulate@cell CA110 000%
+ %
+ \pgfplots@bicubic@triangulate@cell AB000 100%
+ \pgfplots@bicubic@triangulate@cell BB000 000%
+ \pgfplots@bicubic@triangulate@cell CB010 000%
+ %
+ \pgfplots@bicubic@triangulate@cell AC000 101%
+ \pgfplots@bicubic@triangulate@cell BC000 001%
+ \pgfplots@bicubic@triangulate@cell CC010 001%
+ \let\pgfplotsplothandlermesh@patchclass=\pgfplotsplothandlermesh@patchclass@
+ },%
+ serialize except vertices=\let\pgfplotsretval\pgfutil@empty,%
+ deserialize except vertices=,
+ get pdf shading type=7,
+ get num vertices=16,
+ get num cdata vertices=4,
+}%
+
+% Transpose a bicubic matrix (4x4).
+%
+% Reorder
+% AD BD CD DD
+% AC BC CC DC
+% AB BB CB DB
+% AA BA CA DA
+% to
+% DA DB DC DD
+% CA CB CC CD
+% BA BB BC BD
+% AA AB AC AD
+\def\pgfplotspatchclass@bicubic@transpose{%
+ \pgfplotsutil@swap\P@AB\P@BA
+ \pgfplotsutil@swap\P@CA\P@AC
+ \pgfplotsutil@swap\P@DA\P@AD
+ \pgfplotsutil@swap\P@CB\P@BC
+ \pgfplotsutil@swap\P@BD\P@DB
+ \pgfplotsutil@swap\P@DC\P@CD
+}
+\endinput
diff --git a/Master/texmf-dist/scripts/lua/pgfplots/pgfplots.lua b/Master/texmf-dist/tex/generic/pgfplots/lua/pgfplots.lua
index 8242222e8d6..8242222e8d6 100644
--- a/Master/texmf-dist/scripts/lua/pgfplots/pgfplots.lua
+++ b/Master/texmf-dist/tex/generic/pgfplots/lua/pgfplots.lua
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 91677f6e15e..54c29ff4959 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable.code.tex
@@ -58,7 +58,7 @@
% just make sure no-one complaints if manual example are used without
% booktabs loaded:
-\pgfutil@ifundefined{toprule}{%
+\pgfutil@IfUndefined{toprule}{%
\def\toprule{\pgfplots@assert@LaTeX@package@loaded{booktabs}{\string\toprule}}%
\def\midrule{\pgfplots@assert@LaTeX@package@loaded{booktabs}{\string\midrule}}%
\def\bottomrule{\pgfplots@assert@LaTeX@package@loaded{booktabs}{\string\bottomrule}}%
@@ -2955,7 +2955,7 @@
\pgfplotstable@copy@globalbuffers@to{#1}%
}%
-\pgfutil@ifundefined{pgfcalendardatetojulian}{%
+\pgfutil@IfUndefined{pgfcalendardatetojulian}{%
\def\pgfcalendardatetojulian#1#2{\pgfplots@error{Sorry, you need to use \string\usepackage{pgfcalendar} before using date specific methods}}%
}{}%
\endinput
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 48bb178afbc..3c8fde67285 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
@@ -25,7 +25,7 @@
% #2: for normal processing.
\def\pgfplots@ifneedspgfcompabitibilitycode@has@pgf@one@zero@zero#1#2{%
%\pgfkeysifdefined{/pgf/number format/sci precision/.@cmd}{#2}{#1}%
- \pgfutil@ifundefined{pgfplothandlerjumpmarkmid}{#1}{#2}%
+ \pgfutil@ifundefined{pgfmathprintnumber@RELATIVE@choice@roundtofixed}{#1}{#2}%
}%
\let\pgfplots@ifneedspgfcompabitibilitycode=\pgfplots@ifneedspgfcompabitibilitycode@has@pgf@one@zero@zero
@@ -39,8 +39,8 @@
\input pgfplotsoldpgfsupp_pgfmathfloat.code.tex
\input pgfplotsoldpgfsupp_pgflibraryplothandlers.code.tex
\input pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
- \input pgfplotsoldpgfsupp_pgfcorelayers.code.tex
\input pgfplotsoldpgfsupp_pgfcorescopes.code.tex
+ \input pgfplotsoldpgfsupp_pgfcorelayers.code.tex
}%
{%
\pgfplots@iffileexists{pgflibraryfpu.code.tex}{%
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 6a9a4cc2b5a..f9f260b1d7d 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
@@ -8,6 +8,26 @@
}{}%
}
+% check if \endtikzpicture deals with layerlist:
+\expandafter\pgfutil@in@\expandafter\pgf@remember@layerlist@globally\expandafter{\endtikzpicture}%
+\ifpgfutil@in@
+\else
+ \def\endtikzpicture{%
+ \tikz@atend@picture%
+ \global\let\pgf@shift@baseline@smuggle=\pgf@baseline%
+ \global\let\pgf@trimleft@final@smuggle=\pgf@trimleft%
+ \global\let\pgf@trimright@final@smuggle=\pgf@trimright%
+ \global\let\pgf@remember@smuggle=\ifpgfrememberpicturepositiononpage%
+ \pgf@remember@layerlist@globally
+ \endscope%
+ \let\pgf@baseline=\pgf@shift@baseline@smuggle%
+ \let\pgf@trimleft=\pgf@trimleft@final@smuggle%
+ \let\pgf@trimright=\pgf@trimright@final@smuggle%
+ \let\ifpgfrememberpicturepositiononpage=\pgf@remember@smuggle%
+ \pgf@restore@layerlist@from@global
+ \endpgfpicture}
+\fi
+
% ======================================================
% compatibility with PGF 2.0
% ======================================================
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 5ad04db77bb..487856a5a01 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 bd8a45071ee..8379e1d4f1a 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 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 5c9a407b9c6..e2b22b73890 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 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 c933914a9c4..3afa39b2a2d 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
@@ -712,8 +712,6 @@
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6}%
\or
- \pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6}%
- \or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6##7}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6##7##8}%
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 51a3f911a57..cdbb8e0b541 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 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 be3a2179c6b..efb75e10b9c 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 22127f8f1d3..6801918d200 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
@@ -27,7 +27,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.16 2011/12/28 18:51:18 ludewich Exp $
+\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.17 2012/09/11 20:03:46 ludewich Exp $
\newif\ifpgf@plot@started
@@ -395,12 +395,19 @@
\pgfplotyzerolevelstreamconstant{0pt}%
\def\pgfplotbarwidth{\pgfkeysvalueof{/pgf/bar width}}
+\def\pgfplotbarshift{\pgfkeysvalueof{/pgf/bar shift}}
\pgfqkeys{/pgf}{%
bar width/.initial=10pt,
bar shift/.initial=0pt,
bar interval width/.initial=1,
bar interval shift/.initial=0.5,
+ %
+ % hook which is executed right before a new bar is begun.
+ at begin bar/.initial=,
+ % hook which is executed right after a bar path has been finished.
+ % In this context, the bar's path has not been used.
+ at end bar/.initial=,
}
% This handler places a rectangle at each point in the plot stream, a
@@ -422,13 +429,14 @@
\global\let\pgf@plotstreamend=\pgfplotyzerolevelstreamend%
\pgfmathparse{\pgfplotbarwidth}%
\xdef\pgfplotbarwidth@{\pgfmathresult pt}%
- \pgfmathparse{\pgfkeysvalueof{/pgf/bar shift}}%
+ \pgfmathparse{\pgfplotbarshift}%
\xdef\pgfplotbarshift@{\pgfmathresult pt}%
\pgfplotyzerolevelstreamstart
}%
}
\def\pgf@plot@ybar@handler#1{%
+ \pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@y
\expandafter\pgf@xb\pgfplotbarwidth@\relax
@@ -443,6 +451,7 @@
\pgfpathrectangle
{\pgfqpoint{\pgf@xc}{\pgf@yb}}%
{\pgfqpoint{\pgf@xb}{\pgf@ya}}%
+ \pgfkeysvalueof{/pgf/at end bar}%
}
% This handler places a rectangle at each point in the plot stream, a
@@ -464,13 +473,14 @@
\global\let\pgf@plotstreamend=\pgfplotxzerolevelstreamend%
\pgfmathparse{\pgfplotbarwidth}%
\xdef\pgfplotbarwidth@{\pgfmathresult pt}%
- \pgfmathparse{\pgfkeysvalueof{/pgf/bar shift}}%
+ \pgfmathparse{\pgfplotbarshift}%
\xdef\pgfplotbarshift@{\pgfmathresult pt}%
\pgfplotxzerolevelstreamstart
}%
}
\def\pgf@plot@xbar@handler#1{%
+ \pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@x
\expandafter\pgf@xb\pgfplotbarwidth@\relax
@@ -485,6 +495,7 @@
\pgfpathrectangle
{\pgfqpoint{\pgf@yb}{\pgf@xc}}%
{\pgfqpoint{\pgf@ya}{\pgf@xb}}%
+ \pgfkeysvalueof{/pgf/at end bar}%
}
% This handler is a variant of \pgfplothandlerybar which works with
@@ -540,6 +551,7 @@
\global\let\pgf@plotstreampoint=\pgf@plot@ybarinterval@handler%
}
\def\pgf@plot@ybarinterval@handler#1{%
+ \pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@plot@barinterval@bar
\xdef\pgf@plot@barinterval@bar{\the\pgf@y}%
@@ -558,6 +570,7 @@
\pgfpathrectangle
{\pgfqpoint{\pgf@xc}{\pgf@yb}}%
{\pgfqpoint{\pgf@xb}{\pgf@ya}}%
+ \pgfkeysvalueof{/pgf/at end bar}%
}
% Like \pgfplothandlerybarinterval but for xbar.
@@ -581,6 +594,7 @@
\global\let\pgf@plotstreampoint=\pgf@plot@xbarinterval@handler%
}
\def\pgf@plot@xbarinterval@handler#1{%
+ \pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@plot@barinterval@bar
\xdef\pgf@plot@barinterval@bar{\the\pgf@x}%
@@ -599,6 +613,7 @@
\pgfpathrectangle
{\pgfqpoint{\pgf@yb}{\pgf@xc}}%
{\pgfqpoint{\pgf@ya}{\pgf@xb}}%
+ \pgfkeysvalueof{/pgf/at end bar}%
}
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 d553f4c4272..0532c6876b2 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 c9eacad8bf6..d7df866355c 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 51a4122f811..8b0770245c8 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 4a795f89cd5..10aeaa849fb 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
@@ -932,6 +932,11 @@
\let\pgfmathround@@orig=\pgfmathround@
+% 2 = compatible
+% 0 = no
+% 1 = yes
+\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{2}%
+
\newif\ifpgfmathprintnumber@thousand@sep@in@fractional
\pgfkeys{%
/pgf/number format/.is family,
@@ -940,6 +945,10 @@
sci/.code= \pgfmath@set@number@printer{pgfmathprintnumber@SCI},
std/.code= {\pgfmath@set@number@printer{pgfmathprintnumber@STD}\pgfmathprintnumber@STD@setparam{#1}},
std/.default=,%
+ relative round mode/.is choice,
+ relative round mode/fixed/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{1}},
+ relative round mode/mantissa/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{0}},
+ relative round mode/compatible/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{2}},
% relative={<exponent base 10>}
relative/.code= {%
\pgfmath@set@number@printer{pgfmathprintnumber@RELATIVE}%
@@ -948,7 +957,9 @@
\let\pgfmathprintnumber@RELATIVE@param=\pgfmathresult
},%
relative/.value required,
+ relative*/.style={/pgf/number format/relative={#1},/pgf/number format/relative round mode=fixed},
every relative/.style=std,
+ relative style/.style={/pgf/number format/every relative/.append style={#1}},
fixed relative/.code= \pgfmath@set@number@printer{pgfmathprintnumber@FIXED@RELATIVE},
int detect/.code= \pgfmath@set@number@printer{pgfmathprintnumber@INT@DETECT},
int trunc/.code= \pgfmath@set@number@printer{pgfmathprintnumber@INT@TRUNC},
@@ -982,13 +993,13 @@
sci precision=,
fixed default/.code= {\let\pgfmathprintnumber@fixed@style=\pgfmathprintnumber@fixed@styleDEFAULT},
set decimal separator/.initial=,
- dec sep/.style={/pgf/number format/set decimal separator=#1},
+ dec sep/.style={/pgf/number format/set decimal separator={#1}},
@dec sep mark/.initial=,
@sci exponent mark/.initial=,
set thousands separator/.initial=,
1000 sep in fractionals/.is if=pgfmathprintnumber@thousand@sep@in@fractional,
1000 sep in fractionals/.default=true,
- 1000 sep/.style={/pgf/number format/set thousands separator=#1},
+ 1000 sep/.style={/pgf/number format/set thousands separator={#1}},
min exponent for 1000 sep/.initial=0,
use period/.style= {/pgf/number format/set decimal separator={.},/pgf/number format/set thousands separator={{{,}}}},
use comma/.style= {/pgf/number format/set decimal separator={{{,}}},/pgf/number format/set thousands separator={.}},
@@ -1103,6 +1114,11 @@
\expandafter\pgfmathprintnumber@RELATIVE@issci\pgfmathresult\relax
}
+\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn{%
+ \immediate\write16{! Package pgf warning: the use of /pgf/number format/relative is discouraged (buggy). Please use 'relative*' instead or type \string\pgfkeys{/pgf/number format/relative round mode=fixed} into your preamble.}%
+ \global\let\pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn=\relax
+}
+
\def\pgfmathprintnumber@RELATIVE@issci#1#2e#3\relax{%
\begingroup
% format X / 10^{relative}:
@@ -1110,16 +1126,35 @@
\advance\c@pgf@counta by-\pgfmathprintnumber@RELATIVE@param\relax
\pgfmathfloatcreate{#1}{#2}{\the\c@pgf@counta}%
% OK, round it to the desired precision:
- \ifnum\c@pgf@counta>0
- % hm. for positive exponents, we should round the
- % mantissa rather than only the fractional part.
- \expandafter\pgfmathfloatround\expandafter{\pgfmathresult}%
- \else
- % negative exponent -> round fixed representation:
+ \if0\pgfmathprintnumber@RELATIVE@choice@roundtofixed
+ % relative round mode=mantissa
+ \def\b@round@fixed{0}%
+ \else
+ \if1\pgfmathprintnumber@RELATIVE@choice@roundtofixed
+ % relative round mode=fixed
+ \def\b@round@fixed{1}%
+ \else
+ \pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn
+ % relative round mode=compatible
+ \ifnum\c@pgf@counta>0
+ % hm. for positive exponents, we should round the
+ % mantissa rather than only the fractional part.
+ \def\b@round@fixed{0}%
+ \else
+ % negative exponent -> round fixed representation:
+ \def\b@round@fixed{1}%
+ \fi
+ \fi
+ \fi
+ \if1\b@round@fixed
+ % round fixed representation:
\pgfmathfloattofixed\pgfmathresult
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\pgfmathfloatparsenumber{\pgfmathresult}%
\pgfmathfloatroundhasperiodtrue% make sure the code below works:
+ \else
+ % round the mantissa:
+ \expandafter\pgfmathfloatround\expandafter{\pgfmathresult}%
\fi
% Now, compute result * 10^{relative} and format the result:
\pgfmathfloattoregisterstok\pgfmathresult\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
diff --git a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty
index cbd3b957c6e..7f42aaec1b8 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty
+++ b/Master/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_tikzexternal.sty
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 17feb576361..eabbcad77b7 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
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 aca706b459f..49a7f10f8a4 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
@@ -14,7 +14,7 @@
%%% - nested \input commands have been updated
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 17. Aug 20:12:53 CEST 2012 %%%
+%%% Date of this copy: Sa 22. Sep 18:44:37 CEST 2012 %%%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
index 7bf4e86b27a..7edbb15a4c3 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex
@@ -65,11 +65,14 @@
\newdimen\pgfplots@zmax@reg
\newif\ifpgfplots@warn@for@filter@discards
\newif\ifpgfplots@isuniformtick
+\newif\ifpgfplotsplothandlermesh@patch@type@sampling
\newif\ifpgfplots@clip@limits
\newif\ifpgfplots@clip
\newif\ifpgfplots@plot@coords@mathparser
\pgfplots@plot@coords@mathparsertrue
\newif\ifpgfplots@enlargelimits
+\newif\ifpgfplots@enlargelimits@respect@figure@size
+\pgfplots@enlargelimits@respect@figure@sizetrue
\newif\ifpgfplots@enlargelimits@rel@thresh
\newif\ifpgfplots@enlargelimits@auto
\newif\ifpgfplots@tickshow
@@ -138,7 +141,7 @@
% Invokes '#2' if a cycle list named '#1' exists and '#3' if not.
\long\def\pgfplotsifcyclelistexists#1#2#3{%
- \pgfutil@ifundefined{pgfp@cyclist@\string#1@}{#3}{#2}%
+ \pgfutil@IfUndefined{pgfp@cyclist@\string#1@}{#3}{#2}%
}%
% Creates a named plot cycle list.
@@ -1183,12 +1186,6 @@
/pgfplots/scale ticks below exponent/.store in= \pgfplots@scale@ticks@below@exponent,
/pgfplots/scale ticks below exponent/.belongs to family=/pgfplots/tick,
/pgfplots/scale ticks below exponent=-1,
- /pgfplots/subtickwidth/.store in= \pgfplots@subtickwidth,
- /pgfplots/subtickwidth/.belongs to family=/pgfplots/tick,
- /pgfplots/subtickwidth=0.1cm,
- /pgfplots/tickwidth/.store in= \pgfplots@tickwidth,
- /pgfplots/tickwidth/.belongs to family=/pgfplots/tick,
- /pgfplots/tickwidth=0.15cm,
/pgfplots/minor x tick num/.initial=0,
/pgfplots/minor x tick num/.belongs to family=/pgfplots/tick,
/pgfplots/minor y tick num/.initial=0,
@@ -1213,10 +1210,14 @@
/pgfplots/minor ztick={#1},
},
/pgfplots/minor tick/.belongs to family=/pgfplots/tick,
- /pgfplots/minor tick length/.estore in=\pgfplots@subtickwidth,
+ %
+ /pgfplots/subtickwidth/.style= {/pgfplots/minor tick length={#1}},
+ /pgfplots/tickwidth/.style= {/pgfplots/major tick length={#1}},
/pgfplots/minor tick length/.belongs to family=/pgfplots/tick,
- /pgfplots/major tick length/.estore in=\pgfplots@tickwidth,
+ /pgfplots/minor tick length/.initial=0.1cm,
/pgfplots/major tick length/.belongs to family=/pgfplots/tick,
+ /pgfplots/major tick length/.initial=0.15cm,
+ %
/pgfplots/max space between ticks/.estore in=\axisdefaulttickwidth,
/pgfplots/max space between ticks/.belongs to family=/pgfplots/tick,
/pgfplots/max space between ticks=35,% the maximum space between adjacent ticks (in pt, but don't specify the unit 'pt')
@@ -1880,7 +1881,7 @@
/pgfplots/prefix/.code={\pgfkeysalso{/tikz/prefix={#1}}},
/pgfplots/raw gnuplot/.code={\pgfkeysalso{/tikz/raw gnuplot={#1}}},
/pgfplots/parametric/.code={\pgfkeysalso{/tikz/parametric={#1}}},%
- %
+ %
/pgfplots/width/.initial=,%
/pgfplots/width/.belongs to family=/pgfplots,
/pgfplots/height/.initial=,%
@@ -1909,6 +1910,7 @@
/pgfplots/enlarge z limits=#1,%
},%
/pgfplots/enlargelimits/.default=true,
+ /pgfplots/enlargelimits respects figure size/.is if=pgfplots@enlargelimits@respect@figure@size,
/pgfplots/update limits/.is if=pgfplots@bb@isactive,
/pgfplots/x/.initial=,% is implicitly set by 'width' and/or '\axisdefaultwidth'
/pgfplots/x/.belongs to family=/pgfplots,
@@ -2674,14 +2676,14 @@
% FIXME: simplify this code! It is just a replication of the default error stuff together with an xshift!
\pgfkeysgetvalue{/pgfplots/error bars/error mark}{\pgfplotserrorbarsmark}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark options}{\pgfplotserrorbarsmarkopts}%
- \draw[xshift={\pgfkeysvalueof{/pgf/bar shift}}]
+ \draw[xshift={\pgfplotbarshift}]
##1 -- ##2 node[pos=1,sloped,allow upside down] {%
\expandafter\tikz\expandafter[\pgfplotserrorbarsmarkopts]{%
\expandafter\pgfuseplotmark\expandafter{\pgfplotserrorbarsmark}%
\pgfusepath{stroke}}%
};
},%
- /pgfplots/every node near coord/.append style={xshift={\pgfkeysvalueof{/pgf/bar shift}}},%
+ /pgfplots/every node near coord/.append style={xshift={\pgfplotbarshift}},%
/tikz/ybar,
},
/pgfplots/ybar/.default=2pt,
@@ -2706,14 +2708,14 @@
% FIXME: simplify this code! It is just a replication of the default error stuff together with an xshift!
\pgfkeysgetvalue{/pgfplots/error bars/error mark}{\pgfplotserrorbarsmark}%
\pgfkeysgetvalue{/pgfplots/error bars/error mark options}{\pgfplotserrorbarsmarkopts}%
- \draw[yshift={\pgfkeysvalueof{/pgf/bar shift}}]
+ \draw[yshift={\pgfplotbarshift}]
##1 -- ##2 node[pos=1,sloped,allow upside down] {%
\expandafter\tikz\expandafter[\pgfplotserrorbarsmarkopts]{%
\expandafter\pgfuseplotmark\expandafter{\pgfplotserrorbarsmark}%
\pgfusepath{stroke}}%
};
},%
- /pgfplots/every node near coord/.append style={yshift={\pgfkeysvalueof{/pgf/bar shift}}},%
+ /pgfplots/every node near coord/.append style={yshift={\pgfplotbarshift}},%
/tikz/xbar,
},
/pgfplots/xbar/.default=2pt,
@@ -2817,6 +2819,7 @@
/pgfplots/plot graphics/auto adjust axis/.is if=pgfplots@plot@graphics@autoadjustaxis,
/pgfplots/plot graphics/auto adjust axis=true,
/pgfplots/plot graphics/snap z/.initial=0.02,
+ % possible values: debug=<empty>|false|true|visual
/pgfplots/plot graphics/debug/.initial=,
/pgfplots/plot graphics/debug/.default=true,
/pgfplots/plot graphics/squeeze tol/.initial=2pt,
@@ -2892,6 +2895,7 @@
\pgfkeysalso{/pgfplots/point meta/explicit}%
},
/pgfplots/patch type/.initial=,
+ /pgfplots/patch type sampling/.is if=pgfplotsplothandlermesh@patch@type@sampling,
/pgfplots/patch internal depth/.is if=pgfplotsplothandlermesh@internaldepth,
/pgfplots/patch internal depth=true,
/pgfplots/patch to triangles/.is choice,
@@ -3335,6 +3339,7 @@
/pgfplots/compat/anchors/1.5/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/1.5.1/.style= {/pgfplots/compat/anchors/1.3},%
/pgfplots/compat/anchors/1.6/.style= {/pgfplots/compat/anchors/1.3},%
+ /pgfplots/compat/anchors/1.7/.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},%
%
@@ -3345,6 +3350,7 @@
/pgfplots/compat/empty line/1.5/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.5.1/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.6/.style= {/pgfplots/compat/empty line/1.4},%
+ /pgfplots/compat/empty line/1.7/.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},%
%
@@ -3355,6 +3361,7 @@
/pgfplots/compat/path replacement/1.5/.style= {/pgfplots/compat/path replacement/pre 1.3},%
/pgfplots/compat/path replacement/1.5.1/.code= {\pgfplots@path@replace@ellipsetrue},%
/pgfplots/compat/path replacement/1.6/.style= {/pgfplots/compat/path replacement/1.5.1},
+ /pgfplots/compat/path replacement/1.7/.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},%
%ellipse/.is if=pgfplots@path@replace@ellipse,
@@ -3370,6 +3377,7 @@
/pgfplots/compat/labels/1.5/.style= {/pgfplots/compat/labels/1.3},%
/pgfplots/compat/labels/1.5.1/.style= {/pgfplots/compat/labels/1.3},%
/pgfplots/compat/labels/1.6/.style= {/pgfplots/compat/labels/1.3},%
+ /pgfplots/compat/labels/1.7/.style= {/pgfplots/compat/labels/1.3},%
/pgfplots/compat/labels/newest/.style= {/pgfplots/compat/labels/1.3},%
/pgfplots/compat/labels/default/.style= {/pgfplots/compat/labels/pre 1.3},% maintain backwards compatibility for labels :-(
%
@@ -3394,6 +3402,7 @@
\def\pgfplots@compat@scaling@coordmath{float}%
\def\pgfplots@compat@scaling@coordmath@final{float}%
},
+ /pgfplots/compat/scaling/1.7/.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},
%
@@ -3404,6 +3413,7 @@
/pgfplots/compat/scale mode/1.5/.style= {/pgfplots/compat/scale mode/pre 1.3},
/pgfplots/compat/scale mode/1.5.1/.style= {/pgfplots/compat/scale mode/pre 1.3},
/pgfplots/compat/scale mode/1.6/.code=\def\pgfplots@compat@scale@mode@compatible@mode{0},
+ /pgfplots/compat/scale mode/1.7/.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},
%
@@ -3415,6 +3425,7 @@
/pgfplots/compat/plot3graphics/1.5/.code= {\def\b@pgfplots@compat@plot@graphics@threedim{1}},%
/pgfplots/compat/plot3graphics/1.5.1/.style= {/pgfplots/compat/plot3graphics/1.5},%
/pgfplots/compat/plot3graphics/1.6/.code= {\def\b@pgfplots@compat@plot@graphics@threedim{2}},%
+ /pgfplots/compat/plot3graphics/1.7/.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},%
%
@@ -3445,6 +3456,16 @@
%
% Sorry.
%
+ /pgfplots/compat/bar width by units/.is choice,
+ /pgfplots/compat/bar width by units/pre 1.3/.code= {\def\b@pgfplots@compat@bar@width@units{1}},%
+ /pgfplots/compat/bar width by units/1.3/.style= {/pgfplots/compat/bar width by units/pre 1.3},
+ /pgfplots/compat/bar width by units/1.4/.style= {/pgfplots/compat/bar width by units/pre 1.3},%
+ /pgfplots/compat/bar width by units/1.5/.style= {/pgfplots/compat/bar width by units/pre 1.3},%
+ /pgfplots/compat/bar width by units/1.5.1/.style= {/pgfplots/compat/bar width by units/pre 1.3},%
+ /pgfplots/compat/bar width by units/1.6/.style= {/pgfplots/compat/bar width by units/pre 1.3},%
+ /pgfplots/compat/bar width by units/1.7/.code= {\def\b@pgfplots@compat@bar@width@units{0}},%
+ /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},
%
/pgfplots/compat/general/.is choice,
/pgfplots/compat/general/pre 1.3/.style={/pgfplots/log origin=infty},%
@@ -3453,13 +3474,14 @@
/pgfplots/compat/general/1.5/.style= {/pgfplots/compat/general/newest},%
/pgfplots/compat/general/1.5.1/.style= {/pgfplots/compat/general/newest},%
/pgfplots/compat/general/1.6/.style= {/pgfplots/compat/general/newest},%
+ /pgfplots/compat/general/1.7/.style= {/pgfplots/compat/general/newest},%
/pgfplots/compat/general/newest/.style= {/pgfplots/log origin=0},
/pgfplots/compat/general/default/.style={/pgfplots/compat/general/newest},
%
/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.6,
+ /pgfplots/compat/mostrecent/.initial=1.7,
/pgfplots/compat/.style={%
% ATTENTION: *every* /pgfplots/compat/ setting needs to accept
% the same choices due to this construction:
@@ -3472,6 +3494,7 @@
/pgfplots/compat/general=#1,%
/pgfplots/compat/path replacement=#1,%
/pgfplots/compat/plot3graphics=#1,%
+ /pgfplots/compat/bar width by units=#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.
@@ -3552,6 +3575,10 @@
},%
}
+% backwards compatibility:
+\def\pgfplots@tickwidth{\pgfkeysvalueof{/pgfplots/major tick length}}%
+\def\pgfplots@subtickwidth{\pgfkeysvalueof{/pgfplots/minor tick length}}%
+
\pgfkeysgetvalue{/pgfplots/colorbar/draw/.@cmd}\pgfplots@colorbar@draw@defaultimpl
% call
@@ -4593,7 +4620,7 @@
\fi
}
-\pgfutil@ifundefined{AtBeginDocument}{}{%
+\pgfutil@IfUndefined{AtBeginDocument}{}{%
\AtBeginDocument{%
\let\pgfplots@original@LaTeX@label@loadtime=\label
}%
@@ -4613,7 +4640,7 @@
\string\protect
\string\csname\space #3#2\string\endcsname
}%
- \pgfutil@ifundefined{hyper@makecurrent}{}{%
+ \pgfutil@IfUndefined{hyper@makecurrent}{}{%
\hyper@makecurrent{pgfplotslink}%
\hyper@anchorstart{\@currentHref}{}\hyper@anchorend
\pgfplotsutil@advancestringcounter@global\c@pgfplots@label
@@ -4623,7 +4650,7 @@
% \label in sub
\let\sf@@memsub@label=\pgfplots@original@LaTeX@label@loadtime
%
- \pgfutil@ifundefined{label}{%
+ \pgfutil@IfUndefined{label}{%
}{%
\def\pgfplots@loc@TMPa{\label #1}%
\expandafter\pgfplots@loc@TMPa\expandafter{#2}% the \expandafter is a convenience method; the name should be expandable anyway
@@ -4638,8 +4665,8 @@
\pgfplots@texdist@protect\pgfplotslegendfromname@{#1}%
}%
\def\pgfplotslegendfromname@#1{%
- \pgfutil@ifundefined{pgfplots@legend@to@name@#1}{%
- \pgfutil@ifundefined{ref}{%
+ \pgfutil@IfUndefined{pgfplots@legend@to@name@#1}{%
+ \pgfutil@IfUndefined{ref}{%
\pgfplots@warning{There is no `legend to name=#1', sorry. I am skipping it}%
\string\pgfplotslegendfromname{#1}: ??%
}{%
@@ -4654,8 +4681,8 @@
\pgfplots@texdist@protect\pgfplotscolorbarfromname@{#1}%
}%
\def\pgfplotscolorbarfromname@#1{%
- \pgfutil@ifundefined{pgfplots@colorbar@to@name@#1}{%
- \pgfutil@ifundefined{ref}{%
+ \pgfutil@IfUndefined{pgfplots@colorbar@to@name@#1}{%
+ \pgfutil@IfUndefined{ref}{%
\pgfplots@warning{There is no `colorbar to name=#1', sorry. I am skipping it}%
\string\pgfplotscolorbarfromname{#1}: ??%
}{%
@@ -4670,8 +4697,8 @@
\pgfplots@texdist@protect\pgfplotsplotfromname@{#1}%
}%
\def\pgfplotsplotfromname@#1{%
- \pgfutil@ifundefined{pgfplots@show@ref@#1}{%
- \pgfutil@ifundefined{ref}{%
+ \pgfutil@IfUndefined{pgfplots@show@ref@#1}{%
+ \pgfutil@IfUndefined{ref}{%
\pgfplots@warning{There is no \string\addplot\space label `#1', sorry. I am skipping it}%
\string\pgfplotsplotfromname{#1}: ??%
}{%
@@ -4683,7 +4710,7 @@
}%
\def\pgfplots@ifintikzpicture#1#2{%
- \pgfutil@ifundefined{filldraw}{#2}{#1}%
+ \ifpgfpicture #1\else #2\fi
}%
% DEPRECATED.
@@ -4761,19 +4788,43 @@
}{}%
\fi
}%
+
+\def\pgfplots@enlargelimits@rel@unitserror#1{%
+ \pgfplots@error{enlarge limits only supports values with units for 'abs=#1' and/or 'abs value=#1'. Ignoring unit}%
+}%
\pgfkeysdef{/pgfplots/@enlargelimits/value}{%
\pgfmathparse{#1}%
+ \ifpgfmathunitsdeclared
+ \pgfplots@enlargelimits@rel@unitserror{#1}%
+ \fi
\let\pgfplots@enlargelimits@relthresh=\pgfmathresult
\let\pgfplots@enlargelimits@absthresh=\pgfutil@empty
}%
\pgfkeysdef{/pgfplots/@enlargelimits/rel}{\pgfkeysalso{true,value={#1}}}%
\pgfkeysdef{/pgfplots/@enlargelimits/abs value}{%
\begingroup
- \pgfplotscoordmath{\pgfplots@enlargelimits@curaxis}{datascaletrafo set shift}{0}%
- \expandafter\csname pgfplotstransformcoordinate\pgfplots@enlargelimits@curaxis\endcsname{#1}%
- \pgfmath@smuggleone\pgfmathresult
+ \ifpgfplots@usefpu
+ \pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
+ \fi
+ \pgfmathparse{#1}%
+ \xdef\pgfplots@glob@TMPa{%
+ \ifpgfmathunitsdeclared
+ \noexpand\pgfmathunitsdeclaredtrue
+ \else
+ \noexpand\pgfmathunitsdeclaredfalse
+ \fi
+ \noexpand\def\noexpand\pgfmathresult{\pgfmathresult}%
+ }%
\endgroup
- \let\pgfplots@enlargelimits@absthresh=\pgfmathresult
+ \pgfplots@glob@TMPa
+ \ifpgfmathunitsdeclared
+ \edef\pgfplots@enlargelimits@absdimension{\pgfmathresult pt}%
+ \let\pgfplots@enlargelimits@absthresh=\pgfutil@empty
+ \else
+ \let\pgfplots@enlargelimits@absdimension=\pgfutil@empty
+ \csname pgfplotstransformdirection\pgfplots@enlargelimits@curaxis\endcsname{\pgfmathresult}%
+ \let\pgfplots@enlargelimits@absthresh=\pgfmathresult
+ \fi
\let\pgfplots@enlargelimits@relthresh=\pgfutil@empty
}%
\pgfkeysdef{/pgfplots/@enlargelimits/abs}{\pgfkeysalso{true,abs value={#1}}}%
@@ -4781,10 +4832,31 @@
\def\pgfplots@enlarge@limit@ifconfigured#1{%
\begingroup
+ % ATTENTION: this uses similar access patterns as
+ % \pgfplots@enlarge@limit@by@dimension
\def\bool@pgfplots@loc@enlargelimits@min{0}%
\def\bool@pgfplots@loc@enlargelimits@max{0}%
+ %
+ % we can either enlarge
+ % ... using a relative limit (like 0.1 -> 10%)
\def\pgfplots@enlargelimits@relthresh{0.1}% the default
+ % ...or an absolute limit ( like 4 units)
\let\pgfplots@enlargelimits@absthresh=\pgfutil@empty
+ % or an absolute dimension (like 1cm).
+ %
+ % Relative and absolute values are relatively simple: we only need to compute and
+ % add the changes to the already existing limits. The value with
+ % an absolute dimension is surprisingly complicated.
+ %
+ % The problem is: enlargelimits has to be computed before the
+ % image has been scaled into its final size. This is not merely a
+ % technical problem; this is how one wants it to be!
+ %
+ % The solution taken here is to communicate such an absolute
+ % dimension to the scaling routines. The scaling routines will
+ % handle the case; we don't change limits here.
+ %
+ \let\pgfplots@enlargelimits@absdimension=\pgfutil@empty
\def\pgfplots@enlargelimits@curaxis{#1}%
%
\pgfkeysgetvalue{/pgfplots/enlarge #1 limits}{\pgfplots@loc@TMPa}%
@@ -4803,13 +4875,230 @@
\pgfplots@enlarge@limit@for{#1}%
\fi
\global\let\pgfplots@glob@TMPa=\bool@pgfplots@loc@enlargeany
- % assignments are made globally.
+ % limits assignments are made globally.
+ \xdef\pgfplots@glob@TMPb{%
+ \noexpand\pgfplots@enlargelimits@remember@abs@dimension{#1}%
+ {\bool@pgfplots@loc@enlargelimits@min}%
+ {\bool@pgfplots@loc@enlargelimits@max}%
+ {\pgfplots@enlargelimits@absdimension}%
+ }%
\endgroup
+ \pgfplots@glob@TMPb
\if1\pgfplots@glob@TMPa
\pgfplots@visphase@notify@changeofcanvaslimits{#1}%
\fi
}
+% Reconfigures the scaling routines such that following calls to
+% \pgfplots@scaleaxes@to@BB@ will enlarge the limit for a specific
+% axis by an absolute dimension.
+%
+% This enlargement is different from standard limit enlargement:
+% Standart limit enlargement is typically applied (and finished) long
+% before the scaling routines start. In fact, the result of
+% enlargelimits is typically the input argument for the scaling
+% (compare the pgfplots manual (pdf)).
+%
+% This here needs a different treatment because "enlarge x limits={abs=1cm}"
+% has to be applied AFTER the scaling is complete. To this end, it is
+% applied as the very last scaling step. It is applied after any post
+% scales, and it only modifies axis limits.
+%
+% #1: x,y, or z
+% #2: 1 if the lower limit shall be enlarged, 0 if not
+% #3: 1 if the upper limit shall be enlarged, 0 if not
+% #4: some absolute dimension (like 1cm) by which we want to enlarge
+% axis limits.
+\def\pgfplots@enlargelimits@remember@abs@dimension#1#2#3#4{%
+ \expandafter\edef\csname pgfplots@enlargelimits@absdimension@#1\endcsname{#4}%
+ \expandafter\edef\csname pgfplots@enlargelimits@absdimension@#1@minmax\endcsname{{#2}{#3}}%
+}%
+\let\pgfplots@enlargelimits@absdimension@x=\pgfutil@empty
+\let\pgfplots@enlargelimits@absdimension@y=\pgfutil@empty
+\let\pgfplots@enlargelimits@absdimension@z=\pgfutil@empty
+
+% Called as soon as the scaling is completely set up and any
+% "enlarge #1 limits={abs=1cm}"
+% enlargements shall be done, i.e. enlargement by unit.
+%
+% #1: x,y, or z
+\def\pgfplots@scaling@apply@enlargelimits@by@dimension#1{%
+ \expandafter\ifx\csname pgfplots@enlargelimits@absdimension@#1\endcsname\pgfutil@empty
+ \else
+ \pgfplotsconvertunittocoordinate{#1}{\csname pgfplots@enlargelimits@absdimension@#1\endcsname}%
+ \edef\pgfplots@loc@TMPa{%
+ \noexpand\pgfplots@enlarge@limit@by@dimension{#1}
+ \csname pgfplots@enlargelimits@absdimension@#1@minmax\endcsname
+ {\pgfmathresult}%
+ }%
+ \pgfplots@loc@TMPa
+ \fi
+}%
+
+
+% PRECONDITION:
+% 1. width/height are set
+% 2. the unit vectors point indicate whether the axis is a standard
+% box or some skewed plot (their precise direction and magnitude is
+% irrelevant)
+% 3. the enlargelimits code has already evaluated the case
+% "enlargelimits={abs=1cm}"
+%
+% POSTCONDITION:
+% width and/or height might be modified
+\def\pgfplots@scaling@changewidthheight@for@enlargelimits@by@dimension{%
+ \ifpgfplots@enlargelimits@respect@figure@size
+ %
+ % decide if we need to do anything at all, i.e. if there IS
+ % some option 'enlarge * limits={abs=1cm}' :
+ \pgfplots@loc@tmpfalse
+ \ifx\pgfplots@enlargelimits@absdimension@x\pgfutil@empty
+ \else
+ \pgfplots@loc@tmptrue
+ \fi
+ \ifx\pgfplots@enlargelimits@absdimension@y\pgfutil@empty
+ \else
+ \pgfplots@loc@tmptrue
+ \fi
+ \ifx\pgfplots@enlargelimits@absdimension@z\pgfutil@empty
+ \else
+ \pgfplots@loc@tmptrue
+ \fi
+ %
+ \ifpgfplots@loc@tmp
+ \def\pgfplotsretval{}%
+ % ok. We encountered an option 'enlarge * limits={abs=1cm}' for at least one axis.
+ % and we WANT to keep 'width', 'height'.
+ %
+ % This is not quite trivial because in order to compute
+ % enlarge-by-dimension, we NEED the unit vectors. But the
+ % unit vectors need the limits - a nonlinear problem.
+ %
+ % Since this here is not really a common use-case, I
+ % decided to implement a heuristics which works in most
+ % common cases: for standard 2d axes. It might fail for
+ % skewed axes and it will probably fail for 3d axes.
+ %
+ % My idea is to change width and/or height BEFORE the unit
+ % vectors have been computed.
+ %
+ % First: check if we HAVE a standard 2d axis.
+ \pgfplots@loc@tmpfalse
+ \ifpgfplots@threedim
+ \else
+ \ifdim\pgf@xx=0sp %
+ \else
+ \ifdim\pgf@xy=0sp %
+ \ifdim\pgf@yx=0sp %
+ \ifdim\pgf@yy=0sp %
+ \else
+ \pgfplots@loc@tmptrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ %
+ \ifpgfplots@loc@tmp
+ \def\pgfplots@loc@TMPc{{1}{1}}%
+ %
+ % ah - we really *have* a standard boxed axis.
+ % Compute
+ % newwidth = width - enlargevalue
+ % newheight = height - enlargevalue
+ %
+ % newwidth will be stored in \pgfplots@loc@TMPa
+ % and newheight in \pgfplots@loc@TMPb
+ \ifx\pgfplots@enlargelimits@absdimension@x\pgfutil@empty
+ \let\pgfplots@loc@TMPa=\pgfplots@width
+ \else
+ \ifx\pgfplots@enlargelimits@absdimension@x@minmax\pgfplots@loc@TMPc
+ \def\pgfmathresult{2}%
+ \else
+ \def\pgfmathresult{1}%
+ \fi
+ \pgfmathparse{\pgfplots@width - \pgfmathresult * \pgfplots@enlargelimits@absdimension@x}%
+ \edef\pgfplots@loc@TMPa{\pgfmathresult pt}%
+ \fi
+ %
+ \ifx\pgfplots@enlargelimits@absdimension@y\pgfutil@empty
+ \let\pgfplots@loc@TMPb=\pgfplots@height
+ \else
+ \ifx\pgfplots@enlargelimits@absdimension@y@minmax\pgfplots@loc@TMPc
+ \def\pgfmathresult{2}%
+ \else
+ \def\pgfmathresult{1}%
+ \fi
+ \pgfmathparse{\pgfplots@height - \pgfmathresult * \pgfplots@enlargelimits@absdimension@y}%
+ \edef\pgfplots@loc@TMPb{\pgfmathresult pt}%
+ \fi
+ %
+ % OK. if( newwidth>0 && newheight>0 ), we can proceed.
+ \pgfplots@loc@tmpfalse
+ \ifdim\pgfplots@loc@TMPa>10pt %
+ \ifdim\pgfplots@loc@TMPb>10pt %
+ \pgfplots@loc@tmptrue
+ \fi
+ \fi
+ \ifpgfplots@loc@tmp
+ % Ah: newheight>0 && newheight>0 . Good.
+ \let\pgfplots@width=\pgfplots@loc@TMPa
+ \let\pgfplots@height=\pgfplots@loc@TMPb
+ \else
+ \def\pgfplotsretval{enlarge value are bigger than old picture size}%
+ \fi
+ \else
+ \def\pgfplotsretval{size adjust is unavailable for non-standard axes}%
+ \fi
+ \ifx\pgfplotsretval\pgfutil@empty
+ \else
+ \pgfplots@warning{enlargelimits respects figure size=true: could not respect the prescribed width/height (\pgfplotsretval). The size and/or aspect ratio of your image will be different than expected. You can try to modify BOTH width and height.}%
+ \fi
+ \fi
+ \fi
+}
+
+% this here applies changes required for 'enlarge #1 limits={abs=1cm}', i.e.
+% for the case of numbers with units.
+%
+% The main difference is that it is applied AFTER the scaling of the
+% axis is complete.
+%
+% #1: x,y,or z
+% #2: 1 if lower limit shall be changed
+% #3: 1 if upper limit shall be changed
+% #4: the absolute value
+\def\pgfplots@enlarge@limit@by@dimension#1#2#3#4{%
+ \begingroup
+ % ATTENTION: this uses similar access patterns as
+ % \pgfplots@enlarge@limit@ifconfigured
+ \def\bool@pgfplots@loc@enlargelimits@min{#2}%
+ \def\bool@pgfplots@loc@enlargelimits@max{#3}%
+ %
+ \let\pgfplots@enlargelimits@relthresh=\pgfutil@empty
+ \def\pgfplots@enlargelimits@absthresh{#4}
+ \def\pgfplots@enlargelimits@curaxis{#1}%
+ %
+ \def\bool@pgfplots@loc@enlargeany{0}%
+ \if1\bool@pgfplots@loc@enlargelimits@min
+ \def\bool@pgfplots@loc@enlargeany{1}%
+ \else
+ \if1\bool@pgfplots@loc@enlargelimits@max
+ \def\bool@pgfplots@loc@enlargeany{1}%
+ \fi
+ \fi
+ \if1\bool@pgfplots@loc@enlargeany
+ \pgfplots@enlarge@limit@for{#1}%
+ \fi
+ \global\let\pgfplots@glob@TMPa=\bool@pgfplots@loc@enlargeany
+ % limits assignments are made globally.
+ \endgroup
+ \if1\pgfplots@glob@TMPa
+ \pgfplots@visphase@notify@changeofcanvaslimits{#1}%
+ \fi
+}
+
+
% Helper method inside of \pgfplots@enlarge@limit@ifconfigured.
%
% It modifies '#1min' and '#1max' (globally!) according to the already prepared
@@ -4819,9 +5108,16 @@
\expandafter\let\expandafter\pgfplots@@min\csname pgfplots@#1min\endcsname
\expandafter\let\expandafter\pgfplots@@max\csname pgfplots@#1max\endcsname
\ifx\pgfplots@enlargelimits@relthresh\pgfutil@empty
- % we have an absolute enlarge value:
- \let\enlargeabsolute=\pgfplots@enlargelimits@absthresh
- \pgf@xb=\pgfplots@enlargelimits@absthresh pt
+ \ifx\pgfplots@enlargelimits@absthresh\pgfutil@empty
+ % ups. No enlargement!? OK, can happen for 'abs=1cm' ...
+ % numbers with unit are processed later (after the scaling
+ % is set up)
+ \pgf@xb=0pt %
+ \else
+ % we have an absolute enlarge value:
+ \let\enlargeabsolute=\pgfplots@enlargelimits@absthresh
+ \pgf@xb=\pgfplots@enlargelimits@absthresh pt
+ \fi
\else
% we have a relative enlarge value:
\pgfmathsubtract@\pgfplots@@max\pgfplots@@min%
@@ -6087,7 +6383,7 @@
}%
\def\pgfplotssetaxistype#1{%
- \pgfutil@ifundefined{pgfplots@axistype@#1}{%
+ \pgfutil@IfUndefined{pgfplots@axistype@#1}{%
\pgfplots@error{Sorry, 'axis type=#1' is unknown. Maybe you need to load a proper library first or you misspelled the name? Ignoring it}%
}{%
\csname pgfplots@axistype@#1\endcsname
@@ -6895,7 +7191,7 @@
\def\pgfplots@prepare@layered@graphics{%
% check if there are no layers at all.
\ifpgfplots@layered@graphics
- \pgfutil@ifundefined{pgf@layerlist}{%
+ \pgfutil@IfUndefined{pgf@layerlist}{%
}{%
\ifx\pgf@layerlist\pgfutil@empty
\pgfplots@layered@graphicsfalse
@@ -7070,7 +7366,7 @@
\else
% cell picture=false | cell picture=if necessary
\edef\pgfplots@shapename{pgfplots@low@level@shape@INNER}%
- \pgfutil@ifundefined{pgf@anchor@\pgfplots@shapename @\pgfplots@anchorname}{%
+ \pgfutil@IfUndefined{pgf@anchor@\pgfplots@shapename @\pgfplots@anchorname}{%
% we need to compute the anchor a posteriorily.
\if0\pgfplots@cell@picture@mode
% cell picture=false is forbidden here...
@@ -8649,6 +8945,15 @@
\pgfkeyssetfamily{/tikz/alias}{/pgfplots/naming commands}%
\pgfkeyssetfamily{/tikz/overlay}{/pgfplots/shared with tikz}%
\pgfkeyssetfamily{/tikz/variable}{/pgfplots}%
+ %
+ % ... we need to set these options during the survey phase
+ % (because it might be interesting for enlarge limits to depend
+ % upon their value):
+ \pgfkeysdef{/pgfplots/bar width}{\pgfkeysalso{/pgf/bar width={##1}}}%
+ \pgfkeysdef{/pgfplots/bar shift}{\pgfkeysalso{/pgf/bar shift={##1}}}%
+ \pgfkeyssetfamily{/pgf/bar width}{/pgfplots}%
+ \pgfkeyssetfamily{/pgf/bar shift}{/pgfplots}%
+ %
\pgfkeysinstallkeyfilterhandler{/pgf/key filter handlers/append filtered to}{\pgfplots@rmopts}%
%
\let\tikz@alias=\pgfutil@empty
@@ -9517,7 +9822,7 @@
\pgfplots@autocompute@all@limitsfalse
\fi
%
- \pgfutil@ifundefined{pgfmathdeclarefunction}{%
+ \pgfutil@IfUndefined{pgfmathdeclarefunction}{%
% SKIP: \pgfmathdeclarefunction is unavailable in pgf 2.00 .
% UPGRADE TO PGF 2.10 to use these math functions.
}{%
@@ -9553,7 +9858,7 @@
\pgfplots@stacked@reversefalse
\fi
%
- \pgfutil@ifundefined{label}{\relax}{%
+ \pgfutil@IfUndefined{label}{\relax}{%
\let\pgfplots@original@LaTeX@label=\label
\let\label=\pgfplots@plot@label
}%
@@ -9599,7 +9904,7 @@
% creates an axis and performs all postponed drawing operations.
\def\endpgfplots@environment@opt{%
\def\pgfplots@phase@name{v}%
- \pgfutil@ifundefined{label}{\relax}{%
+ \pgfutil@IfUndefined{label}{\relax}{%
% restore.
\let\label=\pgfplots@original@LaTeX@label
}%
@@ -9717,7 +10022,7 @@
\tikz@fig@mustbenamed
%
\edef\pgfplots@shapename{pgfplots@low@level@shape\ifpgfplots@deprecated@anchors @deprecated\fi}%
- \pgfutil@ifundefined{pgf@anchor@\pgfplots@shapename @\pgfplots@anchorname}{%
+ \pgfutil@IfUndefined{pgf@anchor@\pgfplots@shapename @\pgfplots@anchorname}{%
% Oh. Well, suppose \pgfplots@anchorname is associated to an
% INNER node.
\def\pgfplots@loc@TMPa##1{%
@@ -9837,7 +10142,7 @@
\else
%\message{Attempting to correct '\pgfplots@child@node@name' position by \meaning\pgfplots@offset\space (the node is inside of an axis).}%
\expandafter\ifx\csname pgfplots@child@node@visited@\pgfplots@child@node@name\endcsname\relax%
- \pgfutil@ifundefined{pgf@sh@nt@\pgfplots@child@node@name}{%
+ \pgfutil@IfUndefined{pgf@sh@nt@\pgfplots@child@node@name}{%
\pgfplots@warning{could not adjust coordinates of named node '\pgfplots@child@node@name' for reasons I do not understand! After finishing the image, it did no longer exist!? Sorry.}%
}{%
\pgf@shift@node{\pgfplots@child@node@name}{\pgfplots@offset}%
@@ -9883,7 +10188,7 @@
}
-\pgfutil@ifundefined{tikzaddtikzonlycommandshortcutlet}{%
+\pgfutil@IfUndefined{tikzaddtikzonlycommandshortcutlet}{%
\def\tikzaddtikzonlycommandshortcutlet#1#2{%
\expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
\let#1=#2
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
index aee93120a5e..442887292cb 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex
@@ -1,3 +1,13 @@
-\def\pgfplotsrevision{%
-1.6.1
-}
+\begingroup
+\catcode`\-=12
+\catcode`\/=12
+\catcode`\.=12
+\catcode`\:=12
+\catcode`\+=12
+\catcode`\-=12
+\gdef\pgfplotsrevision{1.7-2-ge24fff4}
+\gdef\pgfplotsversion{1.7}
+\gdef\pgfplotsversiondatetime{2012-10-26 12:43:51 +0200}
+\gdef\pgfplots@glob@TMPa#1-#2-#3 #4\relax{#1/#2/#3}
+\xdef\pgfplotsversiondate{\expandafter\pgfplots@glob@TMPa\pgfplotsversiondatetime\relax}
+\endgroup
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex
index 79a4e5a11de..2560d084fef 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex
@@ -93,22 +93,36 @@
\pgfplots@initsizes@setunitvector{x}{0}{1}{\pgfplots@tmp@xisaxisparallel}%
\pgfplots@initsizes@setunitvector{y}{1}{1}{\pgfplots@tmp@yisaxisparallel}%
\pgfplots@initsizes@setunitvector{z}{2}{\pgfplots@tmp@Zscale}{\pgfplots@loc@TMPc}%
+ %
+ \pgfplots@scaling@changewidthheight@for@enlargelimits@by@dimension%
+ %
\pgfplots@scale@plotbox@to@widthheight
- \ifpgfplots@threedim
- \pgfplotsgetnormalforcurrentview
- \fi
\else
% 3D case by `view':
\let\pgfplots@x=\pgfutil@empty
\let\pgfplots@y=\pgfutil@empty
\let\pgfplots@z=\pgfutil@empty
\pgfplotssetaxesfromazel{\pgfplots@view@az}{\pgfplots@view@el}{\pgfplots@tmp@xisaxisparallel}%
+ %
+ \pgfplots@scaling@changewidthheight@for@enlargelimits@by@dimension%
+ %
\pgfplots@scale@plotbox@to@widthheight
\if1\pgfplots@tmp@xisaxisparallel%
\def\pgfplots@tmp@yisaxisparallel{1}%
\fi
\fi
-%\message{Pgfplots debug: initialised unit vectors to x=(\the\pgf@xx,\the\pgf@xy), y=(\the\pgf@yx,\the\pgf@yy), z=(\the\pgf@zx,\the\pgf@zy), n = (\pgfplots@view@dir@threedim).^^J }%
+ \pgfplots@computeunitvectorlengths
+ %
+ \pgfplots@scaling@apply@enlargelimits@by@dimension{x}%
+ \pgfplots@scaling@apply@enlargelimits@by@dimension{y}%
+ \ifpgfplots@threedim
+ \pgfplots@scaling@apply@enlargelimits@by@dimension{z}%
+ \fi
+ %
+ \ifpgfplots@threedim
+ \pgfplotsgetnormalforcurrentview
+ \fi
+%\message{Pgfplots debug: initialised unit vectors to x=(\the\pgf@xx,\the\pgf@xy), y=(\the\pgf@yx,\the\pgf@yy), z=(\the\pgf@zx,\the\pgf@zy), n = (\pgfplots@view@dir@threedim). Limits are x=\pgfplots@xmin:\pgfplots@xmax, y=\pgfplots@ymin:\pgfplots@ymax^^J }%
%
\let\pgfplotsmathfloatviewdepthxyz@=\pgfplotsmathfloatviewdepthxyz@infigure
\let\pgfplotsmathviewdepthxyz@=\pgfplotsmathviewdepthxyz@infigure
@@ -381,10 +395,11 @@
\def\pgfplots@scale@mode@choice{2}% stretch to fill
\fi
\pgfplots@scaleaxes@to@BB@{#1}{#2}%
- \pgfplots@computeunitvectorlengths
- \pgfplots@rescale@view@dir
+ % NOTE: we have not yet computed the lengths of unit vectors. In
+ % addition, we have not yet updated the normal vector.
}%
+% DEPRECATED:
\def\pgfplots@rescale@view@dir{%
\expandafter\ifx\csname pgfplots@view@dir@threedim\endcsname\relax
\else
@@ -531,6 +546,7 @@
\fi
}
+
\def\pgfplots@scaleaxes@to@BB@#1#2{%
\begingroup
%
@@ -613,6 +629,7 @@
\ifpgfplots@threedim
\pgfplots@axis@apply@post@scale{z}%
\fi
+ %
% and finally, resize limits appropriately and add all cumulative limit compensations:
\xdef\pgfplots@glob@TMPa{%
%
@@ -790,6 +807,10 @@
% #4: the scale to be applied to y unit
% #5: the scale to be applied to z unit
\def\pgfplots@scaling@compute@final@scales#1#2#3#4#5{%
+ % ##1: the axis (x,y,or z)
+ % ##2: the horizontal scale
+ % ##3: the vertical scale
+ % ##4: the inverse unit scale for this axis
\def\pgfplots@loc@TMPa##1##2##3##4{%
\pgfplotscoordmath{\pgfplots@compat@scaling@coordmath}{parsenumber}{##2}%
\let\xscale@@=\pgfmathresult
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
index a80e77884ce..a6fa1eae255 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex
@@ -2609,7 +2609,7 @@
}%
\def\pgfplotscoordstream@firstlast@update{%
\ifx\pgfplots@current@point@x\pgfutil@empty
- % only one \if is enough as ONE empty coordinate results all
+ % only one \if is enough as ONE empty coordinate causes all
% others to be reset as well.
\else
\ifx\pgfplots@currentplot@firstcoord@x\pgfutil@empty
@@ -4509,12 +4509,13 @@
\def\pgfplots@coord@stream@foreach@NORMALIZED@curencoded@braced{{#1}}%
\pgfplotsaxisdeserializedatapointfrom{#1}%
\pgfplots@coord@stream@coord
- \pgfplotscoordstream@firstlast@update
+ \pgfplotsplothandlerifcurrentpointcanbefirstlast{%
+ \pgfplotscoordstream@firstlast@update
+ }{}%
\expandafter\pgfplots@foreach@plot@coord@NORMALIZED@ITERATE
\fi
}
-
% A common routine which resets internal data structures for the
% survey phase, i.e. it is the shared implementation for all \addplot
% variations.
@@ -4946,6 +4947,8 @@
% \foreach because \foreach does NOT allow extended
% precision. Besides, \pgfplotsforeachungrouped avoids
% scoping problems.
+ \let\pgfplots@plot@data@notify@next@x=\relax
+ \let\pgfplots@plot@data@notify@next@y=\relax
%
\ifpgfplots@curplot@threedim
\def\pgfplots@addplotimpl@expression@split@yz##1,##2\pgfplots@EOI{%
@@ -4971,7 +4974,11 @@
\edef\pgfplots@plot@data##1{%
\noexpand\pgfplotsforeachungrouped\expandafter\noexpand\pgfplots@plot@var@y in {\pgfplots@expression@ydomain}
{%
- \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@expression@xdomain} {##1}%
+ \pgfplots@plot@data@notify@next@y
+ \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@expression@xdomain} {%
+ \pgfplots@plot@data@notify@next@x
+ ##1%
+ }%
\noexpand\pgfplotsplothandlernotifyscanlinecomplete
}%
}%
@@ -4979,7 +4986,11 @@
% sample a line:
\def\pgfplots@plot@ydomain{0:0}%
\edef\pgfplots@plot@data##1{%
- \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@expression@xdomain} {##1}}%
+ \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@expression@xdomain} {%
+ \pgfplots@plot@data@notify@next@x
+ ##1%
+ }%
+ }%
%
% If we have (\x,\y,f(x)), use (\x,0,f(x)) instead and
% suppress the error message which would occur for \y.
@@ -5015,7 +5026,12 @@
\edef\pgfplots@plot@data##1{%
\noexpand\pgfplotsforeachlogarithmicungrouped[\pgfplots@plot@samples]
\expandafter\noexpand\tikz@plot@var/\noexpand\pgfplots@current@point@x@log
- in {\pgfplots@plot@domain} {##1}}%
+ in {\pgfplots@plot@domain}%
+ {%
+ \pgfplots@plot@data@notify@next@x
+ ##1%
+ }%
+ }%
% we have a logarithmic sampling sequence,
% \pgfplots@current@point@x@log is already available
% logarithmic! We can safe time and accuracy for the x
@@ -5045,8 +5061,13 @@
% use 'samples at':
\let\pgfplots@loc@TMPa=\pgfplots@plot@samples@at
\fi
- \edef\pgfplots@plot@data##1{
- \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@loc@TMPa} {##1}}%
+ \edef\pgfplots@plot@data##1{%
+ \noexpand\pgfplotsforeachungrouped\expandafter\noexpand\tikz@plot@var in {\pgfplots@loc@TMPa}%
+ {%
+ \pgfplots@plot@data@notify@next@x
+ ##1%
+ }%
+ }%
\fi
\expandafter\def\pgfplots@plot@var@y{0}%
\def\pgfplots@addplotimpl@expression@yEXPR{#4}%
@@ -5080,6 +5101,13 @@
\let\pgfplots@addplotimpl@expression@pseudoconst@x=\pgfmathx@
\let\pgfplots@addplotimpl@expression@pseudoconst@y=\pgfmathy@
%
+% \if n\pgfplots@meshmode
+ % mesh=false : ignore patch type sampling.
+% \else
+ \ifpgfplotsplothandlermesh@patch@type@sampling
+ \pgfplots@plot@expression@prepare@patch@type@sampling
+ \fi
+% \fi
%
% Warning for use fpu=false: evaluation '\x^3' might be different from 'x^3' for
% negative arguments:
@@ -5141,6 +5169,87 @@
}%
+% This prepares the implementation for 'patch type sampling':
+\def\pgfplots@plot@expression@prepare@patch@type@sampling{%
+ \pgfplotsplothandlersurveyaddoptions{
+ mesh input=patches,%
+ }%
+ %
+ \pgfkeysgetvalue{/pgfplots/patch type}\pgfplotsplothandlermesh@patchclass
+ %
+ \let\pgfplots@plot@data@@=\pgfplots@plot@data
+ \let\pgfplots@plot@data@curx=\pgfutil@empty
+ \let\pgfplots@plot@data@cury=\pgfutil@empty
+ \let\pgfplots@plot@data@lastx=\pgfutil@empty
+ \let\pgfplots@plot@data@lasty=\pgfutil@empty
+ \let\pgfplots@plot@data@first@x=\pgfutil@empty
+ \let\pgfplots@plot@data@first@y=\pgfutil@empty
+ %
+ \def\pgfplots@plot@data@notify@next@x{%
+ \ifx\pgfplots@plot@data@first@x\pgfutil@empty
+ \edef\pgfplots@plot@data@first@x{\tikz@plot@var}%
+ \fi
+ \let\pgfplots@plot@data@lastx=\pgfplots@plot@data@curx
+ \edef\pgfplots@plot@data@curx{\tikz@plot@var}%
+ }%
+ \def\pgfplots@plot@data@notify@next@y{%
+ \ifx\pgfplots@plot@data@first@y\pgfutil@empty
+ \edef\pgfplots@plot@data@first@y{\pgfplots@plot@var@y}%
+ \fi
+ \let\pgfplots@plot@data@lasty=\pgfplots@plot@data@cury
+ \edef\pgfplots@plot@data@cury{\pgfplots@plot@var@y}%
+ }%
+ \def\pgfplots@plot@data##1{%
+ %
+ \pgfplots@plot@data@@{%
+ \let\tikz@plot@var@old=\tikz@plot@var
+ \let\pgfplots@plot@var@y@old=\pgfplots@plot@var@y
+ %
+ %
+ %
+ % boolean 'if is first row || is first cell':
+ \pgfplots@loc@tmpfalse
+ \ifx\pgfplots@plot@data@curx\pgfplots@plot@data@first@x
+ % ah - we have the first row.
+ \pgfplots@loc@tmptrue
+ \fi
+ \if0\b@pgfplots@should@sample@LINE
+ \ifx\pgfplots@plot@data@cury\pgfplots@plot@data@first@y
+ % ah - we have the first cell.
+ \pgfplots@loc@tmptrue
+ \fi
+ \fi
+ %
+ \ifpgfplots@loc@tmp
+ \else
+ \pgfmathparse{\pgfplots@plot@data@curx-\pgfplots@plot@data@lastx}%
+ \let\pgfplots@plot@data@hx=\pgfmathresult
+ %
+ \if0\b@pgfplots@should@sample@LINE
+ \pgfmathparse{\pgfplots@plot@data@cury-\pgfplots@plot@data@lasty}%
+ \let\pgfplots@plot@data@hy=\pgfmathresult
+ \fi
+ %
+ \def\pgfplotspatchready{\pgfplotsscanlinecomplete}%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{sample in unit cube}{%
+ \pgfmathparse{\pgfplots@plot@data@lastx + \pgfplotspatchclassx*\pgfplots@plot@data@hx}%
+ \let\tikz@plot@var=\pgfmathresult
+ %
+ \if0\b@pgfplots@should@sample@LINE
+ \pgfmathparse{\pgfplots@plot@data@lasty + \pgfplotspatchclassy*\pgfplots@plot@data@hy}%
+ \let\pgfplots@plot@var@y=\pgfmathresult
+ \fi
+ %
+ ##1%
+ %
+ \let\tikz@plot@var=\tikz@plot@var@old
+ \let\pgfplots@plot@var@y=\pgfplots@plot@var@y@old
+ }%
+ \fi
+ }%
+ }%
+}%
+
\let\pgfplots@backupof@pgfplotxyfile=\pgfplotxyfile
% the following code
@@ -7018,7 +7127,7 @@
\tikzset{every plot/.try}%
\pgfplots@coord@stream@INIT@finalize@storedcoords\pgfplots@recorded@marker@stream%
\expandafter\pgfplots@coord@stream@foreach@NORMALIZED\expandafter{\pgfplots@coord@stream@finalize@storedcoords@START@coords}%
- \pgfutil@ifundefined{pgfplotlastpoint}{}{%
+ \pgfutil@IfUndefined{pgfplotlastpoint}{}{%
\tikz@make@last@position{\pgfplotlastpoint}%
}%
\let\pgfplots@plot@timer@args=\pgfplots@coord@stream@finalize@storedcoords@START@coords
@@ -7608,11 +7717,14 @@
\ifx\pgfplots@plot@handler@graphics@pointmap@D@img\pgfutil@empty
\else
\pgfkeysgetvalue{/pgfplots/plot graphics/debug}\pgfplots@loc@TMPa
- \def\pgfplots@loc@TMPb{true}%
+ \def\pgfplots@loc@TMPb{false}%
+ \ifx\pgfplots@loc@TMPa\pgfutil@empty
+ \let\pgfplots@loc@TMPa=\pgfplots@loc@TMPb
+ \fi
\ifx\pgfplots@loc@TMPa\pgfplots@loc@TMPb
- \def\pgfplotsplothandlergraphicspointmapcomputerequiredview@debug{1}%
- \else
\def\pgfplotsplothandlergraphicspointmapcomputerequiredview@debug{0}%
+ \else
+ \def\pgfplotsplothandlergraphicspointmapcomputerequiredview@debug{1}%
\fi
% The following implementation computes the 'unit vector
% ratio' of the IMAGE.
@@ -7802,7 +7914,7 @@
\if1\pgfplotsplothandlergraphicspointmapcomputerequiredview@debug
See \the\t@pgfplots@tokc.dat for debug output.
\else
- Use 'plot graphics[debug] to generate debug output files.
+ Use 'plot graphics[debug]' or 'plot graphics[debug=visual]' to generate debug output files.
\fi
^^J}%
\endgroup
@@ -7839,6 +7951,7 @@
\immediate\write\w@pgf@writea{canvasmapmatrix=[\pgfplotsmatrix@text];^^Jcanvasmaprhs = [\pgfplotsrhs@text];^^J}%
%
\immediate\write\w@pgf@writea{key configuration = \pgfplotsretval;^^J}%
+ \immediate\write\w@pgf@writea{use debug=visual to see the mapped keys.^^J}%
\immediate\closeout\w@pgf@writea
\endgroup
}%
@@ -7963,6 +8076,17 @@
\pgfplots@plot@handler@graphics@DRAW@
};%
\endgroup
+ %
+ %
+ \pgfkeysgetvalue{/pgfplots/plot graphics/debug}\pgfplots@loc@TMPa
+ \edef\pgfplots@loc@TMPb{visual}%
+ \ifx\pgfplots@loc@TMPb\pgfplots@loc@TMPa
+ % debug = visual: "sanitize" also triggers the visualization.
+ \pgfplots@plot@handler@graphics@pointmap@sanitize@scaling{A}%
+ \pgfplots@plot@handler@graphics@pointmap@sanitize@scaling{B}%
+ \fi
+ %
+ %
\ifx\pgfplots@plot@handler@graphics@pointmap@C@canvas\pgfutil@empty
\ifpgfplots@threedim
\pgfplots@warning{plot graphics in 3D axis has just two inner anchors (those with '(x,y,z)=>(imgx,imgy)'). You should provide a third one such that I can check for correct scaling.}%
@@ -8026,24 +8150,33 @@
Please refer to the pgfplots manual for details. If you continue now, I'll show the points in the image}%
\endgroup
%
+ \pgfplots@plot@handler@graphics@pointmap@sanitize@scaling@draw
%
- \scope
- \pgfsetstrokecolor{black}%
- \pgfsetfillcolor{red}%
- \pgfpathcircle{\pgfplots@point@canvas@check}{2pt}%
- \pgfusepath{stroke,fill}%
- \pgfsetfillcolor{green}%
- \pgfpathcircle{\pgfplots@point@canvas}{2pt}%
- \pgfusepath{stroke,fill}%
- \draw[->,red]
- \pgfextra{
- \pgfpathmoveto{\pgfplots@point@canvas@check}%
- \pgfpathlineto{\pgfplots@point@canvas}};
- \endscope
+ \fi
+ \pgfkeysgetvalue{/pgfplots/plot graphics/debug}\pgfplots@loc@TMPa
+ \edef\pgfplots@loc@TMPb{visual}%
+ \ifx\pgfplots@loc@TMPb\pgfplots@loc@TMPa
+ \pgfplots@plot@handler@graphics@pointmap@sanitize@scaling@draw
\fi
\endgroup
}
+\def\pgfplots@plot@handler@graphics@pointmap@sanitize@scaling@draw{%
+ \scope
+ \pgfsetstrokecolor{black}%
+ \pgfsetfillcolor{red}%
+ \pgfpathcircle{\pgfplots@point@canvas@check}{2pt}%
+ \pgfusepath{stroke,fill}%
+ \pgfsetfillcolor{green}%
+ \pgfpathcircle{\pgfplots@point@canvas}{2pt}%
+ \pgfusepath{stroke,fill}%
+ \draw[->,red]
+ \pgfextra{
+ \pgfpathmoveto{\pgfplots@point@canvas@check}%
+ \pgfpathlineto{\pgfplots@point@canvas}};
+ \endscope
+}%
+
\def\pgfplots@plot@handler@graphics@usebb{%
\pgfpointdiff{\pgfplots@plot@handler@graphics@bb@first}{\pgfplots@plot@handler@graphics@bb@second}%
\def\pgfplots@plot@handler@graphics@finish@ok{1}%
@@ -8527,7 +8660,7 @@
% \pgfshell[\jobname]{cat table.dat}
% \pgfplotxyfile{\jobname.out}
-\pgfutil@ifundefined{w@pgf@writea}{%
+\pgfutil@IfUndefined{w@pgf@writea}{%
\csname newwrite\endcsname\pgf@shellwrite
}{%
\let\pgf@shellwrite=\w@pgf@writea
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
index 35f64d032dd..5cd2d0b50be 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex
@@ -35,8 +35,19 @@
\immediate\write16{#1}%
}%
+% This is *identical* to \pgfutil@IfUndefined . I copied it here
+% because pgf up to and including version 2.10 does not contain it.
+\def\pgfplotsutil@IfUndefined#1{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+}
+\pgfplotsutil@IfUndefined{pgfutil@IfUndefined}{\let\pgfutil@IfUndefined=\pgfplotsutil@IfUndefined}{}
-\pgfutil@ifundefined{pgfkeys}{%
+\pgfutil@IfUndefined{pgfkeys}{%
\pgfplots@error{It seems your version of PGF/Tikz is older than 2.00. Unfortunately, pgfplots requires at least version 2.00 ... you may need to update your TeX-Distribution or install PGF manually, sorry}%
}{\relax}
@@ -141,7 +152,7 @@
\newdimen\pgfplots@tmpa
\newcount\c@pgfplots@coordindex
\newcount\c@pgfplots@scanlineindex
-\pgfutil@ifundefined{r@pgf@reada}{%
+\pgfutil@IfUndefined{r@pgf@reada}{%
\csname newread\endcsname\r@pgfplots@reada
}{%
\let\r@pgfplots@reada=\r@pgf@reada
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
index 8641fed58aa..9bef1959fba 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex
@@ -24,6 +24,274 @@
%
%--------------------------------------------
+% The low-level tikz plot handler for 3D mesh and surface plots.
+%
+% It expects
+% a) a coordinate stream which is a linearized matrix, iterated either
+% rowwise or column wise,
+% b) the current set of options in /pgfplots/mesh/.
+%
+%
+% ATTENTION:
+% this handler is NOT as general as the others. In particular, it
+% can't be interrupted by TeX groups: every single statement,
+% starting with streamstart and ending with stream end, must be in
+% the same scope!
+%
+% As a consequence, you can't use this handler inside of (all) TikZ
+% input streams. Try it out. It will work in pgfplots, however.
+%
+% Furthermore, it relies on a couple of pgfplots macros. This may
+% change in future versions.
+% It relies on:
+% - \ifpgfplots@curplot@threedim
+% - \pgfplots@current@point@meta
+% -> it also invokes \pgfplots@perpointmeta@preparetrafo and its
+% @APPLY counterpart which checks for
+% - \pgfplots@metamax
+% If you use it outside of pgfplots, use
+% \global\let\pgfplots@metamax=\pgfutil@empty
+% This is can be used without an initialised
+% pgfplots axes - as long as \pgfplots@current@point@meta is in
+% the range [0,1000].
+% - for the case 'shader=interp', a bounding box must be established
+% before the plot is finished. This must be done using
+% \def\pgfplotspointbbupperright{\pgfqpointxyz{2}{2}{0.9}}
+% \def\pgfplotspointbblowerleft {\pgfqpointxyz{0}{0}{0.1}}
+% or something like that.
+%
+% Besides these internals, it also relies on all public /pgfplots
+% configuration keys related to mesh/surface plots.
+%
+% Please note that the 'z buffer' feature will not work without
+% pgfplots (especially the z buffer=sort feature).
+%
+% Here is an example which compiles without a pgfplots axes:
+% ----------------------------------------------------------
+% \begin{tikzpicture}
+% \scope[
+% /pgfplots/.cd,
+% surf,
+% shader=faceted,
+% mesh/rows=4,
+% mesh/cols=4,
+% mesh/num points=,
+% /tikz/x={(0.44237cm,-0.07439cm)},
+% /tikz/y={(0.30942cm,0.23932cm)},
+% /tikz/z={(0.0cm,1.5cm)},
+% ]
+% \makeatletter
+%
+% \global\let\pgfplots@metamax=\pgfutil@empty
+% \pgfplots@curplot@threedimtrue
+%
+% \pgfplotsplothandlermesh
+% \pgfplotstreamstart
+%
+% \def\rangea{0.21}%
+% \def\rangeb{0.9}%
+%
+% \pgfmathparse{1000/(\rangeb-\rangea)}
+% \let\factor=\pgfmathresult
+%
+% \def\simplecoordinate(#1,#2,#3){%
+% \pgfmathparse{\factor*(#3 - \rangea)}%
+% \let\pgfplots@current@point@meta=\pgfmathresult
+% \pgfplotstreampoint{\pgfqpointxyz{#1}{#2}{#3}}%
+% }%
+% % for the case 'shaer=interp':
+% \def\pgfplotspointbbupperright{\pgfqpointxyz{2}{2}{0.9}}
+% \def\pgfplotspointbblowerleft {\pgfqpointxyz{0}{0}{0.1}}
+%
+% \simplecoordinate(0,3,0.7)
+% \simplecoordinate(1,3,0.5)
+% \simplecoordinate(2,3,0.58)
+% \simplecoordinate(3,3,0.9)
+%
+% \simplecoordinate(0,2,0.68)
+% \simplecoordinate(1,2,0.22)
+% \simplecoordinate(2,2,0.25)
+% \simplecoordinate(3,2,0.4)
+%
+% \simplecoordinate(0,1,0.6)
+% \simplecoordinate(1,1,0.3)
+% \simplecoordinate(2,1,0.21)
+% \simplecoordinate(3,1,0.3)
+%
+% \simplecoordinate(0,0,0.8)
+% \simplecoordinate(1,0,0.56)
+% \simplecoordinate(2,0,0.5)
+% \simplecoordinate(3,0,0.75)
+%
+%
+% \pgfplotstreamend
+% \pgfusepath{stroke}
+%
+% \endscope
+% \end{tikzpicture}
+% ----------------------------------------------------------
+% END OF EXAMPLE
+% -> see also the legend image for mesh plots.
+%
+\def\pgfplotsplothandlermesh{%
+ \pgfkeysgetvalue{/pgfplots/patch type}\pgfplotsplothandlermesh@patchclass
+ \ifx\pgfplotsplothandlermesh@patchclass\pgfplotsplothandlermesh@patchclass@defaulttext
+ \let\pgfplotsplothandlermesh@patchclass=\pgfutil@empty
+ \fi
+ % FIXME : detect 1d mode here!
+ \ifx\pgfplotsplothandlermesh@patchclass\pgfutil@empty
+ % assign default patch class.
+ \if1\pgfplotsplothandlermesh@matrixinput
+ \def\pgfplotsplothandlermesh@patchclass{rectangle}%
+ \else
+ \def\pgfplotsplothandlermesh@patchclass{triangle}%
+ \fi
+ \pgfkeyslet{/pgfplots/patch type}\pgfplotsplothandlermesh@patchclass
+ \fi
+ %
+ \if0\pgfplotsplothandlermesh@matrixinput
+ % mesh input=patches: simply skip empty input lines:
+ \pgfkeyssetvalue{/pgfplots/empty line}{none}%
+ \fi
+ %
+ \pgfkeysgetvalue{/pgfplots/patch table/value}\pgfplotsplothandlermesh@patchtable
+ \ifx\pgfplotsplothandlermesh@patchtable\pgfutil@empty
+ \else
+ \def\pgfplotsplothandlermesh@matrixinput{0}% implies 'patch input=patches'
+ \let\pgfplotsplothandlersurveystart=\pgfplotsplothandlersurveystart@mesh@patchtable
+ \let\pgfplotsplothandlersurveypoint=\pgfplotsplothandlersurveypoint@mesh@patchtable
+ \let\pgfplotsplothandlersurveyend=\pgfplotsplothandlersurveyend@mesh@patchtable
+ \fi
+ \def\pgf@plotstreamstart{%
+% \scope
+ %
+ % this shouldn't be necessary, but it doesn't hurt either.
+ \pgfplots@perpointmeta@preparetrafo
+ %
+ \def\pgfplotsplothandlermesh@ONEDIMMODE{0}%
+ \pgfplotsplothandlermesh@init@meshkeys
+ %
+ %
+ \let\pgfplotsplothandlermesh@patchclass@input=\pgfplotsplothandlermesh@patchclass
+ \let\pgfplotsplothandlermesh@patchclass@output=\pgfplotsplothandlermesh@patchclass@input
+ \if0\pgfplotsplothandlermesh@triangulate
+ \else
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@input}{triangulate class}%
+ \let\pgfplotsplothandlermesh@patchclass@output=\pgfplotsretval
+ \fi
+ %
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@input}{init}%
+ \ifx\pgfplotsplothandlermesh@patchclass@input\pgfplotsplothandlermesh@patchclass@output
+ \else
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{init}%
+ \fi
+ %
+ % assign boolean:
+ \let\b@pgfplotsplothandlermesh@matrixoutput=\pgfplotsplothandlermesh@matrixinput
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{allow matrix}%
+ \if0\pgfplotsretval
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ \ifnum\pgfkeysvalueof{/pgfplots/patch refines}>0
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ \if1\pgfplotsaxisplothasjumps
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ \if\pgfplotsplothandlermesh@zbuffer@choice4% 'z buffer=sort':
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ %
+ \if2\pgfplotsplothandlermesh@shader
+ % shader=interp
+ %
+ \pgfkeysgetvalue{/pgfplots/mesh/interior colormap name}\pgfplots@loc@TMPc
+ \ifx\pgfplots@loc@TMPc\pgfutil@empty
+ \else
+ \pgfplots@warning{the combination 'shader=interp,interior colormap name' is inefficient (it uses 'shader=faceted interp,faceted color=none') and may slow down the *display* of your document}%
+ \pgfplotsset{shader=faceted interp,faceted color=none}%
+ \fi
+ \fi
+ \if2\pgfplotsplothandlermesh@shader
+ \else
+ % 'shader!=interp'
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{get pdf shading type}%
+ \if4\pgfplotsretval
+ \else
+ \if5\pgfplotsretval
+ \else
+ \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
+ \fi
+ \fi
+ %
+ % special handling: check if Type=5 shadings need to be
+ % converted to Type=4
+ \if0\b@pgfplotsplothandlermesh@matrixoutput
+ % no matrix output possible
+ \if5\pgfplotsretval
+ % pdf shading type=5 (matrix output)
+ \if2\pgfplotsplothandlermesh@shader
+ % shader=interp
+ %
+ % oh. shading type=5 is *essentially* the same as
+ % matrix output, but matrix output is forbidden.
+ % In that case, triangulate the matrix and shade the
+ % triangles:
+ \def\pgfplotsplothandlermesh@triangulate{1}%
+ \def\pgfplotsplothandlermesh@patchclass@output{triangle}%
+ % Note shader=faceted interp can be written as
+ % matrix -- it shades individual elements anyway;
+ % and one single patch can be written as matrix.
+ \fi
+ \fi
+ \fi
+ %
+ \pgfplotsplothandlermesh@init@DECODE
+ \pgfplotsplothandlermesh@init@REFINE
+ %
+ \pgfutil@IfUndefined{pgfplots@drawmodes}{%
+ \let\pgfplots@drawmodes=\tikz@mode
+ \let\pgfplots@drawoptions=\tikz@options
+ }{}%
+ %
+ %
+ % Prepare color data source:
+ \ifx\pgfplotspointmetainputhandler\pgfutil@empty%
+ % oh. There is no color data!?
+ \pgfplotsplothandlermesh@init@path@without@point@meta
+ %
+ \else
+ \pgfplotsplothandlermesh@init@cdata
+ \pgfplotsplothandlermesh@init@shader
+ \pgfplotsplothandlermesh@init@flat@color
+ \fi
+ % PREPARE THE STREAM PROCESSING:
+ % handling of jumps.
+ \pgfplotsplothandlermesh@init@jumphandling
+ %
+ \ifpgfplotsplothandlermesh@shownormals
+ \let\pgfplotsplothandlermesh@show@normals@if@configured=\pgfplotsplothandlermesh@show@normals
+ % actually store 3d coordinates:
+ \let\pgfplotsplothandlermesh@serialize@logical@coords=\pgfplotsplothandlermesh@serialize@logical@coords@doit
+ \fi
+ %
+ % z buffering:
+ \pgfplotsplothandlermesh@init@zbuffer
+ %
+ \pgfplotsplothandlermesh@init@mesh@stream
+ %
+ \c@pgfplots@scanlineindex=0
+ }%
+ %
+ \let\pgfplotsplothandlerifcurrentpointcanbefirstlast=\pgfplotsplothandlerifcurrentpointcanbefirstlast@mesh
+}%
+
+\def\pgfplotsplothandlerifcurrentpointcanbefirstlast@mesh#1#2{%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{if current point can be first last}{#1}{#2}%
+}%
+
% Assigns default values to 'rows' and 'cols' in case
% their values are empty.
%
@@ -332,6 +600,7 @@
}%
}%
+% #1: will be expanded with \edef
\def\pgfplotsplothandlermesh@setnextvertex#1{%
\pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{set next vertex}{#1}%
}%
@@ -383,8 +652,11 @@
\pgfpathclose
},
get num cdata vertices=\pgfplotspatchclass{\pgfplotspatchclassname}{get vertices},
+ get dimension=2,
+ supports global path=0,
set edge visible=\expandafter\edef\csname pgfppatchedge@##1\endcsname{##2},
uses view depth=0,
+ if current point can be first last=##1,
serialize except vertices=\let\pgfplotsretval\pgfutil@empty,
deserialize except vertices=##1,
serialize={%
@@ -424,6 +696,9 @@
compute normal={%
\pgfplotsplothandlermesh@compute@normal@default
},%
+ sample in unit cube={%
+ \pgfplots@error{sample in unit cube: not implemented for \pgfplotspatchclassname}%
+ },
}%
}{}%
%
@@ -453,6 +728,9 @@
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ allow matrix\endcsname{\def\pgfplotsretval{#1}}},%
uses view depth/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ uses view depth\endcsname{\def\pgfplotsretval{#1}}},%
+ %
+ % creates a new patch. The vertices need to be added by 'set next
+ % vertex'
new/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ new\endcsname{#1}},%
%
@@ -468,6 +746,37 @@
set next vertex/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ set next vertex\endcsname##1{#1}},%
%
+ %
+ % Creates a new patch by means of sampling. The sampling is
+ % applied in the unit cube [0,1]x[0,1] (unit interval if this is an 1d patch
+ % type).
+ %
+ % 'sample in unit cube={<code to invoke for each sampled point>}'
+ %
+ % It will invoke <code to invoke for each sampled point> once for
+ % every sampled vertex. The complete unit cube will be covered.
+ % Depending on the patch type, either one or more patches are
+ % required to fill the unit cube. As soon as one patch is ready,
+ % \pgfplotspatchready will be invoked.
+ %
+ %
+ % PRECONDITION:
+ % -\pgfplotspatchready is defined.
+ %
+ % Arguments:
+ % #1: code which will be invoked whenever a new coordinate is
+ % ready. Inside of #1, the macros \pgfplotspatchclassx and
+ % \pgfplotspatchclassy result in the x and y coordinate (inside
+ % of the unit cube), in fixed point representation.
+ %
+ % Example:
+ % \def\pgfplotspatchready{}
+ % \pgfplotspatchclass{biquadratic}{sample in unit cube}{%
+ % point ready at (\pgfplotspatchclassx, \pgfplotspatchclassy)
+ % }
+ sample in unit cube/.code=
+ {\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ sample in unit cube\endcsname##1{#1}},%
+ %
% declares whether a single edge is visible or not.
% #1: an integer denoting the edge, either 0,1,2,...,N-1 where N = num verts
% #2: 0 if the edge is not to be stroked and 1 if it is stroked.
@@ -537,16 +846,32 @@
stream to shader/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ stream to shader\endcsname{#1}},%
%
- % expands to the number of vertices.
+ % defines \pgfplotsretval to contain the number of vertices.
get num vertices/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ get num vertices\endcsname{\def\pgfplotsretval{#1}}},%
%
- % expands to the number of vertices which have color data
+ % defines \pgfplotsretval to contain the number of vertices which have color data
% attached. This is usually the same as 'get num vertices' (but
% see coons patches).
get num cdata vertices/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ get num cdata vertices\endcsname{\def\pgfplotsretval{#1}}},%
%
+ % defines \pgfplotsretval to contain the dimension of this patch
+ % (either 1 for lines or 2 for patches).
+ get dimension/.code=
+ {\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ get dimension\endcsname{\def\pgfplotsretval{#1}}},%
+ %
+ % defines \pgfplotsretval to be 1 if and only if the patch class
+ % supports global paths.
+ % A global path is one which is drawn as one huge, uninterrupted
+ % PGF path (except for jumps perhaps). Its area can be filled,
+ % i.e. it behaves exactly like the 'sharp' plot handler. This is
+ % used implicitly if 'point meta=none' (if there is point meta
+ % data, we always want individual path segments and \pgfusepath
+ % them after each segment).
+ supports global path/.code=
+ {\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ supports global path\endcsname{\def\pgfplotsretval{#1}}},%
+ %
% Approximates the given patch by at least one triangle.
% For every finished triangle, \pgfplotspatchready will be invoked
% and \pgfplotsplothandlermesh@patchclass will be set to triangle.
@@ -597,6 +922,11 @@
% This method REQUIRES that 3d coordinates are stored (see \pgfplotsplothandlermesh@serialize@logical@coords).
compute normal/.code=
{\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ compute normal\endcsname{#1}},%
+ %
+ % executes '##1' if the current point can be the first or last
+ % point of the patch. Executes ##2 if that is not the case.
+ if current point can be first last/.code=
+ {\expandafter\def\csname pgfpptch\pgfplotsdeclarepatchclass@ if current point can be first last\endcsname##1##2{#1}},%
}
% This implements 'compute normal' :
@@ -721,14 +1051,26 @@
\pgfplotspatchready%
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \pgfplotspatchready
+ },%
+ get dimension=1,
+ supports global path=1,
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@line@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@line@A\endvertex #1%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@line@B\endvertex #1%
},
fill path={%
- \pgfpathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@line@A\endvertex}%
+ \pgfplotsplothandlermesh@pathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@line@A\endvertex}%
\pgfpathlineto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@line@B\endvertex}%
+ \pgfplotsplothandlermesh@setlastpoint{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@line@B\endvertex}%
},
serialize except vertices=\let\pgfplotsretval\pgfutil@empty,%
deserialize except vertices=,
@@ -736,6 +1078,37 @@
get pdf shading type=0,
}%
+\def\pgfplotsplothandlermesh@last@x{-16000pt}
+\def\pgfplotsplothandlermesh@last@y{-16000pt}
+
+\def\pgfplotsplothandlermesh@pathmoveto#1{%
+ \pgf@process{#1}%
+ \pgfpathmoveto{}%
+}
+\def\pgfplotsplothandlermesh@setlastpoint#1{%
+}
+
+% Applies a moveto to #1 - but only if #1 is NOT the last used path
+% segment.
+\def\pgfplotsplothandlermesh@pathmoveto@globalpath#1{%
+ \pgf@process{#1}%
+ \pgfplots@loc@tmptrue
+ \ifdim\pgf@x=\pgfplotsplothandlermesh@last@x\relax
+ \ifdim\pgf@y=\pgfplotsplothandlermesh@last@y\relax
+ \pgfplots@loc@tmpfalse
+ \fi
+ \fi
+ \ifpgfplots@loc@tmp
+ \pgfpathmoveto{}%
+ \fi
+}%
+
+\def\pgfplotsplothandlermesh@setlastpoint@globalpath#1{%
+ \pgf@process{#1}%
+ \xdef\pgfplotsplothandlermesh@last@x{\the\pgf@x}%
+ \xdef\pgfplotsplothandlermesh@last@y{\the\pgf@y}%
+}%
+
\pgfplotsdeclarepatchclass{triangle}{%
allow matrix=0,
new=\def\pgfplotspatchclass@tri@no{0}\let\pgfplotspatchclass@trie@AB\relax,
@@ -752,6 +1125,30 @@
\pgfplotspatchready%
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \pgfplotspatchready
+ %
+ %
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@tri@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@tri@A\endvertex #1%
@@ -917,6 +1314,21 @@
\pgfplotspatchready%
\fi
},
+ sample in unit cube={%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{0}%
+ #1%
+ \def\pgfplotspatchclassx{1}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \def\pgfplotspatchclassx{0}%
+ \def\pgfplotspatchclassy{1}%
+ #1%
+ \pgfplotspatchready
+ },%
first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@rect@A\endvertex,
foreach vertex={%
\expandafter\pgfplotspatchvertex\pgfplotspatchclass@rect@A\endvertex #1%
@@ -1027,8 +1439,10 @@
% Thus, \csname #1A\endcsname is the first vertex, \csname #1B\endcsname the second
% and #1C, #1D the third and fourth.
%
-% #2: A macro name. It will be defined to be either A,B,C or D.
-% #3: A macro name. It will be defined to be either empty or 'r'. If
+% [output] #2: A macro name which will be filled with the FIRST point
+% to stream to the shader. It will be defined to be either A,B,C or D.
+% [output] #3: A macro name which indicates whether the stream shall
+% be forward or backward. It will be defined to be either empty or 'r'. If
% it is empty, the coons patch shall be in the sequence
% #2,next(#2),next(next(#2),....
% If it is 'r', the coons patch shall be in the sequence
@@ -1078,273 +1492,40 @@
\def#3{}%
}
-% The low-level tikz plot handler for 3D mesh and surface plots.
-%
-% It expects
-% a) a coordinate stream which is a linearized matrix, iterated either
-% rowwise or column wise,
-% b) the current set of options in /pgfplots/mesh/.
-%
-%
-% ATTENTION:
-% this handler is NOT as general as the others. In particular, it
-% can't be interrupted by TeX groups: every single statement,
-% starting with streamstart and ending with stream end, must be in
-% the same scope!
-%
-% As a consequence, you can't use this handler inside of (all) TikZ
-% input streams. Try it out. It will work in pgfplots, however.
-%
-% Furthermore, it relies on a couple of pgfplots macros. This may
-% change in future versions.
-% It relies on:
-% - \ifpgfplots@curplot@threedim
-% - \pgfplots@current@point@meta
-% -> it also invokes \pgfplots@perpointmeta@preparetrafo and its
-% @APPLY counterpart which checks for
-% - \pgfplots@metamax
-% If you use it outside of pgfplots, use
-% \global\let\pgfplots@metamax=\pgfutil@empty
-% This is can be used without an initialised
-% pgfplots axes - as long as \pgfplots@current@point@meta is in
-% the range [0,1000].
-% - for the case 'shader=interp', a bounding box must be established
-% before the plot is finished. This must be done using
-% \def\pgfplotspointbbupperright{\pgfqpointxyz{2}{2}{0.9}}
-% \def\pgfplotspointbblowerleft {\pgfqpointxyz{0}{0}{0.1}}
-% or something like that.
-%
-% Besides these internals, it also relies on all public /pgfplots
-% configuration keys related to mesh/surface plots.
-%
-% Please note that the 'z buffer' feature will not work without
-% pgfplots (especially the z buffer=sort feature).
+\def\pgfplotsplothandlermesh@patchclass@defaulttext{default}%
+
+% This is a VERY special case. The idea is to switch to
+% "normal" path mode:
+% \pgfpathmoveto \pgfpathlineto \pgfpathlineto
+% \pgfpathlineto \pgfusepath.
%
-% Here is an example which compiles without a pgfplots axes:
-% ----------------------------------------------------------
-% \begin{tikzpicture}
-% \scope[
-% /pgfplots/.cd,
-% surf,
-% shader=faceted,
-% mesh/rows=4,
-% mesh/cols=4,
-% mesh/num points=,
-% /tikz/x={(0.44237cm,-0.07439cm)},
-% /tikz/y={(0.30942cm,0.23932cm)},
-% /tikz/z={(0.0cm,1.5cm)},
-% ]
-% \makeatletter
-%
-% \global\let\pgfplots@metamax=\pgfutil@empty
-% \pgfplots@curplot@threedimtrue
-%
-% \pgfplotsplothandlermesh
-% \pgfplotstreamstart
-%
-% \def\rangea{0.21}%
-% \def\rangeb{0.9}%
-%
-% \pgfmathparse{1000/(\rangeb-\rangea)}
-% \let\factor=\pgfmathresult
-%
-% \def\simplecoordinate(#1,#2,#3){%
-% \pgfmathparse{\factor*(#3 - \rangea)}%
-% \let\pgfplots@current@point@meta=\pgfmathresult
-% \pgfplotstreampoint{\pgfqpointxyz{#1}{#2}{#3}}%
-% }%
-% % for the case 'shaer=interp':
-% \def\pgfplotspointbbupperright{\pgfqpointxyz{2}{2}{0.9}}
-% \def\pgfplotspointbblowerleft {\pgfqpointxyz{0}{0}{0.1}}
-%
-% \simplecoordinate(0,3,0.7)
-% \simplecoordinate(1,3,0.5)
-% \simplecoordinate(2,3,0.58)
-% \simplecoordinate(3,3,0.9)
-%
-% \simplecoordinate(0,2,0.68)
-% \simplecoordinate(1,2,0.22)
-% \simplecoordinate(2,2,0.25)
-% \simplecoordinate(3,2,0.4)
-%
-% \simplecoordinate(0,1,0.6)
-% \simplecoordinate(1,1,0.3)
-% \simplecoordinate(2,1,0.21)
-% \simplecoordinate(3,1,0.3)
-%
-% \simplecoordinate(0,0,0.8)
-% \simplecoordinate(1,0,0.56)
-% \simplecoordinate(2,0,0.5)
-% \simplecoordinate(3,0,0.75)
-%
-%
-% \pgfplotstreamend
-% \pgfusepath{stroke}
-%
-% \endscope
-% \end{tikzpicture}
-% ----------------------------------------------------------
-% END OF EXAMPLE
-% -> see also the legend image for mesh plots.
+% Note that the mesh handler's default is to issue
+% \pgfusepath after *each* elementary patch.
%
-\def\pgfplotsplothandlermesh{%
- \pgfkeysgetvalue{/pgfplots/patch type}\pgfplotsplothandlermesh@patchclass
- \ifx\pgfplotsplothandlermesh@patchclass\pgfplotsplothandlermesh@patchclass@defaulttext
- \let\pgfplotsplothandlermesh@patchclass=\pgfutil@empty
- \fi
- % FIXME : detect 1d mode here!
- \ifx\pgfplotsplothandlermesh@patchclass\pgfutil@empty
- % assign default patch class.
- \if1\pgfplotsplothandlermesh@matrixinput
- \def\pgfplotsplothandlermesh@patchclass{rectangle}%
- \else
- \def\pgfplotsplothandlermesh@patchclass{triangle}%
- \fi
- \pgfkeyslet{/pgfplots/patch type}\pgfplotsplothandlermesh@patchclass
- \fi
- %
- \if0\pgfplotsplothandlermesh@matrixinput
- % mesh input=patches: simply skip empty input lines:
- \pgfkeyssetvalue{/pgfplots/empty line}{none}%
- \fi
- %
- \pgfkeysgetvalue{/pgfplots/patch table/value}\pgfplotsplothandlermesh@patchtable
- \ifx\pgfplotsplothandlermesh@patchtable\pgfutil@empty
+% This special use-case might not cover all aspects of the
+% mesh/surf/patch plot handler.
+\def\pgfplotsplothandlermesh@init@path@without@point@meta{%
+ %
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{supports global path}%
+ \ifnum\pgfplotsretval=1 %
+ \def\pgfplotsplothandlermesh@definecolor{%
+ % no-op
+ }%
+ % FIXME : this does not handle separate edges, i.e.
+ % \pgfplotsplothandlermesh@VISUALIZE@std@separate@fillstroke
+ \def\pgfplotsplothandlermesh@VISUALIZE{\pgfplotsplothandlermesh@VISUALIZE@globalpath@fill@andor@stroke}%
+ \let\pgfplotsplothandlermesh@pathmoveto=\pgfplotsplothandlermesh@pathmoveto@globalpath
+ \let\pgfplotsplothandlermesh@setlastpoint=\pgfplotsplothandlermesh@setlastpoint@globalpath
+ %
+ % This activates tikz colors:
+ %\tikz@options
+ \pgfplots@drawoptions
+ % Acquire the values for \tikz@mode@* [used for faceted]
+ \pgfplots@drawmodes
\else
- \def\pgfplotsplothandlermesh@matrixinput{0}% implies 'patch input=patches'
- \let\pgfplotsplothandlersurveystart=\pgfplotsplothandlersurveystart@mesh@patchtable
- \let\pgfplotsplothandlersurveypoint=\pgfplotsplothandlersurveypoint@mesh@patchtable
- \let\pgfplotsplothandlersurveyend=\pgfplotsplothandlersurveyend@mesh@patchtable
+ \pgfplots@error{Please provide 'point meta' for your plot. Omitting point meta is only supported for 1d patch types.}%
\fi
- \def\pgf@plotstreamstart{%
-% \scope
- %
- % this shouldn't be necessary, but it doesn't hurt either.
- \pgfplots@perpointmeta@preparetrafo
- %
- \def\pgfplotsplothandlermesh@ONEDIMMODE{0}%
- \pgfplotsplothandlermesh@init@meshkeys
- %
- %
- \let\pgfplotsplothandlermesh@patchclass@input=\pgfplotsplothandlermesh@patchclass
- \let\pgfplotsplothandlermesh@patchclass@output=\pgfplotsplothandlermesh@patchclass@input
- \if0\pgfplotsplothandlermesh@triangulate
- \else
- \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@input}{triangulate class}%
- \let\pgfplotsplothandlermesh@patchclass@output=\pgfplotsretval
- \fi
- %
- \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@input}{init}%
- \ifx\pgfplotsplothandlermesh@patchclass@input\pgfplotsplothandlermesh@patchclass@output
- \else
- \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{init}%
- \fi
- %
- % assign boolean:
- \let\b@pgfplotsplothandlermesh@matrixoutput=\pgfplotsplothandlermesh@matrixinput
- \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{allow matrix}%
- \if0\pgfplotsretval
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- \ifnum\pgfkeysvalueof{/pgfplots/patch refines}>0
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- \if1\pgfplotsaxisplothasjumps
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- \if\pgfplotsplothandlermesh@zbuffer@choice4% 'z buffer=sort':
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- %
- \if2\pgfplotsplothandlermesh@shader
- % shader=interp
- %
- \pgfkeysgetvalue{/pgfplots/mesh/interior colormap name}\pgfplots@loc@TMPc
- \ifx\pgfplots@loc@TMPc\pgfutil@empty
- \else
- \pgfplots@warning{the combination 'shader=interp,interior colormap name' is inefficient (it uses 'shader=faceted interp,faceted color=none') and may slow down the *display* of your document}%
- \pgfplotsset{shader=faceted interp,faceted color=none}%
- \fi
- \fi
- \if2\pgfplotsplothandlermesh@shader
- \else
- % 'shader!=interp'
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass@output}{get pdf shading type}%
- \if4\pgfplotsretval
- \else
- \if5\pgfplotsretval
- \else
- \def\b@pgfplotsplothandlermesh@matrixoutput{0}%
- \fi
- \fi
- %
- % special handling: check if Type=5 shadings need to be
- % converted to Type=4
- \if0\b@pgfplotsplothandlermesh@matrixoutput
- % no matrix output possible
- \if5\pgfplotsretval
- % pdf shading type=5 (matrix output)
- \if2\pgfplotsplothandlermesh@shader
- % shader=interp
- %
- % oh. shading type=5 is *essentially* the same as
- % matrix output, but matrix output is forbidden.
- % In that case, triangulate the matrix and shade the
- % triangles:
- \def\pgfplotsplothandlermesh@triangulate{1}%
- \def\pgfplotsplothandlermesh@patchclass@output{triangle}%
- % Note shader=faceted interp can be written as
- % matrix -- it shades individual elements anyway;
- % and one single patch can be written as matrix.
- \fi
- \fi
- \fi
- %
- \pgfplotsplothandlermesh@init@DECODE
- \pgfplotsplothandlermesh@init@REFINE
- %
- \pgfutil@ifundefined{pgfplots@drawmodes}{%
- \let\pgfplots@drawmodes=\tikz@mode
- \let\pgfplots@drawoptions=\tikz@options
- }{}%
- %
- %
- % Prepare color data source:
- \ifx\pgfplotspointmetainputhandler\pgfutil@empty%
- % oh. There is no color data!? Well... then use a constant
- % color.
- %
- % This activates tikz colors:
- %\tikz@options
- \def\pgfplotsplothandlermesh@definecolor{%
- \pgfplots@drawoptions
- }%
- \else
- \pgfplotsplothandlermesh@init@cdata
- \pgfplotsplothandlermesh@init@shader
- \pgfplotsplothandlermesh@init@flat@color
- \fi
- % PREPARE THE STREAM PROCESSING:
- % handling of jumps.
- \pgfplotsplothandlermesh@init@jumphandling
- %
- \ifpgfplotsplothandlermesh@shownormals
- \let\pgfplotsplothandlermesh@show@normals@if@configured=\pgfplotsplothandlermesh@show@normals
- % actually store 3d coordinates:
- \let\pgfplotsplothandlermesh@serialize@logical@coords=\pgfplotsplothandlermesh@serialize@logical@coords@doit
- \fi
- %
- % z buffering:
- \pgfplotsplothandlermesh@init@zbuffer
- %
- \pgfplotsplothandlermesh@init@mesh@stream
- %
- \c@pgfplots@scanlineindex=0
- }%
-}%
-\def\pgfplotsplothandlermesh@patchclass@defaulttext{default}%
+}
% implements 'show normals'. Keep in mind that this is more-or-less a
% debugging helper, not productive code.
@@ -1502,9 +1683,17 @@
\pgfplotsplothandlermesh@usepath
\pgfplotsplothandlermesh@show@normals@if@configured
}%
-\let\pgfplotsplothandlermesh@VISUALIZE@std=\pgfplotsplothandlermesh@VISUALIZE@std@fill@andor@stroke
-\let\pgfplotsplothandlermesh@VISUALIZE=\pgfplotsplothandlermesh@VISUALIZE@std
+% a special VISUALIZE implementation which allows to draw a CONTINUOS
+% global path, i.e. one which is not "\pgfusepath"ed after each patch
+% segment. This is only used if 'point meta=none'
+\def\pgfplotsplothandlermesh@VISUALIZE@globalpath@fill@andor@stroke{%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{fill path}%
+}%
+
+\def\pgfplotsplothandlermesh@VISUALIZE@std{\pgfplotsplothandlermesh@VISUALIZE@std@fill@andor@stroke}
+
+\def\pgfplotsplothandlermesh@VISUALIZE{\pgfplotsplothandlermesh@VISUALIZE@std}
\let\pgfplotsplothandlermesh@show@normals@if@configured\relax
@@ -1765,6 +1954,12 @@
% mesh input=patches
\pgfkeys{/pgfplots/mesh/ordering/x varies}% disable any special handling.
\fi
+ %
+ \pgfplotspatchclass{\pgfkeysvalueof{/pgfplots/patch type}}{get dimension}%
+ \ifnum\pgfplotsretval=1 %
+ \def\pgfplots@meshmode{m}% mesh.
+ \fi
+ %
}%
\let\pgfplotsplothandlermesh@interior@exterior@hook=\relax
@@ -1904,9 +2099,6 @@
\def\pgfplotsplothandlermesh@init@shader{%
%
% Now, process the 'shader' key here:
- \if\pgfplotsplothandlermesh@ONEDIMMODE1
- \def\pgfplots@meshmode{m}% 'mesh'
- \fi
\if\pgfplots@meshmode m% mesh
% this is processed by the 'shader=flat' code below.
\def\pgfplotsplothandlermesh@shader{0}% 'flat'
@@ -2276,7 +2468,7 @@
\pgfmathparse{1000/(\rangeb-\rangea)}
\let\factor=\pgfmathresult
- \pgfutil@ifundefined{pgfqpointxyz@orig}{%
+ \pgfutil@IfUndefined{pgfqpointxyz@orig}{%
\let\pgfqpointxyz@orig=\pgfqpointxyz
}{}%
%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
index 961362a1857..9d17a2e157d 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex
@@ -404,7 +404,63 @@
\expandafter\pgfplotsplothandlers@init@\expandafter{\pgfplots@loc@TMPa}%
}%
%
+ \if1\b@pgfplots@compat@bar@width@units
+ \else
+ \def\pgfplotbarwidth{\pgfplots@bar@width@not@in@context}%
+ \def\pgfplotbarshift{\pgfplots@bar@shift@not@in@context}%
+ \pgfplotsutil@add@to@macro\pgfplothandlerxbar{%
+ \def\pgfplotbarwidth{\pgfplots@xbar@width}%
+ \def\pgfplotbarshift{\pgfplots@xbar@shift}%
+ }%
+ \pgfplotsutil@add@to@macro\pgfplothandlerybar{%
+ \def\pgfplotbarwidth{\pgfplots@ybar@width}%
+ \def\pgfplotbarshift{\pgfplots@ybar@shift}%
+ }%
+ \fi
+ %
\pgfplotsplothandlers@init@map@to@patched@versions
+ %
+}%
+
+\def\pgfplots@xbar@width{pgfplotsxbarwidth}
+\def\pgfplots@ybar@width{pgfplotsybarwidth}
+\def\pgfplots@xbar@shift{pgfplotsxbarshift}
+\def\pgfplots@ybar@shift{pgfplotsybarshift}
+\def\pgfplots@bar@width@not@in@context{pgfplotsbarwidthgeneric}
+\def\pgfplots@bar@shift@not@in@context{pgfplotsbarshiftgeneric}
+
+\pgfmathdeclarefunction{pgfplotsxbarwidth}{0}{\pgfplots@bar@mathparse@{y}{bar width}}%
+\pgfmathdeclarefunction{pgfplotsybarwidth}{0}{\pgfplots@bar@mathparse@{x}{bar width}}%
+\pgfmathdeclarefunction{pgfplotsxbarshift}{0}{\pgfplots@bar@mathparse@{y}{bar shift}}%
+\pgfmathdeclarefunction{pgfplotsybarshift}{0}{\pgfplots@bar@mathparse@{x}{bar shift}}%
+\pgfmathdeclarefunction{pgfplotsbarwidthgeneric}{0}{\pgfplots@bar@mathparse@{N}{bar width}}%
+\pgfmathdeclarefunction{pgfplotsbarshiftgeneric}{0}{\pgfplots@bar@mathparse@{N}{bar shift}}%
+
+\def\pgfplots@bar@mathparse@#1#2{%
+ \pgfmathparse{\pgfkeysvalueof{/pgf/#2}}%
+ \ifpgfmathunitsdeclared
+ \else
+ \if N#1%
+ \pgfplots@bar@mathparse@error{#1}{#2}%
+ \else
+ \let\pgfplots@loc@TMPa=\pgfmathresult
+ \csname pgfplotstransformdirection#1\endcsname{\pgfplots@loc@TMPa}%
+ \let\pgfplots@loc@TMPa=\pgfmathresult
+ \if#1x%
+ \pgfqpointxy{\pgfplots@loc@TMPa}{0}%
+ \edef\pgfmathresult{\pgf@sys@tonumber\pgf@x}%
+ \else
+ \pgfqpointxy{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}}%
+ %\expandafter\pgfmathveclen@\pgfplots@loc@TMPa
+ \fi
+ \fi
+}%
+
+\def\pgfplots@bar@mathparse@error#1#2{%
+ \pgfplots@error{Sorry, the value '#2=\pgfkeysvalueof{/pgf/#2}' is given in terms of a unit -- but I do not know which axis! Please set one of 'xbar' or 'ybar' before evaluating the value of '#2'}%
}%
% Resets the plot handler routines.
@@ -425,6 +481,7 @@
\let\pgfplotsplothandlersurveydifflen=\pgfplotsplothandlersurveydifflen@default
\let\pgfplotsplothandlersurveypointattime=\pgfplotsplothandlersurveypointattime@default
\let\pgfplotsplothandlertransformslopedattime=\pgfplotsplothandlertransformslopedattime@default
+ \let\pgfplotsplothandlerifcurrentpointcanbefirstlast=\pgfplotsplothandlerifcurrentpointcanbefirstlast@default
}%
% \pgfplotsplothandlersurveystart
@@ -435,6 +492,13 @@
[tikz@plot@handler: \meaning\pgf@plotstreamstart]%
}%
+% \pgfplotsplothandlerifcurrentpointcanbefirstlast : can be used to
+% check if the current point of a plot handler can be the global first
+% or last segment.
+% It will execute #1 if that is the case and #2 if not.
+\def\pgfplotsplothandlerifcurrentpointcanbefirstlast@default#1#2{#1}%
+
+
% \pgfplotsplothandlersurveyend
% Called at the end of each survey phase.
\def\pgfplotsplothandlersurveyend@default{}
@@ -1852,6 +1916,7 @@
contour external/scanline marks/required/.code={\def\pgfplotsplothandlercontourexternal@scanlinemode{2}},
contour external/scanline marks/true/.code={\def\pgfplotsplothandlercontourexternal@scanlinemode{2}},
contour external/scanline marks/if in input,
+ contour external/output point meta/.initial=,
contour external/file/.initial=,% auto-generate
contour external/script extension/.initial=script,
contour external/script/.initial=,% not yet initialised
@@ -2479,10 +2544,15 @@
\pgfplotsplothandlercontourprepared
\let\pgfplots@coord@stream@start=\relax% has already been done.
\def\pgfplots@coord@stream@end{\pgfplotsplothandlersurveyend}%
- \ifpgfplots@curplot@threedim
- \pgfplotssetpointmetainput{z}{}%
+ \pgfkeysgetvalue{/pgfplots/contour external/output point meta}\pgfplots@loc@TMPa
+ \ifx\pgfplots@loc@TMPa\pgfutil@empty
+ \ifpgfplots@curplot@threedim
+ \pgfplotssetpointmetainput{z}{}%
+ \else
+ \pgfplotssetpointmetainput{explicit}{}%
+ \fi
\else
- \pgfplotssetpointmetainput{explicit}{}%
+ \expandafter\pgfplots@pgfkeys@set@point@meta@value\expandafter{\pgfplots@loc@TMPa}%
\fi
\pgfplots@addplotimpl@file@streamit{\pgfplotsplothandlercontourexternal@file.table}%
\closein\r@pgfplots@reada
diff --git a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
index b908154f070..a76168b25db 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex
@@ -266,12 +266,12 @@
{\csname pgfplots@current@point@\pgfplots@stacked@dir\endcsname}}%
}{%
% LOG. we need to compute log(zerolevel + current):
- % FIXME : this is WRONG!
- % 1. I need 'default' because I need to deal with arbitrary floats.
- % 2. I need the correct log basis -- which, however, is only
- % available as argument for coordmath \pgfplots@stacked@dir!
- \pgfplotscoordmath{default}{parsenumber}{\csname pgfplots@current@point@\pgfplots@stacked@dir\endcsname}%
- \pgfplotscoordmath{default}{exp}{\pgfmathresult}%
+ % FIXME : this might work, but is is hackery - because the
+ % coordmath framework handles log bases in a very stupid way.
+ % improve it somehow!
+ \edef\pgfmathresult{\csname pgfplots@current@point@\pgfplots@stacked@dir\endcsname}%
+ \pgfplotscoordmath{\pgfplots@stacked@dir}{exp}{\pgfmathresult}%
+ \pgfplotscoordmath{default}{parsenumber}{\pgfmathresult}%
\expandafter\let\csname pgfplots@current@point@\pgfplots@stacked@dir\endcsname=\pgfmathresult
\pgfplotscoordmath{default}{op}{\pgfplots@stacked@op}{%
{\csname pgfplots@stacked@zerolevelpoint@\pgfplots@stacked@dir\endcsname}%
diff --git a/Master/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def b/Master/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def
index e8e9a4568a4..d28777ad4dd 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def
+++ b/Master/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def
@@ -98,7 +98,7 @@
}%
%
% \pgfplots@loc@TMPb := final boolean luaBinaryEncoding;
- \pgfutil@ifundefined{directlua}{%
+ \pgfutil@IfUndefined{directlua}{%
\def\pgfplots@loc@TMPb{0}%
}{%
\ifx\pgfplotslibrarysurf@filter@decode\pgfutil@empty
diff --git a/Master/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex b/Master/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex
index f4bd3054304..155e05d9aee 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex
@@ -76,7 +76,7 @@
\fi
}
-\pgfutil@ifundefined{AtBeginDocument}{%
+\pgfutil@IfUndefined{AtBeginDocument}{%
}{%
\AtBeginDocument{%
\pgfplots@show@suggested@compat@value
diff --git a/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex b/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex
index c9baffcb6dd..6414f57a9a8 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex
@@ -220,7 +220,7 @@
%
% The standard method - it results in binary encoded numbers.
binary encoding/.code={%
- \pgfutil@ifundefined{directlua}{%
+ \pgfutil@IfUndefined{directlua}{%
\let\pgfplotscharno=\pgfplotscharno@bincatcode
}{%
% Ah - we use LuaTeX!
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 0c1f8dc41fe..0ef2cb01c8d 100644
--- a/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex
+++ b/Master/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex
@@ -83,16 +83,16 @@
% #1: the required LaTeX package
% #2: the feature which requires this package
\def\pgfplots@assert@LaTeX@package@loaded#1#2{%
- \pgfutil@ifundefined{@ifpackageloaded}{%
+ \pgfutil@IfUndefined{@ifpackageloaded}{%
\pgfplots@error{Sorry, #2 only works with LaTeX (it relies on the LaTeX package #1)}%
}{%
- \pgfutil@ifundefined{ver@#1.sty}% this here has been extracted from ltclass.dtx. \@ifpackageloaded is only usable in preamble.
+ \pgfutil@IfUndefined{ver@#1.sty}% this here has been extracted from ltclass.dtx. \@ifpackageloaded is only usable in preamble.
{\pgfplots@error{Sorry, use need \string\usepackage{#1} in your preamble for '#2'}}%
{\relax}%
}%
}%
\def\pgfplots@assert@tikzinternal@exists#1{%
- \pgfutil@ifundefined{#1}{%
+ \pgfutil@IfUndefined{#1}{%
\pgfplots@error{Sorry, pgfplots relies on the existance of the tikz internal macro '#1'.
Unfortunately, this does no longer exist ... you will need to get an updated version of pgfplots to fix this problem.}%
\expandafter\let\csname #1\endcsname=\pgfutil@empty
@@ -119,7 +119,7 @@
% #2: a macro name WITHOUT backslash.
% #3: the default value if everything fails.
\def\pgfplots@gettikzinternal@keyval#1#2#3{%
- \pgfutil@ifundefined{#2}{%
+ \pgfutil@IfUndefined{#2}{%
\pgfkeysifdefined{/tikz/#1}{%
\pgfkeysgetvalue{/tikz/#1}\pgfplots@TMP
\expandafter\let\csname #1\endcsname=\pgfplots@TMP
@@ -138,7 +138,7 @@
}%
\def\pgfplots@getcurrent@plothandler#1{%
- \pgfutil@ifundefined{tikz@plot@handler}{%
+ \pgfutil@IfUndefined{tikz@plot@handler}{%
\pgfplots@error{Sorry, can't get the current plot handler. It appears that tikz and pgfplots is no longer compatible!? You will need to get a newer version of pgfplots.}%
\let#1=\pgfplothandlerlineto
}{%
@@ -212,7 +212,7 @@
}%
\pgfplots@command@to@string\pgfplotsutil@@arg@ifdefined\pgfplotsutil@@arg@ifdefined
\expandafter\pgfplotsutil@trim\expandafter{\pgfplotsutil@@arg@ifdefined}%
- \pgfutil@ifundefined{\pgfplotsretval}{#3}{#2}%
+ \pgfutil@IfUndefined{\pgfplotsretval}{#3}{#2}%
}%
% The same as \pgfplotsutil@ifdefinedui but appends the suffix '#2' to
% '#1' after '#1' has been normalized.
@@ -223,7 +223,7 @@
}%
\pgfplots@command@to@string\pgfplotsutil@@arg@ifdefined\pgfplotsutil@@arg@ifdefined
\expandafter\pgfplotsutil@trim\expandafter{\pgfplotsutil@@arg@ifdefined}%
- \pgfutil@ifundefined{\pgfplotsretval #2}{#4}{#3}%
+ \pgfutil@IfUndefined{\pgfplotsretval #2}{#4}{#3}%
}%
% Writes the command name of '#1' without the leading backslash to
@@ -804,6 +804,18 @@
%
\edef\pgfplots@loc@TMPb{#4}%
\expandafter\pgfplotsforeachlogarithmicungrouped@readdomain\pgfplots@loc@TMPb\relax
+ \pgfplotscoordmath{\pgfplotsforeachlogarithmicmathid}{if is bounded}{\pgfplots@foreach@loc@TMPb}{%
+ }{%
+ \pgfplotsforeachlogarithmicmath@unbounded@domain{#4}%
+ \pgfplotscoordmath{\pgfplotsforeachlogarithmicmathid}{parsenumber}{-10000}%
+ \let\pgfplots@foreach@loc@TMPb=\pgfmathresult
+ }%
+ \pgfplotscoordmath{\pgfplotsforeachlogarithmicmathid}{if is bounded}{\pgfplots@foreach@loc@TMPa}{%
+ }{%
+ \pgfplotsforeachlogarithmicmath@unbounded@domain{#4}%
+ \pgfplotscoordmath{\pgfplotsforeachlogarithmicmathid}{parsenumber}{-10000}%
+ \let\pgfplots@foreach@loc@TMPa=\pgfmathresult
+ }%
% compute mesh width into \pgfplots@foreach@loc@TMPc:
% \pgfplots@foreach@loc@TMPc := h := ( log(xmax) - log(xmin) ) / (N-1)
\pgfplotscoordmath{\pgfplotsforeachlogarithmicmathid}{op}{subtract}{{\pgfplots@foreach@loc@TMPb}{\pgfplots@foreach@loc@TMPa}}%
@@ -841,6 +853,11 @@
% restore scoped variables:
\pgfplots@foreach@loc@TMPd
}
+
+\def\pgfplotsforeachlogarithmicmath@unbounded@domain#1{%
+ \pgfplots@error{Sorry, the provided domain #1 is unsuitable for logarithmic sampling (applying the log results in unbounded values)}%
+}%
+
% can be used to convert the number format from float to something
% else.
\def\pgfplotsforeachlogarithmicungrouped@finalizeresult{}%
@@ -930,7 +947,7 @@
}
\def\pgfplots@logfileopen#1{%
\immediate\write-1{PGFPlots: reading {#1}}%
- \pgfutil@ifundefined{tikzifexternalizingcurrent}{%
+ \pgfutil@IfUndefined{tikzifexternalizingcurrent}{%
% version not up-to-date or external lib not loaded?
}{%
% adjust the .dep file only if we are externalizing.
@@ -1162,7 +1179,7 @@
-\pgfutil@ifundefined{pgfmathdeclarefunction}{%
+\pgfutil@IfUndefined{pgfmathdeclarefunction}{%
% BACKWARDS COMPATIBILITY: We have PGF 2.00 :
\def\pgfplotsmathdeclarepseudoconstant#1#2{%
\t@pgfplots@toka=\expandafter{\csname pgfmath#1@\endcsname}%
@@ -1459,12 +1476,12 @@
% defines \pgfplotsretval to be
%
-% \tikzifinpicture{#1}{#2}
+% \ifpgfpicture #1\else #2\fi
%
% and handles the '/pgfplots/invoke before crossref tikzpicture' key.
%
-% #1 first argument to \tikzifinpicture
-% #2 second argument to \tikzifinpicture
+% #1 first argument to \ifpgfpicture
+% #2 second argument to \ifpgfpicture
\def\pgfplots@assemble@ref@picture#1#2{%
\begingroup
\pgfkeysgetvalue{/pgfplots/invoke before crossref tikzpicture}\pgfplots@loc@TMPa
@@ -1474,13 +1491,13 @@
\toks2={#2}%
\toks3=\expandafter{\pgfplots@loc@TMPb}%
\xdef\pgfplots@glob@TMPa{%
- \noexpand\tikzifinpicture
- {\the\toks0}%
- {%
- \the\toks1
- \the\toks2
- \the\toks3
- }%
+ \noexpand\ifpgfpicture
+ \the\toks0 %
+ \noexpand\else
+ \the\toks1
+ \the\toks2
+ \the\toks3
+ \noexpand\fi
}%
\endgroup
\let\pgfplotsretval=\pgfplots@glob@TMPa
@@ -1491,7 +1508,7 @@
\immediate\write\@auxout{#1}%
\fi
}%
-\pgfutil@ifundefined{if@filesw}{%
+\pgfutil@IfUndefined{if@filesw}{%
\def\pgfplots@auxwrite#1{}%
}{%
\let\pgfplots@auxwrite=\pgfplots@auxwrite@latex
@@ -1958,10 +1975,17 @@
\gdef\pgfplotsHASH{#}%
\catcode`\%=12 \gdef\pgfplotsPERCENT{%}}
-\pgfutil@ifundefined{directlua}{}{%
+\pgfutil@IfUndefined{directlua}{}{%
\directlua{require(\pgfplotsDQ pgfplots.lua\pgfplotsDQ)}%
}%
+% swaps the content of two macros
+\def\pgfplotsutil@swap#1#2{%
+ \let\pgfplotsutil@swap@=#1%
+ \let#1=#2%
+ \let#2=\pgfplotsutil@swap@
+}%
+
\input pgfplotsliststructure.code.tex
\input pgfplotsliststructureext.code.tex
\input pgfplotsarray.code.tex
diff --git a/Master/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clickable.code.tex b/Master/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clickable.code.tex
index 416f0f22836..5fce5642009 100644
--- a/Master/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clickable.code.tex
+++ b/Master/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clickable.code.tex
@@ -195,7 +195,7 @@
\iwvo{\endgroup}
\iwvo{\string\endinput}%
}
-\pgfutil@ifundefined{write@objs}{}{%
+\pgfutil@IfUndefined{write@objs}{}{%
\ifx\write@objs\write@objs@BUGGY
\let\write@objs=\write@objs@CORRECT
\fi
diff --git a/Master/texmf-dist/tex/latex/pgfplots/pgfplots.sty b/Master/texmf-dist/tex/latex/pgfplots/pgfplots.sty
index b394ca10f7e..1f4f8113da6 100644
--- a/Master/texmf-dist/tex/latex/pgfplots/pgfplots.sty
+++ b/Master/texmf-dist/tex/latex/pgfplots/pgfplots.sty
@@ -23,13 +23,12 @@
% along with this program. If not, see <http://www.gnu.org/licenses/>.
%
%--------------------------------------------
-\def\pgfplotsversion{1.6.1}
-\IfFileExists{pgfplots.revision.tex}{\input pgfplots.revision.tex } {\def\pgfplotsrevision{}}
-\ifx\pgfplotsrevision\pgfutil@empty
-\else
- \edef\pgfplotsrevision{\space(git show \pgfplotsrevision)}%
-\fi
-\ProvidesPackage{pgfplots}[2012/08/23 v\pgfplotsversion\pgfplotsrevision]
+\IfFileExists{pgfplots.revision.tex}{\input pgfplots.revision.tex } {%
+ \def\pgfplotsrevision{???}%
+ \def\pgfplotsversion{???}%
+ \def\pgfplotsversiondate{???}%
+}
+\ProvidesPackage{pgfplots}[\pgfplotsversiondate\space v\pgfplotsversion\space Data Visualization (\pgfplotsrevision)]
% ATTENTION:
% you MAY need one of
diff --git a/Master/texmf-dist/tex/latex/pgfplots/pgfplotstable.sty b/Master/texmf-dist/tex/latex/pgfplots/pgfplotstable.sty
index e5cbf82e730..ac619f7fd1b 100644
--- a/Master/texmf-dist/tex/latex/pgfplots/pgfplotstable.sty
+++ b/Master/texmf-dist/tex/latex/pgfplots/pgfplotstable.sty
@@ -18,7 +18,12 @@
% along with this program. If not, see <http://www.gnu.org/licenses/>.
%
%--------------------------------------------
-\ProvidesPackage{pgfplotstable}[2012/08/23 Part of pgfplots]
+\IfFileExists{pgfplots.revision.tex}{\input pgfplots.revision.tex } {%
+ \def\pgfplotsrevision{???}%
+ \def\pgfplotsversion{???}%
+ \def\pgfplotsversiondate{???}%
+}
+\ProvidesPackage{pgfplotstable}[\pgfplotsversiondate\space v\pgfplotsversion\space Table typesetting and Pretty-printing (\pgfplotsrevision)]
\RequirePackage{pgfplots}