Releases: pgf-tikz/pgf
3.1.6
Acknowledgements
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!
BREAKING CHANGES
-
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 oflocal bounding box
and has been reverted. If you need to uselocal bounding box
in a clipping scope, use theoverlay
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 toDimension 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.
New features
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 installpgfmanual-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.
Removed features
- The
bbox
library introduced in PGF 3.1.5 was removed. I further recommend that if there are files containingbbox
code left over from a previous version that these are removed to avoid potential issues.
Bug fixes
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.
44bb29f #900 #923
2ae12cb #924
f603904 #918
908db00 #889
71becc1 #909
83069dc #508 #915
c5a6dbb #671
0f52b63 #654
17e588d #912
197450c #755
eaf9c09 #888
d96c3f2 #843
6a0e08d #640 #839
bd8c9c4 #876
4773c31 #748
2145bcf #872
c44960e #872
1ca59c7 #871
65bcaaf #867
68bebd7 #823
1c38099 #808
494bd67 #861
1e520dc #863
1efebdf #856
e1eac8a #859
ca1f30e #795
6b79a6d #855
a7cccca #848
7098976 #855
8095bc5 #846
08041e4 #855
730a343 #853
ff3fe4c #852
6e8397b #851
6c88ed9 #851
e6e91c4 #848
29de799 #845
2a6eaef #840
357bc05 #837
15c943b #831
314a00a #829
03aa54d #816
4e1529b #822
4ccfe0d #813
1f21e3b #819 #698
3.1.5b
3.1.5a
3.1.5
BREAKING CHANGES
-
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 thesort 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 thelocal 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 (ac33f7e) 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.
New features
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 thepatterns
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.
Removed features
- In the last release the undocumented commands
\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.
Bug fixes
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.
0b09528 #793
ba8628c #804
c6ef774 #305 #669
135e361 #759
be8dfa7 #769
26cea42 #805 #806
f63131b #801
4204b35 #803
167a78e #798
8445f36 #796
03b8912 #795
acd2ca3 #480
d2caaf3 #387
a5989c1 #442
9d4e102 #428
96f41c4 #730
b2bbefd #775 #776
d9e677f #400
94be30e #788
a632c4d #790
41a8555 #789
319cae0 #512
969b1f8 #726
888f902 #785
226808c #784
13dab67 #736
92faccf #643 #773 #774
3c909b7 #770
6ccafff #519 #751
3cf7276 #627
37c39d0 #602
a547358 #727
97a18d3 #767
2e11f54 #728
f7a24c5 #719
88951be #311 #717
08275e3 #747
fddaaad #753
a93c47e #762
88954e2 #768
1302de8 #756
b265656 #743
47f8725 #742
5e2f4a8 #284
aee5465 #735
4aaa25e #736
76a69d2 #640 #711 #729
2d5fb0c #720
bb5614e #718
5c746e5 #715
ff369f8 #721
7ee3a2c #361