A Portable Graphic Format for TeX
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 the
revision should eventually gain back its original meaning. However, as of now
this is not supported by l3build.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.textures
and vtex
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.pgfutil-common-lists.tex
is deprecated and therefore no longer
\input
by pgfutil-common.tex
. The macros from this file are specifically
meant for pgfplots and are not used in PGF at all.graphdrawing
(gd)\pgfinterruptpicture
for shapes in library
shapes.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
eagerly evaluated #1071\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 file
#1112graphdrawing
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
Emergency release to fix pgfplots which depends on unreleased parts of PGF.
This release introduces a fix for blend mode with the dvips driver and improvements for handling expandable material that appears on a path.
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.
Hotfix for the new topaths handling. One instance did not yet properly preserve relative coordinates.
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
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
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