summaryrefslogtreecommitdiff
path: root/graphics/pgf/base/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-11-24 03:01:06 +0000
committerNorbert Preining <norbert@preining.info>2020-11-24 03:01:06 +0000
commit55c6d66f61a96ba63cd8c141229843ad2ab42632 (patch)
tree64fa3f4bc82828c2475a6a25d23a02cb36502b95 /graphics/pgf/base/tex
parentf0be59ccfa7046c57199fe35c49e1e8963fcb1a9 (diff)
CTAN sync 202011240301
Diffstat (limited to 'graphics/pgf/base/tex')
-rw-r--r--graphics/pgf/base/tex/pgf.revision.tex8
-rw-r--r--graphics/pgf/base/tex/pgffor.code.tex8
-rw-r--r--graphics/pgf/base/tex/pgfkeys.code.tex54
-rw-r--r--graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex2
-rw-r--r--graphics/pgf/base/tex/pgfmoduleshapes.code.tex2
-rw-r--r--graphics/pgf/base/tex/pgfsys-dvips.def20
-rw-r--r--graphics/pgf/base/tex/pgfsys-luatex.def8
-rw-r--r--graphics/pgf/base/tex/pgfutil-latex.def8
8 files changed, 67 insertions, 43 deletions
diff --git a/graphics/pgf/base/tex/pgf.revision.tex b/graphics/pgf/base/tex/pgf.revision.tex
index 8b87951e3b..1c04a7bfd7 100644
--- a/graphics/pgf/base/tex/pgf.revision.tex
+++ b/graphics/pgf/base/tex/pgf.revision.tex
@@ -5,10 +5,10 @@
\catcode`\:=12
\catcode`\+=12
\catcode`\-=12
-\gdef\pgfrevision{3.1.6a}
-\gdef\pgfversion{3.1.6a}
-\gdef\pgfversiondatetime{2020-10-01 21:02:59 +0200}
-\gdef\pgfrevisiondatetime{2020-10-01 21:02:59 +0200}
+\gdef\pgfrevision{3.1.7}
+\gdef\pgfversion{3.1.7}
+\gdef\pgfversiondatetime{2020-11-23 12:12:00 +0100}
+\gdef\pgfrevisiondatetime{2020-11-23 12:12:00 +0100}
\gdef\pgf@glob@TMPa#1-#2-#3 #4\relax{#1/#2/#3}
\xdef\pgfversiondate{\expandafter\pgf@glob@TMPa\pgfversiondatetime\relax}
\xdef\pgfrevisiondate{\expandafter\pgf@glob@TMPa\pgfrevisiondatetime\relax}
diff --git a/graphics/pgf/base/tex/pgffor.code.tex b/graphics/pgf/base/tex/pgffor.code.tex
index cdb77b3137..65b62b8cf9 100644
--- a/graphics/pgf/base/tex/pgffor.code.tex
+++ b/graphics/pgf/base/tex/pgffor.code.tex
@@ -79,10 +79,13 @@
\fi%
}
+\def\pgffor@expand@list@true{\let\pgffor@expand@list\edef}
+\def\pgffor@expand@list@false{\let\pgffor@expand@list\def}
\def\pgffor@macro@list#1{%
\expandafter\pgffor@normal@list\expandafter{#1}}
\def\pgffor@normal@list#1{%
- \def\pgffor@values{#1, \pgffor@stop,}%
+ \pgffor@expand@list\pgffor@values{#1}%
+ \expandafter\def\expandafter\pgffor@values\expandafter{\pgffor@values, \pgffor@stop,}%
\ifx\pgffor@values\pgffor@emptyvalues
\def\pgffor@values{\pgffor@stop,}%
\fi%
@@ -619,6 +622,9 @@
count/.code=\pgffor@count@parse#1\pgffor@stop,
parse/.is if=pgffor@assign@parse,
parse/.default=false,
+ expand list/.is if=pgffor@expand@list@,
+ expand list/.default=true,
+ expand list=false,
}
\def\pgffor@assign@parse#1{%
diff --git a/graphics/pgf/base/tex/pgfkeys.code.tex b/graphics/pgf/base/tex/pgfkeys.code.tex
index e32745317c..db89141aca 100644
--- a/graphics/pgf/base/tex/pgfkeys.code.tex
+++ b/graphics/pgf/base/tex/pgfkeys.code.tex
@@ -178,7 +178,13 @@
%
% \pgfkeysifdefined{/tikz/length}{key exists}{does not exist}
-\long\def\pgfkeysifdefined#1#2#3{\ifcsname pgfk@#1\endcsname#2\else#3\fi}
+\long\def\pgfkeysifdefined#1{%
+ \ifcsname pgfk@#1\endcsname
+ \expandafter\pgfkeys@firstoftwo
+ \else
+ \expandafter\pgfkeys@secondoftwo
+ \fi
+}
% Tests whether a key is assignable. For standard keys which just
% store their value, this is identical to \pgfkeysifdefined.
@@ -749,7 +755,7 @@
{%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@args}{\pgfkeys@tempargs}%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@body}{\pgfkeys@tempbody}%
- \def\pgfkeys@marshal{\expandafter\gdef\expandafter\pgfkeys@global@temp\pgfkeys@tempargs}%
+ \def\pgfkeys@marshal{\expandafter\long\expandafter\gdef\expandafter\pgfkeys@global@temp\pgfkeys@tempargs}%
\expandafter\pgfkeys@marshal\expandafter{\pgfkeys@tempbody}%
}%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@@body}{%
@@ -799,11 +805,7 @@
% Defining a value
-\pgfkeys{/handlers/.initial/.code=%
- \pgfkeyslet{\pgfkeyscurrentpath/.@cmd}\undefined
- \pgfkeyslet{\pgfkeyscurrentpath/.@args}\undefined
- \pgfkeyssetvalue{\pgfkeyscurrentpath}{#1}%
-}
+\pgfkeys{/handlers/.initial/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath}{#1}}
\pgfkeys{/handlers/.add/.code 2 args=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeys{/handlers/.prefix/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{}}
\pgfkeys{/handlers/.append/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{}{#1}}
@@ -1039,50 +1041,50 @@
\pgfkeys{
/errors/boolean expected/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
Boolean parameter of key '\the\toks1' must be 'true' or 'false', not
'\the\toks2'. I am going to ignore it%
- }
+ }%
},
/errors/value required/.code 2 args=%
- {
- \toks1={#1}
+ {%
+ \toks1={#1}%
\pgfkeys@error{%
The key '\the\toks1' requires a value. I am going to ignore this
key%
- }
+ }%
},
/errors/value forbidden/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
You may not specify a value for the key '\the\toks1'. I am going to ignore
the value '\the\toks2' that you provided%
- }
+ }%
},
/errors/unknown choice value/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
Choice '\the\toks2' unknown in choice key '\the\toks1'. I am
going to ignore this key%
- }
+ }%
},
/errors/unknown key/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\def\pgf@temp{#2}%
\pgfkeys@error{%
I do not know the key '\the\toks1'\ifx\pgf@temp\pgfkeysnovalue@text\space\else, to which you passed
'\the\toks2', \fi and I am going to ignore it. Perhaps you
misspelled it%
- }
+ }%
}
}
diff --git a/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex b/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
index 6bc4286323..8ed52a5187 100644
--- a/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
+++ b/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
@@ -163,7 +163,7 @@
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@ya
}%
- \anchorborder{
+ \anchorborder{%
\edef\pgf@marshal{%
\noexpand\pgfpointborderellipse
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
diff --git a/graphics/pgf/base/tex/pgfmoduleshapes.code.tex b/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
index 4e8cce59a4..a22aca4757 100644
--- a/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
+++ b/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
@@ -1260,7 +1260,7 @@
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@xa
}%
- \anchorborder{
+ \anchorborder{%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\edef\pgf@marshal{%
diff --git a/graphics/pgf/base/tex/pgfsys-dvips.def b/graphics/pgf/base/tex/pgfsys-dvips.def
index 70f5ba2887..678fdd4d0b 100644
--- a/graphics/pgf/base/tex/pgfsys-dvips.def
+++ b/graphics/pgf/base/tex/pgfsys-dvips.def
@@ -474,15 +474,27 @@
\expandafter\xdef\csname pgfsmasktrans@#1\endcsname{%
\noexpand\pgftransformcm{1}{0}{0}{1}{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{%
- % box coordinates (reference point and top) needed for distilling
+ % box coordinates (reference point and top) needed for ps2pdf
\pgfsys@outerinvoke{currentpoint /pgf@refy exch def /pgf@refx exch def}%
\hbox to 0pt {\hbox to \ifdim\ht#2>\ht\strutbox\ht#2\else\ht\strutbox\fi{\hss\pgfsys@outerinvoke{%
/pgf@top pgf@refy currentpoint pop pgf@refx sub VResolution Resolution div mul sub def%
}}\hss}%
+ % lower-right box corner coordinates for viewing
+ \hbox to 0pt {\hbox to \wd#2{\hss\pgfsys@outerinvoke{/pgf@right currentpoint pop def}}\hss}%
+ \hbox to 0pt {\hbox to \ifdim\dp#2>\dp\strutbox\dp#2\else\dp\strutbox\fi{\hss\pgfsys@outerinvoke{%
+ /pgf@bot pgf@refy currentpoint pop pgf@refx sub VResolution Resolution div mul add def%
+ }}\hss}%
\pgfsys@outerinvoke{gsave
- % translate box to upper left page corner, so we have the whole clipping path (i. e.
- % page area) available for distilling, as outlying parts get clipped
- clippath pathbbox newpath pop pop translate pgf@refx neg pgf@top neg translate
+ clippath pathbbox newpath pop pop translate
+ systemdict /pdfmark known {%
+ % for ps2pdf, translate box to upper-left page corner, so we have the whole clipping
+ % path (i. e. page area) available, as outlying parts get clipped
+ pgf@refx neg pgf@top neg translate%
+ } {%
+ % for viewing, however, we want to hide the box by moving it off-page; we do so by aligning
+ % the lower-right box corner with the upper-left page corner
+ pgf@right neg pgf@bot neg translate%
+ } ifelse
% translate origin (0,0) to the reference point
gsave pgf@refx pgf@refy translate
mark /_objdef {pgfsmaskxform@\the\pgf@objectcount}
diff --git a/graphics/pgf/base/tex/pgfsys-luatex.def b/graphics/pgf/base/tex/pgfsys-luatex.def
index 88adfd42d9..b87edd0e6a 100644
--- a/graphics/pgf/base/tex/pgfsys-luatex.def
+++ b/graphics/pgf/base/tex/pgfsys-luatex.def
@@ -84,7 +84,7 @@
{%
\pgf@parsefunc{#3}%
\pgfmathparse{#2}%
- \setbox\pgfutil@tempboxa=\hbox to\pgf@max{\vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgf@max{\vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{\pgfpoint{\pgf@max}{#2}}%
\immediate\saveboxresource resources {%
/Shading << /Sh << /ShadingType 2
@@ -101,7 +101,7 @@
{%
\pgf@parsefunc{#3}%
\pgfmathparse{#2}%
- \setbox\pgfutil@tempboxa=\hbox to\pgfmathresult pt{\vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgfmathresult pt{\vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{\pgfpoint{#2}{\pgf@max}}%
\immediate\saveboxresource resources {%
/Shading << /Sh << /ShadingType 2
@@ -117,7 +117,7 @@
\def\pgfsys@radialshading#1#2#3{%
{%
\pgf@parsefunc{#3}%
- \setbox\pgfutil@tempboxa=\hbox to2\pgf@max{\vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to2\pgf@max{\vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
@@ -149,7 +149,7 @@
\pgf@yb=\pgf@y%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
- \setbox\pgfutil@tempboxa=\hbox to\pgf@x{\vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgf@x{\vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@sys@bp@correct{\pgf@xa}%
\pgf@sys@bp@correct{\pgf@ya}%
\pgf@sys@bp@correct{\pgf@xb}%
diff --git a/graphics/pgf/base/tex/pgfutil-latex.def b/graphics/pgf/base/tex/pgfutil-latex.def
index e2ed750368..a21f3b4d63 100644
--- a/graphics/pgf/base/tex/pgfutil-latex.def
+++ b/graphics/pgf/base/tex/pgfutil-latex.def
@@ -92,6 +92,9 @@
\AtBeginDocument{\AtEndDocument{\clearpage\the\pgfutil@everybye}}
+% \@ifl@t@r is defined \@onlypremable so we have to save it here
+\let\pgfutil@ifl@t@r=\@ifl@t@r
+
\def\pgfutil@insertatbegincurrentpagefrombox#1{%
\edef\pgf@temp{\the\wd\pgfutil@abb}%
\global\setbox\pgfutil@abb\hbox{%
@@ -105,8 +108,9 @@
%
% CF observed problems when placing patterns in XObjects without
% this skip (dvipdfmx driver for pgfplots shader=interp)
- \hskip-\pgf@temp\relax%
+ \hskip\dimexpr\pgfutil@ifl@t@r\fmtversion{2020/10/01}{2in-2\hoffset}{}-\pgf@temp\relax%
#1%
+ \pgfutil@ifl@t@r\fmtversion{2020/10/01}{\hskip\dimexpr-2in-2\hoffset\relax}{}%
}%
}
\newbox\pgfutil@abb%
@@ -119,7 +123,7 @@
}
\let\pgfutil@abe\pgfutil@empty%
-\@ifl@t@r\fmtversion{2020/10/01}{%
+\pgfutil@ifl@t@r\fmtversion{2020/10/01}{%
\AddToHook{shipout/background}{%
\put(\hoffset-1in,\voffset-1in){%
\pgfutil@abe\unhbox\pgfutil@abb\pgfutil@abc\global\let\pgfutil@abc\pgfutil@empty