Pgf Versions Save

A Portable Graphic Format for TeX

3.1.10

1 year ago

[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

3 years ago

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

3.1.9

3 years ago

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

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

3.1.8a

3 years ago

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

3.1.8

3 years ago

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.

a4c275704 #952 8a997bbc1 #954 8f37bca84 #962 3cbe5a192 #844 49e5f0a08 #654 17a95e4c5 #966 ad06895a6 #966 79e613ae1 #966

3.1.7a

3 years ago

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.

3c46a6974 #947

3.1.7

3 years ago

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:

67295ec8 #946 74b2cc30 #934 8beaf970 #928 bf46600f #654 1e8ee728 #930

3.1.6a

3 years ago

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

3 years ago

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.

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