summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-02 03:02:44 +0000
committerNorbert Preining <norbert@preining.info>2020-03-02 03:02:44 +0000
commit6276231aa1cc25fe33679b149fdbaca5471ca8a4 (patch)
treef5282bc8055c4145a733bae60f53e93986d005a6 /graphics
parentad1928316d819ffb337fc4a926dbef47607dfb95 (diff)
CTAN sync 202003020302
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/pgfplots/README9
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdfbin366475 -> 373195 bytes
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/pgfplots.pdfbin12992705 -> 12586804 bytes
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdfbin16022 -> 16161 bytes
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.tuc217
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdfbin707649 -> 612477 bytes
-rw-r--r--graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdfbin173738 -> 395815 bytes
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex174
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplots.markers.code.tex2
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplots.paths.code.tex33
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplots.revision.tex8
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotscoordprocessing.code.tex66
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_loader.code.tex21
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex20
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex52
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex42
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex36
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsplothandlers.code.tex13
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotstable.code.tex2
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotstableshared.code.tex96
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsticks.code.tex6
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex56
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.patchplots.code.tex70
-rw-r--r--graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex3
24 files changed, 586 insertions, 340 deletions
diff --git a/graphics/pgf/contrib/pgfplots/README b/graphics/pgf/contrib/pgfplots/README
index b844603759..1ee3cf37c9 100644
--- a/graphics/pgf/contrib/pgfplots/README
+++ b/graphics/pgf/contrib/pgfplots/README
@@ -23,7 +23,7 @@ Please take a look at
and
doc/latex/pgfplots/pgfplotstable.pdf.
-Copyright 2007-2017 by Christian Feuersaenger.
+Copyright 2007-2020 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
@@ -40,6 +40,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
HISTORY:
+1.17
+- fixed bug: restore compatibility with pgf/tikz circle syntax inside of pgfplots
+- new feature #62: 'coordinate style' which allows to associate options with individual coordinates.
+- new feature pgfplotstable: added 'text indicator'
+- new feature pgfplotstable: added 'percent is letter' to allow comment chars
+ within string-based tables
+
1.16:
- fixed bug #111 [fillbetween] strange behavior when `soft clip` is used and one of the paths touches the axis border
- fixed bug #183: Nan in the first line of a numeric table was interpreted as column name
diff --git a/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf b/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf
index ce7d1fe4f7..34f83313f6 100644
--- a/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf
+++ b/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf
index b8dfc2f043..550ca44342 100644
--- a/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf
+++ b/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf
index 3847562469..19f485a2a9 100644
--- a/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf
+++ b/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.tuc b/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.tuc
deleted file mode 100644
index 483f8ab2b8..0000000000
--- a/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.tuc
+++ /dev/null
@@ -1,217 +0,0 @@
-local utilitydata = { }
-
-utilitydata.comment={
- ["escape"]="[===[ ... ]===]",
- ["file"]="pgfplotsexample-context",
- ["format"]="cont-en",
- ["stamp"]="2017.06.04 16:55",
- ["version"]=1.3,
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.variables then utilitydata.job.variables = { } end
-
-utilitydata.job.variables.checksums={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.variables then utilitydata.job.variables = { } end
-
-utilitydata.job.variables.collected={
- ["macros"]={},
- ["randomseed"]=0.39339454117855,
- ["sectionblockorder"]={},
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.structure then utilitydata.job.structure = { } end
-
-utilitydata.job.structure.collected={
- ["branches"]={},
- ["name"]="pgfplotsexample-context",
- ["type"]="text",
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.positions then utilitydata.job.positions = { } end
-
-utilitydata.job.positions.collected={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.passes then utilitydata.job.passes = { } end
-
-utilitydata.job.passes.collected={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.datasets then utilitydata.job.datasets = { } end
-
-utilitydata.job.datasets.collected={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.pagestates then utilitydata.job.pagestates = { } end
-
-utilitydata.job.pagestates.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.specials then utilitydata.structures.specials = { } end
-
-utilitydata.structures.specials.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.counters then utilitydata.structures.counters = { } end
-
-utilitydata.structures.counters.collected={
- ["chemical"]={
- { 0 },
- },
- ["combination"]={
- { 0 },
- },
- ["endnote"]={
- { 0 },
- },
- ["figure"]={
- { 0 },
- },
- ["footnote"]={
- { 0 },
- },
- ["formula"]={
- { 0 },
- },
- ["graphic"]={
- { 0 },
- },
- ["intermezzo"]={
- { 0 },
- },
- ["itemgroup:itemize"]={
- { 0 },
- },
- ["linenote"]={
- { 0 },
- },
- ["paragraph"]={
- { 0 },
- },
- ["realpage"]={
- { 1 },
- },
- ["subpage"]={
- { 1 },
- },
- ["table"]={
- { 0 },
- },
- ["userpage"]={
- { 1 },
- },
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.lists then utilitydata.structures.lists = { } end
-
-utilitydata.structures.lists.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.pages then utilitydata.structures.pages = { } end
-
-utilitydata.structures.pages.collected={
- {
- ["block"]="bodypart",
- ["number"]=1,
- ["numberdata"]=1,
- ["prefixdata"]=2,
- ["state"]="start",
- },
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.references then utilitydata.structures.references = { } end
-
-utilitydata.structures.references.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.references then utilitydata.structures.references = { } end
-
-utilitydata.structures.references.referred={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.objects then utilitydata.job.objects = { } end
-
-utilitydata.job.objects.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.synonyms then utilitydata.structures.synonyms = { } end
-
-utilitydata.structures.synonyms.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.registers then utilitydata.structures.registers = { } end
-
-utilitydata.structures.registers.collected={
-}
-
-if not utilitydata.structures then utilitydata.structures = { } end
-if not utilitydata.structures.blocks then utilitydata.structures.blocks = { } end
-
-utilitydata.structures.blocks.collected={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.files then utilitydata.job.files = { } end
-
-utilitydata.job.files.collected={
-}
-
-if not utilitydata.publications then utilitydata.publications = { } end
-
-utilitydata.publications.collected={
-}
-
-if not utilitydata.job then utilitydata.job = { } end
-if not utilitydata.job.fileobjreferences then utilitydata.job.fileobjreferences = { } end
-
-utilitydata.job.fileobjreferences.collected={
-}
-
-utilitydata.job.packed={
- ["index"]={
- {
- ["conversionset"]="pagenumber",
- },
- {
- ["connector"]="–",
- ["prefix"]="no",
- ["set"]="part",
- },
- },
- ["keys"]={
- ["directives"]=true,
- ["metadata"]=true,
- ["numberdata"]=true,
- ["numbers"]=true,
- ["pagedata"]=true,
- ["prefixdata"]=true,
- ["processors"]=true,
- ["sectiondata"]=true,
- ["specification"]=true,
- },
- ["skip"]={
- ["datasets"]=true,
- ["userdata"]=true,
- },
- ["version"]=1.02,
-}
-
-return utilitydata \ No newline at end of file
diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf
index 15b9e119c2..e3413a206e 100644
--- a/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf
+++ b/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf
index 702b0ad34e..fc58c7866b 100644
--- a/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf
+++ b/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex
index f534dc47e8..6b5b8b808d 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex
@@ -3187,59 +3187,14 @@
/pgfplots/scatter/true*,%
/pgfplots/set point meta if empty=f(x),%
scatter/@post marker code/.append code={%
- % determine default alignment:
- \pgfkeysgetvalue{/pgfplots/nodes near coords align}{\pgfplots@nodes@near@coords@align}%
- \edef\pgfplots@nodes@near@coords@align{\pgfplots@nodes@near@coords@align}%
- \def\pgfplots@loc@TMPa{auto}%
- \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
- \def\pgfplots@loc@TMPa{x}%
- \ifx\pgfplotspointmetainputhandler\pgfplots@loc@TMPa%
- % point meta=x:
- \def\pgfplots@nodes@near@coords@align{horizontal}%
- \else
- \def\pgfplots@nodes@near@coords@align{vertical}%
- \fi
- \fi
- % check for sign-dependand alignment options:
- \def\pgfplots@loc@TMPa{horizontal}%
- \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
- \if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
- \def\pgfplots@nodes@near@coords@align{above}%
- \else
- \pgfplotscoordmath{meta}{if is}{\pgfplotspointmeta}{-}{%
- % \pgfplotspointmeta < 0
- \def\pgfplots@nodes@near@coords@align{left}%
- }{%
- % \pgfplotspointmeta >= 0
- \def\pgfplots@nodes@near@coords@align{right}%
- }%
- \fi
- \else
- \def\pgfplots@loc@TMPa{vertical}%
- \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
- \if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
- \def\pgfplots@nodes@near@coords@align{above}%
- \else
- \pgfplotscoordmath{meta}{if is}{\pgfplotspointmeta}{-}{%
- % \pgfplotspointmeta < 0
- \def\pgfplots@nodes@near@coords@align{below}%
- }{%
- % \pgfplotspointmeta >= 0
- \def\pgfplots@nodes@near@coords@align{above}%
- }%
- \fi
- \else
- \pgfutil@ifundefined{pgfplots@nodesnearcoordsalign@isanchor@\pgfplots@nodes@near@coords@align}
- {}%
- {%
- \t@pgfplots@toka=\expandafter{\pgfplots@nodes@near@coords@align}%
- \edef\pgfplots@nodes@near@coords@align{anchor=\the\t@pgfplots@toka}%
- }%
- \fi
- \fi
% ok, place the node.
- \expandafter\node\expandafter[\pgfplots@nodes@near@coords@align,%
- /pgfplots/every node near coord]
+ \t@pgfplots@tokb=\expandafter{\pgfplots@current@point@coordinatestyle}% see 'coordinate style'%
+ \edef\pgfplots@loc@TMPa{%
+ /pgfplots/nodes near coords/@@eval alignment,%
+ \the\t@pgfplots@tokb,%
+ /pgfplots/every node near coord%
+ }%
+ \expandafter\node\expandafter[\pgfplots@loc@TMPa]%
{%
\if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
% point meta=explicit symbolic
@@ -3359,7 +3314,7 @@
/pgfplots/scatter/@pre marker code/.append code={%
\edef\pgfplots@loc@TMPa{\noexpand\pgfutil@definecolor{mapped color}{#1}{\pgfplotspointmeta}}%
\pgfplots@loc@TMPa
- \scope[#2]%
+ \pgfplots@scope@with@coord@styles[#2]%
},%
/pgfplots/scatter/@post marker code/.prefix code={%
\endscope
@@ -3381,6 +3336,31 @@
/pgfplots/scatter cmyk*/.style={/pgfplots/scatter explicit color*={cmyk}{#1}},
/pgfplots/scatter cmyk*/.default={draw=mapped color!80!black,fill=mapped color},
%
+ %
+ % allows to specify something like
+ % coordinate style/.condition={x==4}{color=red},
+ % coordinate style/.condition={x > 5}{color=black, mark=*},
+ % it is only evaluated in specific plot handlers.
+ % Each conditionession is added to the available list.
+ /pgfplots/coordinate style/.condition/.code 2 args={%
+ \pgfplotsapplistXpushback{E}{#1}{#2},\to\pgfplots@coordinate@style@list
+ \def\b@has@pgfplots@colordinate@style{1}%
+ },
+ % example:
+ % coordinate style/.from={\thisrow{row with styles}},
+ /pgfplots/coordinate style/.from/.code={%
+ \pgfplotsapplistXpushback{V}{#1}{},\to\pgfplots@coordinate@style@list
+ \def\b@has@pgfplots@colordinate@style{1}%
+ },
+ % clears all such styles.
+ /pgfplots/coordinate style/.clear/.code={%
+ \pgfplotsapplistXnewempty{\pgfplots@coordinate@style@list}%
+ \def\b@has@pgfplots@colordinate@style{0}%
+ },
+ /pgfplots/coordinate style/.clear,%
+ %
+ %
+ %
/pgfplots/visualization depends on/list/.initial=,%
/pgfplots/visualization depends on/.style={%
/pgfplots/visualization depends on/list/.add={}{,{#1}}%
@@ -4110,7 +4090,7 @@
/pgfplots/const color of colormap/.code={%
\pgfplots@color@of@colormap{const color of colormap={#1}}%
},%
- /tikz/color of colormap/.style={/pgfplots/color of colormap={#1}},
+ /tikz/const color of colormap/.style={/pgfplots/const color of colormap={#1}},
% index of colormap={4}
% index of colormap={4 of viridis}
/pgfplots/index of colormap/.code={%
@@ -4174,7 +4154,7 @@
/pgfplots/scatter/use mapped color*/.style={
/pgfplots/scatter/@pre marker code/.append code={
\pgfplotscolormapdefinemappedcolor\pgfplotspointmetatransformed
- \scope[#1]%
+ \pgfplots@scope@with@coord@styles[#1]%
},
/pgfplots/scatter/@post marker code/.prefix code={\endscope}
},
@@ -4337,6 +4317,7 @@
/pgfplots/compat/anchors/1.14/.style= {/pgfplots/compat/anchors/1.13},%
/pgfplots/compat/anchors/1.15/.style= {/pgfplots/compat/anchors/1.13},%
/pgfplots/compat/anchors/1.16/.style= {/pgfplots/compat/anchors/1.13},%
+ /pgfplots/compat/anchors/1.17/.style= {/pgfplots/compat/anchors/1.13},%
/pgfplots/compat/anchors/default/.style={/pgfplots/compat/anchors/1.3},%
%
/pgfplots/compat/empty line/.is choice,
@@ -4356,6 +4337,7 @@
/pgfplots/compat/empty line/1.14/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.15/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/1.16/.style= {/pgfplots/compat/empty line/1.4},%
+ /pgfplots/compat/empty line/1.17/.style= {/pgfplots/compat/empty line/1.4},%
/pgfplots/compat/empty line/default/.style= {/pgfplots/compat/empty line/1.4},%
%
/pgfplots/compat/path replacement/.is choice,
@@ -4375,6 +4357,7 @@
/pgfplots/compat/path replacement/1.14/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/1.15/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/1.16/.style= {/pgfplots/compat/path replacement/1.5.1},
+ /pgfplots/compat/path replacement/1.17/.style= {/pgfplots/compat/path replacement/1.5.1},
/pgfplots/compat/path replacement/default/.style= {/pgfplots/compat/path replacement/pre 1.3},%
%
/pgfplots/compat/pgfpoint substitution/.is choice,
@@ -4394,6 +4377,7 @@
/pgfplots/compat/pgfpoint substitution/1.14/.style= {/pgfplots/compat/pgfpoint substitution/1.11},
/pgfplots/compat/pgfpoint substitution/1.15/.style= {/pgfplots/compat/pgfpoint substitution/1.11},
/pgfplots/compat/pgfpoint substitution/1.16/.style= {/pgfplots/compat/pgfpoint substitution/1.11},
+ /pgfplots/compat/pgfpoint substitution/1.17/.style= {/pgfplots/compat/pgfpoint substitution/1.11},
/pgfplots/compat/pgfpoint substitution/default/.style= {/pgfplots/compat/pgfpoint substitution/pre 1.3},%
%ellipse/.is if=pgfplots@path@replace@ellipse,
%
@@ -4423,6 +4407,7 @@
/pgfplots/compat/labels/1.14/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/1.15/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/1.16/.style= {/pgfplots/compat/labels/1.8},%
+ /pgfplots/compat/labels/1.17/.style= {/pgfplots/compat/labels/1.8},%
/pgfplots/compat/labels/default/.style= {/pgfplots/compat/labels/pre 1.3},% maintain backwards compatibility
%
/pgfplots/compat/bar nodes/.is choice,
@@ -4477,6 +4462,7 @@
/pgfplots/compat/bar nodes/1.14/.style= {/pgfplots/compat/bar nodes/1.13},%
/pgfplots/compat/bar nodes/1.15/.style= {/pgfplots/compat/bar nodes/1.13},%
/pgfplots/compat/bar nodes/1.16/.style= {/pgfplots/compat/bar nodes/1.13},%
+ /pgfplots/compat/bar nodes/1.17/.style= {/pgfplots/compat/bar nodes/1.13},%
/pgfplots/compat/bar nodes/default/.style= {/pgfplots/compat/bar nodes/pre 1.3},% maintain backwards compatibility
/pgfplots/compat/bar nodes/default,
%
@@ -4511,6 +4497,7 @@
/pgfplots/compat/scaling/1.14/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/1.15/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/1.16/.style={/pgfplots/compat/scaling/1.6},
+ /pgfplots/compat/scaling/1.17/.style={/pgfplots/compat/scaling/1.6},
/pgfplots/compat/scaling/default/.style={/pgfplots/compat/scaling/1.4},
%
/pgfplots/compat/scale mode/.is choice,
@@ -4530,6 +4517,7 @@
/pgfplots/compat/scale mode/1.14/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/1.15/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/1.16/.style={/pgfplots/compat/scale mode/1.6},
+ /pgfplots/compat/scale mode/1.17/.style={/pgfplots/compat/scale mode/1.6},
/pgfplots/compat/scale mode/default/.style={/pgfplots/compat/scale mode/1.5},
%
%
@@ -4550,6 +4538,7 @@
/pgfplots/compat/plot3graphics/1.14/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/1.15/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/1.16/.style= {/pgfplots/compat/plot3graphics/1.6},%
+ /pgfplots/compat/plot3graphics/1.17/.style= {/pgfplots/compat/plot3graphics/1.6},%
/pgfplots/compat/plot3graphics/default/.style= {/pgfplots/compat/plot3graphics/1.5},%
%
% ATTENTION: there is a compatibility issue which slipped through
@@ -4596,6 +4585,7 @@
/pgfplots/compat/bar width by units/1.14/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/1.15/.style= {/pgfplots/compat/bar width by units/1.7},
/pgfplots/compat/bar width by units/1.16/.style= {/pgfplots/compat/bar width by units/1.7},
+ /pgfplots/compat/bar width by units/1.17/.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/BB/.is choice,
@@ -4615,6 +4605,7 @@
/pgfplots/compat/BB/1.14/.style= {/pgfplots/compat/BB/1.8},%
/pgfplots/compat/BB/1.15/.style= {/pgfplots/compat/BB/1.8},%
/pgfplots/compat/BB/1.16/.style= {/pgfplots/compat/BB/1.8},%
+ /pgfplots/compat/BB/1.17/.style= {/pgfplots/compat/BB/1.8},%
/pgfplots/compat/BB/default/.style={/pgfplots/compat/BB/pre 1.3},
%
/pgfplots/compat/general/.is choice,
@@ -4630,6 +4621,7 @@
/pgfplots/colorbar=false,
/pgfplots/3d log sampling=false,
/pgfplots/clip limits compat=true,
+ /pgfplots/table/percent is letter=false,
},%
/pgfplots/compat/general/1.3/.style= {/pgfplots/compat/general/pre 1.3},
/pgfplots/compat/general/1.4/.style= {/pgfplots/compat/general/pre 1.3},%
@@ -4674,6 +4666,10 @@
/pgfplots/clip limits compat=false,
},%
/pgfplots/compat/general/1.16/.style= {/pgfplots/compat/general/1.15},%
+ /pgfplots/compat/general/1.17/.style= {
+ /pgfplots/compat/general/1.15,
+ %/pgfplots/table/percent is letter=true,
+ },%
/pgfplots/compat/general/default/.style={/pgfplots/compat/general/1.11},
%
/pgfplots/enable tick line clipping/.is if=pgfplots@enable@tick@line@clipping,
@@ -4691,7 +4687,7 @@
/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.16,
+ /pgfplots/compat/mostrecent/.initial=1.17,
/utils/exec={%
\pgfplotsutilforeachcommasep{%
/pgfplots/compat/current,%
@@ -4838,6 +4834,60 @@
\def\pgfplots@tickwidth{\pgfkeysvalueof{/pgfplots/major tick length}}%
\def\pgfplots@subtickwidth{\pgfkeysvalueof{/pgfplots/minor tick length}}%
+\pgfkeysdef{/pgfplots/nodes near coords/@@eval alignment}{%
+ % determine default alignment:
+ \pgfkeysgetvalue{/pgfplots/nodes near coords align}{\pgfplots@nodes@near@coords@align}%
+ \edef\pgfplots@nodes@near@coords@align{\pgfplots@nodes@near@coords@align}%
+ \def\pgfplots@loc@TMPa{auto}%
+ \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
+ \def\pgfplots@loc@TMPa{x}%
+ \ifx\pgfplotspointmetainputhandler\pgfplots@loc@TMPa%
+ % point meta=x:
+ \def\pgfplots@nodes@near@coords@align{horizontal}%
+ \else
+ \def\pgfplots@nodes@near@coords@align{vertical}%
+ \fi
+ \fi
+ % check for sign-dependand alignment options:
+ \def\pgfplots@loc@TMPa{horizontal}%
+ \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
+ \if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
+ \def\pgfplots@nodes@near@coords@align{above}%
+ \else
+ \pgfplotscoordmath{meta}{if is}{\pgfplotspointmeta}{-}{%
+ % \pgfplotspointmeta < 0
+ \def\pgfplots@nodes@near@coords@align{left}%
+ }{%
+ % \pgfplotspointmeta >= 0
+ \def\pgfplots@nodes@near@coords@align{right}%
+ }%
+ \fi
+ \else
+ \def\pgfplots@loc@TMPa{vertical}%
+ \ifx\pgfplots@nodes@near@coords@align\pgfplots@loc@TMPa
+ \if1\csname pgfpmeta@\pgfplotspointmetainputhandler @issymbolic\endcsname%
+ \def\pgfplots@nodes@near@coords@align{above}%
+ \else
+ \pgfplotscoordmath{meta}{if is}{\pgfplotspointmeta}{-}{%
+ % \pgfplotspointmeta < 0
+ \def\pgfplots@nodes@near@coords@align{below}%
+ }{%
+ % \pgfplotspointmeta >= 0
+ \def\pgfplots@nodes@near@coords@align{above}%
+ }%
+ \fi
+ \else
+ \pgfutil@ifundefined{pgfplots@nodesnearcoordsalign@isanchor@\pgfplots@nodes@near@coords@align}
+ {}%
+ {%
+ \t@pgfplots@toka=\expandafter{\pgfplots@nodes@near@coords@align}%
+ \edef\pgfplots@nodes@near@coords@align{anchor=\the\t@pgfplots@toka}%
+ }%
+ \fi
+ \fi
+ \expandafter\pgfkeysalso\expandafter{\pgfplots@nodes@near@coords@align}%
+}%
+
\begingroup
\pgfkeys{/pgfplots/colorbar pgfshading}
\pgfkeysgetvalue{/pgfplots/colorbar/draw/.@cmd}\pgfplots@loc@TMPa
@@ -4887,6 +4937,18 @@
\pgfplots@cmdkey@alias ztick style=z tick style;
+\def\pgfplots@scope@with@coord@styles[#1]{%
+ \if1\b@has@pgfplots@colordinate@style
+ \def\pgfplots@loc@TMPa{\scope[#1}%
+ \t@pgfplots@toka=\expandafter{\pgfplots@loc@TMPa}%
+ \t@pgfplots@tokb=\expandafter{\pgfplots@current@point@coordinatestyle}%
+ \edef\pgfplots@loc@TMPa{\the\t@pgfplots@toka,\the\t@pgfplots@tokb]}%
+ \else
+ \def\pgfplots@loc@TMPa{\scope[#1]}%
+ \fi
+ \pgfplots@loc@TMPa
+}%
+
% A backwards compatibility method which works as follows:
% if any user specified arguments exist for the 'domain' or 'samples
% at' or 'samples' keys, nothing is done.
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplots.markers.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplots.markers.code.tex
index c836e1ea9e..82846a94fc 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplots.markers.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplots.markers.code.tex
@@ -323,7 +323,7 @@
}{%
\expandafter\let\expandafter\pgfplots@loc@TMPa\csname pgfp@scatter@class@\pgfplotspointmeta\endcsname
}%
- \expandafter\scope\expandafter[\pgfplots@loc@TMPa]%
+ \expandafter\pgfplots@scope@with@coord@styles\expandafter[\pgfplots@loc@TMPa]%
}%
% validates 'mark layer' such that it can be queried afterwards.
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplots.paths.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplots.paths.code.tex
index 077a3a2b95..7ea1bceee7 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplots.paths.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplots.paths.code.tex
@@ -30,17 +30,39 @@
\def\pgfplots@install@path@replacements{%
\ifpgfplots@path@replace@ellipse
\let\tikz@do@circle=\pgfplots@path@@tikz@do@circle
+ \let\tikz@do@ellipse=\pgfplots@path@@tikz@do@ellipse
\expandafter\def\expandafter\pgfinterruptpicture\expandafter{\pgfinterruptpicture
\let\tikz@do@circle=\pgfplots@path@@tikz@do@circle@orig
+ \let\tikz@do@ellipse=\pgfplots@path@@tikz@do@ellipse@orig
}%
\fi
}%
\let\pgfplots@path@@tikz@do@circle@orig=\tikz@do@circle
+\let\pgfplots@path@@tikz@do@ellipse@orig=\tikz@do@ellipse
% This is a replacement for \tikz@do@circle which replaces the "xy"
% coordinate system by one which is compatible with pgfplots.
-\def\pgfplots@path@@tikz@do@circle#1#2{%
+\def\pgfplots@path@@tikz@do@circle#1{%
+ \begingroup
+ \ifpgfplots@usefpu
+ \pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
+ \fi
+ \pgfmathparse{#1}%
+ \let\tikz@ellipse@x=\pgfmathresult%
+ \ifpgfmathunitsdeclared
+ \pgfpathellipse{\pgfpointorigin}%
+ {\pgfqpoint{\tikz@ellipse@x pt}{0pt}}%
+ {\pgfpoint{0pt}{\tikz@ellipse@x pt}}%
+ \else
+ \pgfpathellipse{\pgfpointorigin}%
+ {\pgfplotspointaxisdirectionxy{\tikz@ellipse@x}{0}}%
+ {\pgfplotspointaxisdirectionxy{0}{\tikz@ellipse@x}}%
+ \fi
+ \endgroup
+}
+
+\def\pgfplots@path@@tikz@do@ellipse#1#2{%
\begingroup
\ifpgfplots@usefpu
\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
@@ -69,3 +91,12 @@
\fi%
\endgroup
}
+
+% Older versions of TikZ did not define \tikz@do@ellipse but only
+% \tikz@do@circle which took the place of \tikz@do@ellipse, i.e. the same code
+% was used for both paths. In that case, we override the new circle code with
+% the ellipse code to retain the behaviour of using the same code on both
+% paths.
+\ifdefined\tikz@do@ellipse\else
+ \let\pgfplots@path@@tikz@do@circle=\pgfplots@path@@tikz@do@ellipse
+\fi
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplots.revision.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplots.revision.tex
index 6dbe7ab108..2bf436fe80 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplots.revision.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplots.revision.tex
@@ -5,10 +5,10 @@
\catcode`\:=12
\catcode`\+=12
\catcode`\-=12
-\gdef\pgfplotsrevision{1.16}
-\gdef\pgfplotsversion{1.16}
-\gdef\pgfplotsversiondatetime{2018-03-28 20:42:04 +0200}
-\gdef\pgfplotsrevisiondatetime{2018-03-28 20:42:04 +0200}
+\gdef\pgfplotsrevision{1.17}
+\gdef\pgfplotsversion{1.17}
+\gdef\pgfplotsversiondatetime{2020-02-29 09:43:25 +0100}
+\gdef\pgfplotsrevisiondatetime{2020-02-29 09:43:25 +0100}
\gdef\pgfplots@glob@TMPa#1-#2-#3 #4\relax{#1/#2/#3}
\xdef\pgfplotsversiondate{\expandafter\pgfplots@glob@TMPa\pgfplotsversiondatetime\relax}
\xdef\pgfplotsrevisiondate{\expandafter\pgfplots@glob@TMPa\pgfplotsrevisiondatetime\relax}
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotscoordprocessing.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotscoordprocessing.code.tex
index 92cb99709c..38f1445195 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotscoordprocessing.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotscoordprocessing.code.tex
@@ -2844,6 +2844,7 @@
\let\pgfplots@current@point@y=\pgfutil@empty
\let\pgfplots@current@point@z=\pgfutil@empty
\let\pgfplots@current@point@meta=\pgfutil@empty
+ \let\pgfplots@current@point@coordinatestyle=\pgfutil@empty
\let\pgfplots@current@point@error@x@plus=\pgfutil@empty
\let\pgfplots@current@point@error@x@minus=\pgfutil@empty
\let\pgfplots@current@point@error@y@plus=\pgfutil@empty
@@ -3286,6 +3287,10 @@
\E\pgfplots@errorbars@survey@point
\fi
%
+ \if1\b@has@pgfplots@colordinate@style
+ \E\pgfplots@get@matching@coordinate@styles@surveyphase
+ \fi
+ %
\ifpgfplots@collect@firstplot@astick
\ifnum\pgfplots@numplots=0
\E\ifx\E\pgfplots@firstplot@coords@x\E\pgfutil@empty
@@ -3818,6 +3823,11 @@
\fi
\fi
%
+ \if1\b@has@pgfplots@colordinate@style
+ \pgfplots@LUA@survey@log@deactivation{coordinate style currently unsupported}%
+ \pgfplots@LUA@backend@supportedfalse
+ \fi
+ %
\ifpgfplots@LUA@backend@supported
\edef\pgfplots@LUA@backend@plotnum{\pgfutil@directlua{tex.sprint(\pgfplotsHASH pgfplots.gca.plothandlers)}}%
\begingroup
@@ -4179,7 +4189,12 @@
\let\protect=\pgfplots@oldprotect
\t@pgfplots@toka=\expandafter{\pgfplotsaxisserializedatapoint@val}%
\t@pgfplots@tokb=\expandafter{\pgfplotsretval}%
- \edef\pgfplotsretval{{\the\t@pgfplots@tokb;\the\t@pgfplots@toka}}%
+ \if1\b@has@pgfplots@colordinate@style
+ \t@pgfplots@tokc\expandafter{\expandafter{\pgfplots@current@point@coordinatestyle}}%
+ \else
+ \t@pgfplots@tokc={}%
+ \fi
+ \edef\pgfplotsretval{{\the\t@pgfplots@tokb;\the\t@pgfplots@tokc\the\t@pgfplots@toka}}%
}%
\def\pgfplotsaxisserializedatapoint{%
@@ -4200,7 +4215,15 @@
% parts which can be read with
% \pgfplotsaxisdeserializedatapointfrom@private)
\def\pgfplotsaxisdeserializedatapointfrom#1{%
- \expandafter\pgfplotsaxisdeserializedatapointfrom@#1\pgfplots@EOI
+ \if1\b@has@pgfplots@colordinate@style
+ \expandafter\pgfplotsaxisdeserializedatapointfrom@@#1\pgfplots@EOI
+ \else
+ \expandafter\pgfplotsaxisdeserializedatapointfrom@#1\pgfplots@EOI
+ \fi
+}%
+\def\pgfplotsaxisdeserializedatapointfrom@@#1;#2#3\pgfplots@EOI{%
+ \pgfplotsaxisdeserializedatapointfrom@{#1};{#3}\pgfplots@EOI
+ \def\pgfplots@current@point@coordinatestyle{#2}%
}%
\def\pgfplotsaxisdeserializedatapointfrom@#1;#2\pgfplots@EOI{%
\def\pgfplotsaxisdeserializedatapointfrom@private@lastvalue{#1}%
@@ -9719,3 +9742,42 @@
\pgfplots@shellescape{sh #1.sh > #1.out}
\fi%
}
+
+% Defines \pgfplots@current@point@coordinatestyle to be the list of options resulting from the evaluation of all matching 'coordinate style' expressions.
+\def\pgfplots@get@matching@coordinate@styles@surveyphase{%
+ \let\pgfplots@current@point@coordinatestyle=\pgfutil@empty
+ % ##1: operation mode
+ % ##2: key
+ % ##3: value
+ \def\pgfplots@coordinate@style@process##1##2##3{%
+ \if E##1% Ah : an expression.
+ \pgfmathifexpression{##2}{%
+ \expandafter\def\expandafter\pgfplots@current@point@coordinatestyle\expandafter{\pgfplots@current@point@coordinatestyle,%
+ ##3%
+ }%
+ }{}%
+ \else
+ \if V##1% Ah : an .from
+ \edef\pgfplots@loc@TMPc{##2}%
+ \t@pgfplots@toka=\expandafter{\pgfplots@current@point@coordinatestyle}%
+ \t@pgfplots@tokb=\expandafter{\pgfplots@loc@TMPc}%
+ \edef\pgfplots@current@point@coordinatestyle{%
+ \the\t@pgfplots@toka,%
+ \the\t@pgfplots@tokb
+ }%
+ \else
+ \pgfplots@get@matching@coordinate@styles@surveyphase@err{##1}%
+ \fi
+ \fi
+ }%
+ \pgfplotsapplistXlet\pgfplots@loc@TMPb=\pgfplots@coordinate@style@list
+ \expandafter\pgfplotsutilforeachcommasep\pgfplots@loc@TMPb\as\pgfplots@loc@TMPa{%
+ \ifx\pgfplots@loc@TMPa\pgfutil@empty
+ \else
+ \expandafter\pgfplots@coordinate@style@process\pgfplots@loc@TMPa
+ \fi
+ }%
+}%
+\def\pgfplots@get@matching@coordinate@styles@surveyphase@err#1#2#3{%
+ \pgfplots@error{Encountered unexpected internal value of 'coordinate style: #1}%
+}
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_loader.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_loader.code.tex
index b68c50eac2..b8df1292a3 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_loader.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_loader.code.tex
@@ -113,8 +113,23 @@
}%
\fi
+\pgfutil@IfUndefined{pgfmathifexpression}{%
+ \def\pgfmathifexpression#1#2#3{%
+ \pgfmathparse{#1}%
+ \pgfmath@iftrue{#2}{#3}%
+ }
+ \def\pgfmath@iftrue{%
+ \ifdim\pgfmathresult pt=1.0pt %
+ \let\pgfmath@next=\pgfutil@firstoftwo
+ \else
+ \let\pgfmath@next=\pgfutil@secondoftwo
+ \fi
+ \pgfmath@next
+ }%
+ \gdef\pgfplots@glob@TMPa{1}%
+}{}%
-\pgfutil@ifundefined{pgfmathfloat@stack@push@operand@single@str}{
+\pgfutil@ifundefined{pgfmathfloat@iftrue@}{
\gdef\pgfplots@glob@TMPa{1}%
}
{}%
@@ -358,4 +373,8 @@
\input pgfplotsoldpgfsupp_leq.code.tex
}{}%
+\pgfutil@IfUndefined{pgfutilifstartswith}{%
+ \let\pgfutilifstartswith=\pgfplotsutilifstartswith
+}{}
+
\endinput
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex
index 5d1188e856..c1558cde9f 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex
@@ -87,26 +87,6 @@
\let\pgfutil@insertatbegincurrentpagefrombox=\pgfutil@insertatbegincurrentpagefrombox@FIXED
\fi
-% 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/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
index 1c9cfe742d..e1f349129d 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex
@@ -19,7 +19,7 @@
% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 10. Nov 17:18:26 CET 2017 %%%
+%%% Date of this copy: Mo 30. Apr 17:24:35 CEST 2018 %%%
@@ -95,9 +95,18 @@
% process. If 'scale results' is active, 'fixed' is assumed
% automatically.
fpu/output format/.is choice,
- fpu/output format/float/.code= {\let\pgfmathfloatparse@output=\relax},
- fpu/output format/sci/.code= {\def\pgfmathfloatparse@output{\pgfmathfloattosci@{\pgfmathresult}}},
- fpu/output format/fixed/.code= {\def\pgfmathfloatparse@output{\pgfmathfloattofixed@{\pgfmathresult}}},
+ fpu/output format/float/.code= {%
+ \def\pgfmathfloatparse@output@choice{Y}%
+ \let\pgfmathfloatparse@output=\relax
+ },
+ fpu/output format/sci/.code= {%
+ \def\pgfmathfloatparse@output@choice{S}%
+ \def\pgfmathfloatparse@output{\pgfmathfloattosci@{\pgfmathresult}}%
+ },
+ fpu/output format/fixed/.code= {%
+ \def\pgfmathfloatparse@output@choice{F}%
+ \def\pgfmathfloatparse@output{\pgfmathfloattofixed@{\pgfmathresult}}%
+ },
fpu/output format/float,
fpu/rel thresh/.code={%
\pgfmathfloatparsenumber{#1}%
@@ -108,6 +117,8 @@
\pgfmathfloatcreate{1}{1.0}{0}\let\pgfmathfloatscale=\pgfmathresult
+\let\pgfmathfloatone=\pgfmathresult
+
% This is the replacement parser invocation.
% It does two things which are different to \pgfmathparse:
% 1. it disables any dimension dependand scalings,
@@ -285,6 +296,7 @@
\pgfmathfloat@install\pgfmathcosh@=\pgfmathfloatcosh@
\pgfmathfloat@install\pgfmathsinh@=\pgfmathfloatsinh@
\pgfmathfloat@install\pgfmathtanh@=\pgfmathfloattanh@
+ \pgfmathfloat@install\pgfmath@iftrue=\pgfmathfloat@iftrue
\expandafter\pgfmathfloat@install\csname pgfmathatan2@\endcsname=\pgfmathfloatatantwo@
\pgfmathfloat@install@unimplemented{isprime}%
\pgfmathfloat@install@unimplemented{iseven}%
@@ -302,6 +314,38 @@
\pgfmathfloat@install\pgfmathscientific=\pgfmathfloatscientific%
}
+\def\pgfmathfloat@iftrue{%
+ \if Y\pgfmathfloatparse@output@choice
+ \let\pgfmathfloat@@iftrue@v=\pgfmathfloatone
+ \let\pgfmathfloat@@iftrue@next=\pgfmathfloat@iftrue@
+ \else
+ \if S\pgfmathfloatparse@output@choice
+ \def\pgfmathfloat@@iftrue@v{1.0e0}%
+ \let\pgfmathfloat@@iftrue@next=\pgfmathfloat@iftrue@
+ \else
+ \def\pgfmath@next{\pgfutilifstartswith{1.0}}%
+ \expandafter\pgfmath@next\expandafter{\pgfmathresult}{%
+ \ifdim\pgfmathresult pt=1.0pt %
+ \let\pgfmathfloat@@iftrue@next=\pgfutil@firstoftwo
+ \else
+ \let\pgfmathfloat@@iftrue@next=\pgfutil@secondoftwo
+ \fi
+ }{%
+ \let\pgfmathfloat@@iftrue@next=\pgfutil@secondoftwo
+ }%
+ \fi
+ \fi
+ \pgfmathfloat@@iftrue@next
+}%
+\def\pgfmathfloat@iftrue@{%
+ \ifx\pgfmathresult\pgfmathfloat@@iftrue@v
+ \let\pgfmath@next=\pgfutil@firstoftwo
+ \else
+ \let\pgfmath@next=\pgfutil@secondoftwo
+ \fi
+ \pgfmath@next
+}%
+
\def\pgfmathfloat@parser@install{%
\pgfmathfloat@plots@checkuninstallcmd
\pgfmathfloat@plots@install%
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex
index fe86ba6f4a..8b2bf234be 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex
@@ -19,7 +19,7 @@
% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Mi 8. Feb 20:49:06 CET 2017 %%%
+%%% Date of this copy: Mo 30. Apr 17:24:35 CEST 2018 %%%
@@ -33,7 +33,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
%
-% $Id: pgflibraryluamath.code.tex,v 1.20 2015/06/05 06:23:21 cfeuersaenger Exp $
+% $Id$
%
%
% This is a library for a LUA math parser and LUA math operations.
@@ -223,12 +223,16 @@
\else
\let\pgfluamath@pgfmathparse\pgfmathparse
\let\pgfmathparse\pgfluamathparse
+ \let\pgfmath@iftrue=\pgfmathluamath@iftrue
\pgfluamathparseractivetrue
\fi}
+\let\pgfmath@iftrue@basic=\pgfmath@iftrue
+
\def\pgfluamath@makeparserinactive{%
\ifpgfluamathparseractive
\let\pgfmathparse\pgfluamath@pgfmathparse
+ \let\pgfmath@iftrue=\pgfmath@iftrue@basic
\pgfluamathparseractivefalse
\fi}
@@ -320,6 +324,7 @@
\pgfluamath@install@function\pgfmathsubtract@=\pgfluamathsubtract@%
\pgfluamath@install@function\pgfmathneg@=\pgfluamathneg@%
\pgfluamath@install@function\pgfmathmultiply@=\pgfluamathmultiply@%
+ \pgfmathfloat@install\pgfmath@iftrue=\pgfmathluamath@iftrue
\pgfluamath@install@function\pgfmathdivide@=\pgfluamathdivide@%
% \pgfluamath@install@function\pgfmathdiv@=\pgfluamathdiv@%
\pgfluamath@install@function\pgfmathfactorial@=\pgfluamathfactorial@%
@@ -400,6 +405,25 @@
\def\pgfluamathgetresult#1{%
\edef\pgfmathresult{\pgfutil@directlua{tex.print(-1,#1)}}}
+\def\pgfmathluamath@iftrue{%
+ \if 0\pgfluamath@outputformat@choice
+ \let\pgfmathluamath@@iftrue@v=\pgfluamathone
+ \else
+ \let\pgfmathluamath@@iftrue@v=\pgfluamathfloatone
+ \fi
+ \pgfmathluamath@iftrue@
+}%
+\def\pgfluamathone{1.0}%
+\def\pgfluamathfloatone{1Y1.0e+00]}%
+\def\pgfmathluamath@iftrue@#1#2{%
+ \ifx\pgfmathresult\pgfmathluamath@@iftrue@v
+ \def\pgfmath@next{#1}%
+ \else
+ \def\pgfmath@next{#2}%
+ \fi
+ \pgfmath@next
+}%
+
\def\pgfluamathpi@{%
\pgfluamathgetresult{pgfluamathfunctions.pi()}}
\def\pgfluamathe@{%
@@ -543,15 +567,15 @@
\def\pgfluamathparse#1{%
\pgfluamathusedTeXfallbackfalse
\pgfutil@directlua{pgfluamathparser.texCallParser(
- "\pgfutil@luaescapestring{#1}",
- \pgfluamath@outputformat@choice,
- \ifpgfluamathshowerrormessage true\else false\fi)%
+ "\pgfutil@luaescapestring{#1}",
+ \pgfluamath@outputformat@choice,
+ \ifpgfluamathshowerrormessage true\else false\fi)%
}%
\ifx\pgfmathresult\pgfutil@empty
- \ifpgfluamathenableTeXfallback
- \pgfluamathusedTeXfallbacktrue
- \pgfluamath@pgfmathparse{#1}%
- \fi
+ \ifpgfluamathenableTeXfallback
+ \pgfluamathusedTeXfallbacktrue
+ \pgfluamath@pgfmathparse{#1}%
+ \fi
\fi
}
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
index 5ba17bc2d0..e2c0f91a51 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex
@@ -19,7 +19,7 @@
% with the deployment of this patch or partial content of PGF. Note that the author and/or maintainer of pgfplots has no obligation to fix anything:
% This file comes without any warranty as the rest of pgfplots; there is no obligation for help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Date of this copy: Fr 10. Nov 17:18:26 CET 2017 %%%
+%%% Date of this copy: Mo 30. Apr 17:24:35 CEST 2018 %%%
@@ -95,7 +95,7 @@
% [FLAGS] MANTISSE EXPONENT
% meaning
% [+-]X.XXXXXXX*10^C
-% where
+% where
% X.XXXXXX is a mantissa with first number != 0, C is an integer and
% FLAGS contains the sign and some other special cases.
%
@@ -103,7 +103,7 @@
% computation is COMPLETELY STRING BASED.
% This allows numbers such at 10000000 or 5.23e-10 to be represented
% properly, although TeX-registers would produce overflow/underflow
-% errors in these cases.
+% errors in these cases.
%
% It is to be used to compute logs, because log(X*10^Y) = log(X) + log(10)*Y
%
@@ -124,7 +124,7 @@
% where
% FLAGS is a number in [0-5] where
% 0 == '0' (the number is +- 0.0),
-% 1 == '+',
+% 1 == '+',
% 2 == '-',
% 3 == 'not a number'
% 4 == '+ infinity'
@@ -419,7 +419,7 @@
% Converts a float to an integer (in integer format).
%
-% @see \pgfmathfloatint
+% @see \pgfmathfloatint
\def\pgfmathfloattoint#1{%
\pgfmathfloattofixed{#1}%
\expandafter\pgfmathfloattoint@@\pgfmathresult\relax
@@ -521,7 +521,7 @@
}
-% Overloaded method.
+% Overloaded method.
%
% This variant always uses a FIXED number behind the period and fills
% in zeros if necessary.
@@ -707,7 +707,7 @@
% \else
% \pgfmath@error{INTERNAL ERROR in fixed style - The input sequence did not terminate as expected; which indicates a wrong exponent argument provided to \string\pgfmathprintnumber@fixed@style}{}%
% \fi
- %--------------------------------------------------
+ %--------------------------------------------------
\let\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT=\relax
\fi
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT
@@ -782,7 +782,7 @@
% Arguments:
% #1#2#3e#4\relax
-% Input:
+% Input:
% #1 the fixed point number to be displayed (maybe a macro).
% #2#3e#4: the (possibly unformatted) floating point representation
% which belongs to #1. This format is returned (only!) by
@@ -791,7 +791,7 @@
\let\pgfmathprintnumber@fixed@style=\pgfmathprintnumber@fixed@styleDEFAULT
-% Rounds a normalized floating point number to \pgfmathfloat@round@precision
+% Rounds a normalized floating point number to \pgfmathfloat@round@precision
% digits precision and writes the result to \pgfmathresult.
%
% This method uses \pgfmathroundto for the mantissa.
@@ -836,7 +836,7 @@
% #2: mantissa
% #3: exponent
% #4: CODE to display if the mantissa is drawn.
-% This code will be shown just before the exponent.
+% This code will be shown just before the exponent.
% Example: #4=\cdot
% #5: CODE to display if the mantissa is NOT draw. (unused currently)
% Might be used to display '10^1' instead of '1*10^1'.
@@ -1160,7 +1160,7 @@
\if0\pgfmathprintnumber@RELATIVE@choice@roundtofixed
% relative round mode=mantissa
\def\b@round@fixed{0}%
- \else
+ \else
\if1\pgfmathprintnumber@RELATIVE@choice@roundtofixed
% relative round mode=fixed
\def\b@round@fixed{1}%
@@ -1196,7 +1196,7 @@
\fi
\edef\pgfmathresultX{%
\the\pgfmathfloat@a@S
- \the\pgfmathfloat@a@Mtok
+ \the\pgfmathfloat@a@Mtok
\ifpgfmathfloatroundhasperiod\else.0\fi
e\the\pgfmathfloat@a@E}%
% call another formatter for the result (but avoid rounding inside of it):
@@ -1235,7 +1235,7 @@
\fi
\edef\pgfmathresultX{%
\the\pgfmathfloat@a@S
- \the\pgfmathfloat@a@Mtok
+ \the\pgfmathfloat@a@Mtok
\ifpgfmathfloatroundhasperiod\else.0\fi
e\the\pgfmathfloat@a@E}%
\let\pgfmathfloat@round@precision@orig=\pgfmathfloat@round@precision
@@ -1705,7 +1705,7 @@
\pgfkeys{/pgf/number format/std}
%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
+%
% IMPL
%
%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1747,7 +1747,7 @@
% \pgfmathroundto implementation in WORDS:
%
-% coarse idea:
+% coarse idea:
% 1. collect all digits/sign BEFORE the first period in REVERSE order
% 2. then, collect UP TO \prec digits after the period in REVERSE order
% Steps 1. and 2. lead to the digit [sign] sequence
@@ -1781,7 +1781,7 @@
% fi
% ++q
% if q=0
-% discard the period
+% discard the period
% fi
% end while
% if q = r+1
@@ -1991,7 +1991,7 @@
\fi
}
-% PRECONDITION:
+% PRECONDITION:
% \c@pgfmathroundto@lastzeros > 0
\def\pgfmathroundto@impl@discard@suffix@zeros@ITERATE#1{%
\advance\c@pgfmathroundto@lastzeros by-1
@@ -2183,7 +2183,7 @@
% \pgfmathfloattofixed@impl@collectmantissa#2\count\pgfmathfloat@a@E
% \edef\pgfmathresult{\the\pgfmathfloat@a@Mtok}%
% \fi
- %--------------------------------------------------
+ %--------------------------------------------------
\pgfmathfloat@a@Mtok{#1}%
\pgfmathfloattofixed@impl@pos#2000000000\pgfmathfloat@EOI
\edef\pgfmathresult{\the\pgfmathfloat@a@Mtok}%
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsplothandlers.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsplothandlers.code.tex
index f10082afb3..bad6354b2f 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsplothandlers.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsplothandlers.code.tex
@@ -427,6 +427,19 @@
%
\pgfplotsplothandlers@init@map@to@patched@versions
%
+ %
+% \pgfkeys{%
+% /pgf/at begin bar/.add={}{%
+% \if1\b@has@pgfplots@colordinate@style
+% \expandafter\pgfplots@bar@extra
+% \fi
+% },%
+% }%
+ %
+}%
+
+\def\pgfplots@bar@extra#1\pgfkeysvalueof#2{%
+ \expandafter\tikz\expandafter[\pgfplots@current@point@coordinatestyle] \pgfextra{#1};%
}%
\def\pgfplots@xbar@width{pgfplotsxbarwidth}
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotstable.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotstable.code.tex
index 4e33bacd63..c169f730d4 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotstable.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotstable.code.tex
@@ -407,7 +407,7 @@
}%
},%
/pgfplots/table/verb string type/.style={%
- /pgfplots/table/text special chars={\#,\|},% FIXME: too limited ...
+ /pgfplots/table/text special chars={\#,\|,\_},% FIXME: too limited ...
/pgfplots/table/assign cell content/.code={%
\def\pgfplotstable@loc@TMPa{##1}%
% hm... this here might be more robust instead of the line
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotstableshared.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotstableshared.code.tex
index b8f63abe8a..4f36b4631d 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotstableshared.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotstableshared.code.tex
@@ -62,6 +62,7 @@
\newif\ifpgfplots@tableread@to@listener
\newif\ifpgfplots@tableread@use@begingroup
\newif\ifpgfplotstable@trimcells
+\newif\ifpgfplotstable@percent@is@letter
\newif\ifpgfplotstable@search@path@implicit@CWD
\pgfkeys{%
@@ -146,6 +147,7 @@
/pgfplots/table/ignore chars/.initial=,
/pgfplots/table/white space chars/.initial=,
/pgfplots/table/text special chars/.initial=,
+ /pgfplots/table/percent is letter/.is if=pgfplotstable@percent@is@letter,
/pgfplots/table/comment chars/.initial=,
/pgfplots/table/skip first n/.initial=0,
/pgfplots/table/trim cells/.is if=pgfplotstable@trimcells,
@@ -156,6 +158,7 @@
/pgfplots/table/read completely/auto/.code=\pgfplots@addplotimpl@readcompletelyfalse\def\pgfplots@addplotimpl@readcompletely@auto{1},
/pgfplots/table/read completely/.default=true,
/pgfplots/table/read completely=auto,
+ /pgfplots/table/text indicator/.initial=,
/pgfplots/table/col sep/.is choice,
/pgfplots/table/col sep/space/.code = {\def\pgfplotstableread@COLSEP@CASE{0}},
/pgfplots/table/col sep/comma/.code = {\def\pgfplotstableread@COLSEP@CASE{1}},
@@ -651,6 +654,7 @@
\noexpand\catcode`\noexpand\ =\the\catcode`\ \noexpand\space
\noexpand\catcode`\noexpand\;=\the\catcode`\;\noexpand\space
\noexpand\catcode`\noexpand\:=\the\catcode`\:\noexpand\space
+ \noexpand\catcode`\noexpand\%=\the\catcode`\%\noexpand\space
\noexpand\catcode`\noexpand\^^I=\the\catcode`\^^I\noexpand\space
\noexpand\let\noexpand\pgfplotstablereadrestorecatcodes=\noexpand\relax
}%
@@ -664,6 +668,10 @@
\fi
}
\let\pgfplotstablereadrestorecatcodes=\relax
+
+% ATTENTION: the following catcodes are ONLY useful for <inline tables>!
+% tables read from file need catcode adaptions as well; this is done
+% elsewhere!
\def\pgfplotstablereadpreparecatcodes@{%
\if0\pgfplotstableread@ROWSEP@CASE\relax
% row sep = newline
@@ -1052,6 +1060,10 @@
\else
\pgfplotstableinstallignorechars@\pgfplotstable@loc@TMPa{12}%
\fi
+ \ifpgfplotstable@percent@is@letter
+ \def\pgfplotstable@loc@TMPa{\%}%
+ \pgfplotstableinstallignorechars@\pgfplotstable@loc@TMPa{12}%
+ \fi
\ifx\pgfplotstableuninstallignorechars\pgfutil@empty
\else
\expandafter\def\expandafter\pgfplotstableuninstallignorechars\expandafter{%
@@ -1115,6 +1127,8 @@
\pgfplotstableread@countreset\pgfplotstableread@curcol
%
\pgfplotstableread@impl@prepare@DO
+ \pgfplotstableread@impl@prepare@DO@textindicator
+ %
\def\pgfplotstableread@isgnuplotformat{0}%
\global\pgfplotslistnewempty\pgfplotstable@colnames@glob
\pgfplotsscanlinelengthinitzero
@@ -1218,6 +1232,7 @@
%\pgfplots@message{EOF}%
\else
\read\r@pgfplots@reada to\pgfplotstable@LINE
+%\message{read with \the\catcode`\%: \meaning\pgfplotstable@LINE^^J}%
\ifeof\r@pgfplots@reada
\else
\pgfplotstableread@loop@processnextline
@@ -1310,7 +1325,10 @@
\fi
\ifnum\pgfplotstableread@curcol=\pgfplotstableread@numcols\relax
\else
- \pgfplotsthrow{table columns unbalanced}{input table '\pgfplotstableread@filename' has an unbalanced number of columns in row '\thepgfplotstableread@lineno' (expected '\thepgfplotstableread@numcols' cols; got '\thepgfplotstableread@curcol'). Maybe the input table is corrupted? If you need unbalanced data, consider using 'nan' in empty cells (perhaps combined with 'unbounded coords=jump')}\pgfeov%
+ \begingroup
+ \t@pgfplots@tokc=\expandafter{\pgfplotstable@LINE}%
+ \pgfplotsthrow{table columns unbalanced}{input table '\pgfplotstableread@filename' has an unbalanced number of columns in row '\thepgfplotstableread@lineno' (expected '\thepgfplotstableread@numcols' cols; got '\thepgfplotstableread@curcol'). Maybe the input table is corrupted? If you need unbalanced data, consider using 'nan' in empty cells (perhaps combined with 'unbounded coords=jump'). The offending line is \the\t@pgfplots@tokc}\pgfeov%
+ \endgroup
\fi
\ifpgfplots@tableread@to@listener
\ifpgfplotstableread@curline@contains@colnames
@@ -1437,8 +1455,10 @@
\else
\let\pgfplotstableread@impl@ITERATE@NEXT@=#1\relax
\fi
+ %
\expandafter\pgfplotstableread@impl@DO@\expandafter{#2}%
}
+
{%
\catcode`\ =10
\catcode`\;=12
@@ -1480,6 +1500,62 @@
\fi
}%
}%
+\def\pgfplotstableread@impl@prepare@DO@textindicator{%
+ %
+ \pgfkeysgetvalue{/pgfplots/table/text indicator}\pgfplots@loc@TMPa
+ \ifx\pgfplots@loc@TMPa\pgfutil@empty
+ % ok, nothing special.
+ \else
+ % protect the text indicator such that it won't be expanded:
+ \t@pgfplots@tokc=\expandafter{\pgfplots@loc@TMPa}%
+ %
+ % compile macros which handle 'text indicator':
+ \let\pgfplotstableread@impl@ITERATE@NEXT@aftertextindicator=\pgfplotstableread@impl@ITERATE@NEXT
+ \edef\pgfplotstableread@impl@ITERATE@NEXT{%
+ % check if the cell starts with a text indicator:
+ \noexpand\pgfplotstableread@impl@ITERATE@NEXT@checkindicator{\the\t@pgfplots@tokc}%
+ }%
+ \edef\pgfplots@loc@TMPb{%
+ % compile this macro which reads everything up to the next
+ % text indicator char:
+ \noexpand\def\noexpand\pgfplotstableread@impl@ITERATE@NEXT@collect@text####1\the\t@pgfplots@tokc{%
+ % append. we assume that 'tokc' has been reset before
+ % starting to collect the cell content.
+ \t@pgfplots@tokc=\noexpand\expandafter{\noexpand\the\t@pgfplots@tokc####1}%
+ \noexpand\pgfutil@ifnextchar{\the\t@pgfplots@tokc}{%
+ % ah - a doubled text indicator. gobble this one
+ % and collect the following one!
+ \noexpand\pgfplotstableread@impl@ITERATE@NEXT@collect@text@collect@one
+ }{%
+ % ok, we found the entire cell content.
+ \noexpand\pgfplotstableread@impl@ITERATE@NEXT@collect@text@finish
+ }%
+ }%
+ }%
+ \pgfplots@loc@TMPb
+ %
+ \ifcase\pgfplotstableread@COLSEP@CASE\relax
+ \let\pgfplotstableread@impl@ITERATE@NEXT@collect@text@finish=\pgfplotstableread@impl@ITERATE@NEXT@collect@text@finish@APPENDSPACE
+ \fi
+ \fi
+}
+
+\def\pgfplotstableread@impl@ITERATE@NEXT@collect@text@collect@one#1{%
+ \t@pgfplots@tokc=\expandafter{\the\t@pgfplots@tokc#1}%
+ \pgfplotstableread@impl@ITERATE@NEXT@collect@text
+}%
+\def\pgfplotstableread@impl@ITERATE@NEXT@collect@text@finish{%
+ % enclose the collected items into curly braces. This suppresses
+ % interpretation of extra chars:
+ \expandafter\pgfplotstableread@impl@ITERATE@NEXT@aftertextindicator\expandafter{\expandafter{\the\t@pgfplots@tokc}}%
+}%
+\def\pgfplotstableread@impl@ITERATE@NEXT@collect@text@finish@APPENDSPACE{%
+ % enclose the collected items into curly braces. This suppresses
+ % interpretation of extra chars:
+ \expandafter\pgfplotstableread@impl@ITERATE@NEXT@aftertextindicator\expandafter{\expandafter{\the\t@pgfplots@tokc}} %
+}%
+
+
\long\def\pgfplotstableread@impl@ITERATE{%
\pgfutil@ifnextchar\pgfplotstable@EOI{%
\pgfplotstableread@impl@gobble
@@ -1487,6 +1563,24 @@
\pgfplotstableread@impl@ITERATE@NEXT
}%
}%
+
+\def\pgfplotstableread@impl@ITERATE@NEXT@checkindicator#1{%
+ \pgfutil@ifnextchar{#1}{%
+ % Ah! Our cell starts with a text indicator! Assume it is
+ % enclosed by text indicators.
+ \pgfplotstableread@impl@ITERATE@NEXT@checkindicator@gobble@one%
+ }{%
+ % ok, Cell does not start with a text indicator. collect
+ % as-is, assuming that a text indicator does not simply occur
+ % within a cell which is not enclosed by text indicators:
+ \pgfplotstableread@impl@ITERATE@NEXT@aftertextindicator
+ }%
+}%
+\def\pgfplotstableread@impl@ITERATE@NEXT@checkindicator@gobble@one#1{%
+ \t@pgfplots@tokc={}%
+ \pgfplotstableread@impl@ITERATE@NEXT@collect@text%
+}%
+
\long\def\pgfplotstableread@impl@ITERATE@NEXT#1 {%
\pgfplotstableread@impl@ITERATE@NEXT@{#1}%
\pgfplotstableread@impl@ITERATE
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsticks.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsticks.code.tex
index f5acfd81ef..1e8fb50f27 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsticks.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsticks.code.tex
@@ -2532,7 +2532,10 @@
% '#3' is some macro. Its input is '\pgfmathresult', its expected output is '\pgfmathresult'
\long\def\pgfplots@transform@csv@list#1\to#2\with#3{%
\let#2=\pgfutil@empty
- \foreach \pgfplots@loc@TMPb in {#1} {%
+ \begingroup
+ \pgfkeys{/pgf/fpu,/pgf/fpu/output format=float}%
+ % \pgfplotsforeachungrouped is more powerful than \foreach
+ \pgfplotsforeachungrouped \pgfplots@loc@TMPb in {#1} {%
\let\pgfmathresult=\pgfplots@loc@TMPb
#3%
\ifx#2\pgfutil@empty
@@ -2541,6 +2544,7 @@
\xdef#2{#2,\pgfmathresult}%
\fi
}%
+ \endgroup
%
}%
diff --git a/graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex b/graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex
index 743f4545ee..353a04ea94 100644
--- a/graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex
@@ -673,7 +673,7 @@
\pgfmathparse{(##4-##2)/\pgfplots@h + 1}%
\pgfmathfloattofixed\pgfmathresult
\afterassignment\pgfplotsforeachtodomain@@
- \c@pgf@counta=\pgfmathresult
+ \c@pgf@counta=\pgfmathresult\relax
}%
\edef\pgfplots@loc@TMPa{\noexpand\pgfplotsforeachungrouped \noexpand\x\space in{#1}{}}%
\pgfplots@loc@TMPa
@@ -699,6 +699,9 @@
\fi
}%
+\newif\ifpgfplotsforeachungroupedassumenumeric
+\pgfplotsforeachungroupedassumenumerictrue
+
\long\def\pgfplotsforeachungrouped@@#1#2#3#4{%
\pgfplots@for@reset@break{%
%
@@ -710,8 +713,27 @@
% \foreach #1 in {a,b,...,c} can be improved:
\pgfplotsforeachungroupeduniform@{#1}#3\relax{#4}%
\else
- % invoke \foreach #1 in {#3} and transport results:
- \pgfplotsforeachungroupednonuniform@#1{#3}{#4}%
+ \ifpgfplotsforeachungroupedassumenumeric
+ \pgfplotsforeachungrouped@isuniform@dist@one{#3}%
+ \ifpgfplots@loc@tmp
+ % special handling:
+ % \foreach #1 in {a,...,n} can be improved. Let us
+ % hope it is numeric ...
+ \pgfmathifexpression{\pgfplotsretval < \pgfplotsretvalb}{%
+ \edef\pgfplots@foreach@loc@TMPa{\pgfplotsretval,\pgfplotsretval+1,...,\pgfplotsretvalb}%
+ }{%
+ \edef\pgfplots@foreach@loc@TMPa{\pgfplotsretval,\pgfplotsretval-1,...,\pgfplotsretvalb}%
+ }%
+ \def\pgfplots@foreach@loc@TMPb{\pgfplotsforeachungroupeduniform@{#1}}%
+ \expandafter\pgfplots@foreach@loc@TMPb\pgfplots@foreach@loc@TMPa\relax{#4}%
+ \else
+ % invoke \foreach #1 in {#3} and transport results:
+ \pgfplotsforeachungroupednonuniform@#1{#3}{#4}%
+ \fi
+ \else
+ % invoke \foreach #1 in {#3} and transport results:
+ \pgfplotsforeachungroupednonuniform@#1{#3}{#4}%
+ \fi
\fi
\else
% invoke \foreach #1/#2 in {#3} and transport results:
@@ -889,6 +911,34 @@
\fi
}%
+% Sets \ifpgfplots@loc@tmp to true if and only if '#1' is of the form
+% #1 = <number1>,...,<number2>
+%
+% In that case, \pgfplotsretval = <number1> and \pgfplotsretvalb = <number2>
+\def\pgfplotsforeachungrouped@isuniform@dist@one#1{%
+ \edef\pgfplots@foreach@loc@TMPa{#1}%
+ \expandafter\pgfplotsforeachungrouped@isuniform@dist@one@\pgfplots@foreach@loc@TMPa,,,\relax
+}%
+\def\pgfplotsforeachungrouped@isuniform@dist@one@#1,#2,#3,#4\relax{%
+ \def\pgfplots@foreach@loc@TMPa{#4}%
+ \def\pgfplots@foreach@loc@TMPb{,,}%
+ \pgfplots@loc@tmpfalse
+ \ifx\pgfplots@foreach@loc@TMPa\pgfplots@foreach@loc@TMPb
+ \def\pgfplots@foreach@loc@TMPa{#2}%
+ \def\pgfplots@foreach@loc@TMPb{...}%
+ \ifx\pgfplots@foreach@loc@TMPa\pgfplots@foreach@loc@TMPb
+ \pgfutil@in@,{#3}%
+ \ifpgfutil@in@
+ \else
+ \pgfplots@loc@tmptrue
+ \def\pgfplotsretval{#1}%
+ \def\pgfplotsretvalb{#3}%
+ \fi
+ \fi
+ \fi
+}%
+
+
% A variant of \pgfplotsforeachungrouped ( or \foreach ) which
% *invokes* with #1 set to the current iterate.
%
diff --git a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.patchplots.code.tex b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.patchplots.code.tex
index fb9283571c..9f13aab2a0 100644
--- a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.patchplots.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.patchplots.code.tex
@@ -374,6 +374,76 @@
}%
}%
+% This is JUST a curveto operation! Nothing special.
+\pgfplotsdeclarepatchclass{bezier spline}{%
+ get dimension=\def\pgfplotsretval{1},
+ supports global path=\def\pgfplotsretval{1},
+ new=\def\pgfplotspatchclass@cspline@no{A},
+ set next vertex={%
+ % EXPECTED ORDERING: first 2 corners, then 2 control points
+ % (NOT interpolatory).
+ % defines \pgfplotspatchclass@cspline@A ... \pgfplotspatchclass@cspline@D (4 points)
+ \expandafter\edef\csname pgfplotspatchclass@cspline@\pgfplotspatchclass@cspline@no\endcsname{#1}%
+ \if D\pgfplotspatchclass@cspline@no
+ \def\pgfplotspatchclass@cspline@no{A}%
+ \pgfplotspatchready
+ \else
+ \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
+ },
+ first vertex=\expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@A\endvertex,
+ foreach vertex={%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@A\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@B\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@C\endvertex #1%
+ \expandafter\pgfplotspatchvertex\pgfplotspatchclass@cspline@D\endvertex #1%
+ },
+ fill path={%
+ % Draw the patch boundary using a bezier curve.
+ \pgfplotsplothandlermesh@pathmoveto{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@A\endvertex}%
+ \pgfpathcurveto {
+ \expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@C\endvertex
+ }{
+ \expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@D\endvertex
+ }{%
+ \expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@B\endvertex
+ }%
+ \pgfplotsplothandlermesh@setlastpoint{\expandafter\pgfplotspointpatchvertex\pgfplotspatchclass@cspline@B\endvertex}%
+ },
+ triangulate class=\def\pgfplotsretval{line},
+ triangulate={%
+ \let\pgfplotsplothandlermesh@patchclass@=\pgfplotsplothandlermesh@patchclass
+ \def\pgfplotsplothandlermesh@patchclass{line}%
+ \pgfplotspatchclass{\pgfplotsplothandlermesh@patchclass}{new}%
+ % XXX : very poor quality ...
+ \expandafter\pgfplotsplothandlermesh@setnextvertex\expandafter{\pgfplotspatchclass@cspline@A}%
+ \expandafter\pgfplotsplothandlermesh@setnextvertex\expandafter{\pgfplotspatchclass@cspline@B}%
+ \let\pgfplotsplothandlermesh@patchclass=\pgfplotsplothandlermesh@patchclass@
+ },%
+ get pdf shading type=0,
+ get num vertices=\def\pgfplotsretval{4},
+}%
+
+
+
% 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}%
diff --git a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex
index 611b12bbba..dfff58ec27 100644
--- a/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex
+++ b/graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex
@@ -598,6 +598,9 @@
}
\let\pgfplotspoint@initialisation@units@orig=\pgfplotspoint@initialisation@units
\def\pgfplotspoint@initialisation@units@smithchart{%
+ \ifpgfplots@smithchart@mirrored
+ \pgfplots@warning{The key 'smithchart mirrored' is based on a mistake of the author. It does NOT resemble Admittance Smith charts!}%
+ \fi
\pgfplotspoint@initialisation@units@orig
\def\pgfplotspointunity{%
\pgfplotspointouternormalvectorofaxisgetv{0v0}% x=0 (outer circle) and v varies (the yticks)