From 6276231aa1cc25fe33679b149fdbaca5471ca8a4 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Mar 2020 03:02:44 +0000 Subject: CTAN sync 202003020302 --- graphics/pgf/contrib/pgfplots/README | 9 +- .../contrib/pgfplots/doc/TeX-programming-notes.pdf | Bin 366475 -> 373195 bytes graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf | Bin 12992705 -> 12586804 bytes .../pgfplots/doc/pgfplotsexample-context.pdf | Bin 16022 -> 16161 bytes .../pgfplots/doc/pgfplotsexample-context.tuc | 217 --------------------- .../pgf/contrib/pgfplots/doc/pgfplotstable.pdf | Bin 707649 -> 612477 bytes graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf | Bin 173738 -> 395815 bytes .../pgf/contrib/pgfplots/tex/pgfplots.code.tex | 174 +++++++++++------ .../contrib/pgfplots/tex/pgfplots.markers.code.tex | 2 +- .../contrib/pgfplots/tex/pgfplots.paths.code.tex | 33 +++- .../pgf/contrib/pgfplots/tex/pgfplots.revision.tex | 8 +- .../pgfplots/tex/pgfplotscoordprocessing.code.tex | 66 ++++++- .../tex/pgfplotsoldpgfsupp_loader.code.tex | 21 +- .../pgfplots/tex/pgfplotsoldpgfsupp_misc.code.tex | 20 -- .../tex/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex | 52 ++++- .../pgfplotsoldpgfsupp_pgflibraryluamath.code.tex | 42 +++- .../tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex | 36 ++-- .../pgfplots/tex/pgfplotsplothandlers.code.tex | 13 ++ .../contrib/pgfplots/tex/pgfplotstable.code.tex | 2 +- .../pgfplots/tex/pgfplotstableshared.code.tex | 96 ++++++++- .../contrib/pgfplots/tex/pgfplotsticks.code.tex | 6 +- .../pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex | 56 +++++- .../tex/tikzlibrarypgfplots.patchplots.code.tex | 70 +++++++ .../tex/tikzlibrarypgfplots.smithchart.code.tex | 3 + 24 files changed, 586 insertions(+), 340 deletions(-) delete mode 100644 graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.tuc (limited to 'graphics/pgf/contrib') 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 . 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 Binary files a/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf and b/graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf differ diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf index b8dfc2f043..550ca44342 100644 Binary files a/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf and b/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf 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 Binary files a/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf and b/graphics/pgf/contrib/pgfplots/doc/pgfplotsexample-context.pdf 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 Binary files a/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf and b/graphics/pgf/contrib/pgfplots/doc/pgfplotstable.pdf differ diff --git a/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf b/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf index 702b0ad34e..fc58c7866b 100644 Binary files a/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf and b/graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf 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 ! +% 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 = ,..., +% +% In that case, \pgfplotsretval = and \pgfplotsretvalb = +\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) -- cgit v1.2.3