Skip to content

Releases: pgf-tikz/pgf

3.1.10

15 Jan 09:33
dceb378
Compare
Choose a tag to compare

[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 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.
  • 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 \relaxed keys into the global scope. This has been
    cleaned up a little. To preserve compatibility macros that used to expand to a
    \relaxed 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 \relaxed 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 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.
  • The file 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.

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 shape arrow 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 with fadings 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 of name prefix and name 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 with name prefix and name 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 \newifs
  • 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 in codeexample

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

15 May 10:21
b561e46
Compare
Choose a tag to compare

Emergency release to fix pgfplots which depends on unreleased parts of PGF.

3.1.9

02 Mar 10:00
4af0c15
Compare
Choose a tag to compare

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

27 Dec 19:12
54126d3
Compare
Choose a tag to compare

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

27 Dec 11:06
52b43e1
Compare
Choose a tag to compare

Hotfix for the new topaths handling. One instance did not yet properly
preserve relative coordinates.

3.1.8

25 Dec 18:01
c96ae5a
Compare
Choose a tag to compare

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

01 Dec 11:32
1412673
Compare
Choose a tag to compare

Bug fixes

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.

3c46a69 #947

3.1.7

23 Nov 11:49
e76a944
Compare
Choose a tag to compare

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

01 Oct 19:14
31544c8
Compare
Choose a tag to compare

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.

3.1.6

28 Sep 17:28
cd4e558
Compare
Choose a tag to compare

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 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.

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 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.

Removed features

  • The 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.

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