Releases: pgf-tikz/pgf
3.1.10
[3.1.10] - 2023-01-13 Henri Menke
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!
BREAKING CHANGES
\pgfversiondatetime
and\pgfrevisiondatetime
have been removed.
\pgfversiondate
and\pgfrevisiondate
now use the formatYYYY-MM-DD
.
\pgfrevision{,date}
and\pgfversion{,date}
are synonyms for now, but the
revision should eventually gain back its original meaning. However, as of now
this is not supported by l3build.- Many operations in
pgfkeys
used to use\csname
directly which lets the
given csname become\relax
in case it wasn't defined. This resulted in some
leakage of accidentally\relax
ed keys into the global scope. This has been
cleaned up a little. To preserve compatibility macros that used to expand to a
\relax
ed csname now expand to a primitive\relax
. This affects the
user-level commands\pgfkeysgetvalue
and\pgfkeysgetvalueof
. For the
former the change should not be visible except for the number of expansions
required. For\pgfkeysgetvalueof
, however, the behavior is manifestly
different in that it will now expand to an alias for the primitive\relax
in
case the value is undefined instead of a\relax
ed csname. It has always been
semantically wrong to assign to the result of\pgfkeysgetvalueof
, but now it
will have undesired side-effects. Therefore this change is breaking. - The
textures
andvtex
drivers have been deprecated. Both engines are no
longer in active development and lack eTeX features which are required for
quite some time in PGF. - The file
pgfutil-common-lists.tex
is deprecated and therefore no longer
\input
bypgfutil-common.tex
. The macros from this file are specifically
meant for pgfplots and are not used in PGF at all.
Added
- l3build support for packaging PGF/TikZ
- Add Matrix chat to README
- Add rhombic polihedra #1022
- Add Developer Certificate of Origin (DCO) to Pull Request template and enforce
- Add test set for
graphdrawing
(gd) - pgfkeys gained support for loading libraries
- Add dependabot to keep GitHub Actions up to date
Fixed
- Wrap logic gate symbol in
\pgfinterruptpicture
for shapes in library
shapes.gates.logic.IEC
- Remove superfluous
;
for shapearrow box
- Remove superfluous
/utils/exec
in animations - Gobble
\pgf@stop
when parsing finishes in animations - Add missing
\pgf@sys@tonumber
before<dimen>
in drivers and animations - Rewrite
dash expand off
- Better unknown key error msg in decorations
- Fix
\let
in drivers for two csnames #1088 - Protect against comma in pgfkeys arguments #389
- Let active
"
expand to non-active"
in pgfmath #1062 - Protect against comma in
/tikz/rotate fit
argument and make it
eagerly evaluated #1071 - Set pics/code in angle #1068
- Fix for externalization and horizontal mode
- Avoid spurious tokens in
\pgfcalendarifdate
expansion - Remove angle restriction #1048
- Fix compatibility of
external
lib withfadings
lib - Only clearpage and flush
\pgfutil@everybye
if non-empty #724 - Fix foreach documentation #1039
- Fix pgfmathless documentation #1040
- Blend mode as array is deprecated #1037
- One-step expansion for
\pgfmathrandomitem
in pgfmath #1033 - Check whether expanded is a primitive in all engines
- Reinsert the last token when giving up on a path #1025
- Make
/tikz/local bounding box
aware ofname prefix
andname suffix
- Add empty Pattern dictionary to Resources dictionary
- Spelling and typo fixes in the manual
- Update Debian installation instructions
- Suppress white space at line end when
datavisualization
reads from a file
#1112 - Form-only patterns have no specified color #1122
- Make
graphdrawing
work withname prefix
andname suffix
options #1087 - pgfkeys was a bit too relaxed around
\relax
#1132 - Remove spurious spaces for
3d view
#1151 - Fix incorrectly placed matrix delimiters for implicitly positioned nodes #1102
- Use
/.append
to fix a wrong usage of/.add
in pgfmanual #1201
Changed
- Cleanup
\newif
s - Remove unused scripts
- Remove experiments/ folder
- Simplify loading by delegating to top-level files
- Promote
Missing character
to errors in building manual - Flatten the doc tree
- Ensure
\tracinglostchars<3
in\pgf@picture
- Use descriptive workflow job ids
- Ensure
doc
v2 is loaded for pgfmanual - Ensure active
^^M
is non-expandable incodeexample
Contributors
- 3geek14
- BeneIII
- graue70
- Gábor Braun
- Joel Coffman
- Jonathan Spratte
- Joseph Wright
- Mario Frasca
- Michael Kuron
- Michal Hoftich
- muzimuzhi
- PhelypeOleinik
- QJLc
- Stefan Pinnow
3.1.9a
Emergency release to fix pgfplots which depends on unreleased parts of PGF.
3.1.9
Bug fixes
This release introduces a fix for blend mode with the dvips driver and
improvements for handling expandable material that appears on a path.
3.1.8b
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.
3.1.8a
Hotfix for the new topaths handling. One instance did not yet properly
preserve relative coordinates.
3.1.8
BREAKING CHANGES
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.
Bug fixes
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.
a4c2757 #952
8a997bb #954
8f37bca #962
3cbe5a1 #844
49e5f0a #654
17a95e4 #966
ad06895 #966
79e613a #966
3.1.7a
3.1.7
Bug fixes
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:
67295ec #946
74b2cc3 #934
8beaf97 #928
bf46600 #654
1e8ee72 #930
3.1.6a
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