Bot releases are visible (Hide)
Even though this release is not too heavy on user-facing additions it has seen a
lot of contributed changes. Thanks to everyone who volunteered their time!
\pgfversiondatetime
and \pgfrevisiondatetime
have been removed.\pgfversiondate
and \pgfrevisiondate
now use the format YYYY-MM-DD
.\pgfrevision{,date}
and \pgfversion{,date}
are synonyms for now, but thepgfkeys
used to use \csname
directly which lets the\relax
in case it wasn't defined. This resulted in some\relax
ed keys into the global scope. This has been\relax
ed csname now expand to a primitive \relax
. This affects the\pgfkeysgetvalue
and \pgfkeysgetvalueof
. For the\pgfkeysgetvalueof
, however, the behavior is manifestly\relax
in\relax
ed csname. It has always been\pgfkeysgetvalueof
, but now ittextures
and vtex
drivers have been deprecated. Both engines are nopgfutil-common-lists.tex
is deprecated and therefore no longer\input
by pgfutil-common.tex
. The macros from this file are specificallygraphdrawing
(gd)\pgfinterruptpicture
for shapes in libraryshapes.gates.logic.IEC
;
for shape arrow box
/utils/exec
in animations\pgf@stop
when parsing finishes in animations\pgf@sys@tonumber
before <dimen>
in drivers and animationsdash expand off
\let
in drivers for two csnames #1088"
expand to non-active "
in pgfmath #1062/tikz/rotate fit
argument and make it\pgfcalendarifdate
expansionexternal
lib with fadings
lib\pgfutil@everybye
if non-empty #724\pgfmathrandomitem
in pgfmath #1033/tikz/local bounding box
aware of name prefix
and name suffix
datavisualization
reads from a filegraphdrawing
work with name prefix
and name suffix
options #1087\relax
#11323d view
#1151/.append
to fix a wrong usage of /.add
in pgfmanual #1201\newif
sMissing character
to errors in building manual\tracinglostchars<3
in \pgf@picture
doc
v2 is loaded for pgfmanual^^M
is non-expandable in codeexample
Published by github-actions[bot] over 3 years ago
Emergency release to fix pgfplots which depends on unreleased parts of PGF.
Published by github-actions[bot] over 3 years ago
This release introduces a fix for blend mode with the dvips driver and
improvements for handling expandable material that appears on a path.
Published by github-actions[bot] almost 4 years ago
Hotfix for handling of TeX conditionals on a path. We can't forward \relax and
frozen \relax through the parser because there is existing code that relies on
this.
The recommendation is to use expandable conditionals where possible.
Published by github-actions[bot] almost 4 years ago
Hotfix for the new topaths handling. One instance did not yet properly
preserve relative coordinates.
Published by github-actions[bot] almost 4 years ago
If a topath is bent by any of the in=, out=, bend=, etc. options, a Bezier
curve is constructed in the background. To infer the positions of the control
points the start and end coordinate are converted to absolute coordinates.
However, this has the effect that subsequent points on the path think that the
endpoint of the topath was absolute which can lead to counter-intuitive path
construction, e.g.
\draw (2,0) to[out=0,in=180] +(1,0) -- ++(0,-1) -- +(1,0);
If old code relies on this behavior, this drawing will silently break! Please
open an issue if you rely on this.
This release introduces a fix for path handling which concerns expansion of
tokens on the path in particular with respect to conditional. Previously when
the expansion of a conditonal resulted in a frozen \relax the parser would just
give up. Now the parser will skip over the frozen \relax and continue to
expand tokens. Whether this will result in a meaningful expansion is up to the
user.
This release also includes other bug fixes. On GitHub you can click the commit
hashes and the issue numbers to get to the fix and the ticket, respectively.
a4c275704 #952
8a997bbc1 #954
8f37bca84 #962
3cbe5a192 #844
49e5f0a08 #654
17a95e4c5 #966
ad06895a6 #966
79e613ae1 #966
Published by github-actions[bot] almost 4 years ago
Another issue with the new LaTeX hook mechanism surfaced in the external
library which is being worked around now.
This release also includes other bug fixes. On GitHub you can click the commit
hashes and the issue numbers to get to the fix and the ticket, respectively.
3c46a6974 #947
Published by github-actions[bot] almost 4 years ago
Mostly spurious spaces have been fixed and some code has been adapted to work with the latest LaTeX release. In principle it should still be backwards compatible to older LaTeX releases but regressions cannot be excluded.
Some other bug fixes:
67295ec8 #946
74b2cc30 #934
8beaf970 #928
bf46600f #654
1e8ee728 #930
Hotfix for intersections
library. In the last version \pgfintersectionoflines
was set to always return the intersection in the untransformed coordinate system #889. This however broke the interplay with other coordinate transformations and had to be reverted.
This release stands in the name of the two contributors Alexander Grahn and Yukai Chou without whom this release would not have been nearly as great. Thank you very much!
In the last version, in an attempt to fix updating local bounding box
in a clipping scope the \pgf@path@size@hook
in \pgf@protocolsizes
was set to be executed unconditionally. Unfortunately, this broke all other uses of local bounding box
and has been reverted. If you need to use local bounding box
in a clipping scope, use the overlay
option.
The recent Ghostscript version 9.53 has changed the primitives for transparency, blend mode, and transparency groups. These are now supported by PGF and should in principle go unnoticed by the user. (Thanks Alexander Grahn!)
\pgfintersectionoflines
will now always return the intersection in the untransformed coordinate system. This however requires an additional \pgftransforminvert
which comes with a loss of precision and can potentially lead to Dimension too large
errors in edge cases.
PGF now supports the new hook management that will be introduced in LaTeX 2020/10/01. While this should not lead to any noticeable changes, please look out for breakages with overlays and the current page
nodes. Please report problems on the PGF or LaTeX issue trackers.
You can read about these new features in the manual:
PS-3 functional shading, opacity masks (fadings) and image masks for dvips. (Thanks Alexander Grahn!)
The dvisvgm4ht
driver developed by Michal Hoftich has been merged into PGF/TikZ.
The pgfparser
module has been slightly refactored such that it can be used without loading all of PGF.
The order in which the inner styles are applied in a \matrix
is now configurable. #867
The file pgfmanual-en-macros.tex
is developed specifically for typesetting the PGF manual, however, many other package developers have found it useful and made good use of it. To this end, we now install pgfmanual-en-macros.tex
into a directory that is searched by kpathsea such that developers no longer have to copy the file into their own distribution.
The CI system was switched from Travis CI to GitHub Actions for better integration with GitHub and direct deployment of build artefacts to the status page.
bbox
library introduced in PGF 3.1.5 was removed. I further recommend that if there are files containing bbox
code left over from a previous version that these are removed to avoid potential issues.Lots of bug fixes. On GitHub you can click the commit hashes and the issue numbers to get to the fix and the ticket, respectively.
44bb29fd #900 #923
2ae12cb4 #924
f6039046 #918
908db001 #889
71becc18 #909
83069dce #508 #915
c5a6dbbb #671
0f52b63c #654
17e588d5 #912
197450c0 #755
eaf9c096 #888
d96c3f2f #843
6a0e08db #640 #839
bd8c9c45 #876
4773c311 #748
2145bcfb #872
c44960e7 #872
1ca59c70 #871
65bcaaff #867
68bebd7a #823
1c380999 #808
494bd677 #861
1e520dc7 #863
1efebdf7 #856
e1eac8af #859
ca1f30e1 #795
6b79a6dc #855
a7cccca0 #848
7098976d #855
8095bc57 #846
08041e44 #855
730a3437 #853
ff3fe4c4 #852
6e8397b5 #851
6c88ed94 #851
e6e91c40 #848
29de799f #845
2a6eaefb #840
357bc059 #837
15c943b7 #831
314a00ad #829
03aa54d2 #816
4e1529ba #822
4ccfe0d4 #813
1f21e3ba #819 #698
The computation of path times in the intersection
library was wrong when sorting intersections and did therefore not work correctly (#480). This is fixed now, but that also means that the order of intersections might change if you were using sorting before. You can easily check this by looking for \pgfintersectionsortbyfirstpath
and \pgfintersectionsortbyfirstpath
or the sort by
key if you are using intersections in TikZ.
It turned out that in \pgf@protocolsizes
the \pgf@path@size@hook
was executed only if the picture was actually to be placed. This led to the problem that the local bounding box
was not updated correctly (#795). To correct this, the hook is now executed unconditionally.
To get name prefixes for pic
working (#311) the resolution of node names in \tikz@calc@anchor
now has two stages. First it tries to look up the prefixed name and uses it if it exists. If there is no prefixed name, the global name without prefix will be looked up and used (fixes #717). Previously, if the prefixed name did not exist and error was issued immediately without attempting to look up the global name.
There was a bug in old PGF versions that the body of \pgfkeysedef
was not fully expanded #305. This was fixed in PGF 3.1 (ac33f7e5) by the use of \scantokens
. Unfortunately when expanding the body the catcodes at the point of use are taken instead of the catcodes at the point of definition. This led to new bugs like #669. With the new version we are taking a middle ground. We support macro definitions within edef bodies by doubling all the hashes followed by numbers. All other hashes have to be escaped manually. We assume that this is not a common use case.
You can read about these new features in the manual:
The patterns.meta
library now provides a couple of predefined patterns which can be used as replacements for the ones provided by the patterns
library.
Tight bounding boxes for Bezier curves using the bbox
library. This feature was contributed by @tallmarmot. Thanks!
New pgfkeys handler .evaluated
The RGB color model is now supported in Plain TeX, i.e. values can be integers 0-255 instead of floats 0-1 for rgb.
Annotations for code examples in the manual as to which libraries are required. These were contributed by Stefan Pinnow (@Mo-Gul). Thanks!
GitHub issue templates for more streamlined bug reporting.
New build system based on Lua. We'd like to have a more cross-platform build system. The old system was based on Makefiles, which will be retained for a while but gradually phased out. In the future we hope to be able to implement a regression test suite.
\rawx
, \rawy
, \rawz
, and \coord
were added to the \path let
operation. These proved to be not as useful as anticipated (#731) and were therefore removed again.Lots of bug fixes. On GitHub you can click the commit hashes and the issue numbers to get to the fix and the ticket, respectively.
0b095288 #793
ba8628c8 #804
c6ef774c #305 #669
135e361e #759
be8dfa7e #769
26cea424 #805 #806
f63131b4 #801
4204b35b #803
167a78eb #798
8445f362 #796
03b89120 #795
acd2ca38 #480
d2caaf3a #387
a5989c1e #442
9d4e1020 #428
96f41c41 #730
b2bbefda #775 #776
d9e677f5 #400
94be30ee #788
a632c4d0 #790
41a85559 #789
319cae01 #512
969b1f8d #726
888f902c #785
226808c3 #784
13dab67d #736
92faccff #643 #773 #774
3c909b77 #770
6ccafffa #519 #751
3cf72768 #627
37c39d0e #602
a547358e #727
97a18d33 #767
2e11f549 #728
f7a24c56 #719
88951be5 #311 #717
08275e30 #747
fddaaad7 #753
a93c47eb #762
88954e20 #768
1302de8a #756
b2656567 #743
47f87253 #742
5e2f4a88 #284
aee5465f #735
4aaa25e6 #736
76a69d29 #640 #711 #729
2d5fb0c3 #720
bb5614ea #718
5c746e52 #715
ff369f8a #721
7ee3a2ca #361
This is a bugfix release to make the XeTeX driver less broken. A regression was introduced in the XeTeX driver in the last release that lead to displaced objects #708 #709. This update fixes the regression but also reverts the fix for position tracking #353.
patterns.meta
library\protected@edef
in \pgfmathparse
#672, #675, #689, #353, #693, #690, #700, #701, #702
Revert 00f4e8d4154dcb3133ed4a106b6254b8faf874e2
\pgfmathrandominteger
didn't handle expressions as input