pgf

A Portable Graphic Format for TeX

Stars
1K
Committers
70

Bot releases are visible (Hide)

pgf - 3.1.10 Latest Release

Published by github-actions[bot] almost 2 years 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
pgf - 3.1.9a

Published by github-actions[bot] over 3 years ago

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

pgf - 3.1.9

Published by github-actions[bot] over 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.

pgf - 3.1.8b

Published by github-actions[bot] almost 4 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.

pgf - 3.1.8a

Published by github-actions[bot] almost 4 years ago

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

pgf - 3.1.8

Published by github-actions[bot] almost 4 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

pgf - 3.1.7a

Published by github-actions[bot] almost 4 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

pgf - 3.1.7

Published by github-actions[bot] almost 4 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

pgf -

Published by hmenke about 4 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.

pgf -

Published by hmenke about 4 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

pgf -

Published by hmenke almost 5 years ago

Hotfix for the external library.

The fix for #759 broke existing uses and has been reverted.

pgf -

Published by hmenke almost 5 years ago

Hotfix for tikz-3dplot compatibility

The release includes a bugfix for #809

pgf -

Published by hmenke almost 5 years ago

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 the sort 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 the local 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 (ac33f7e5) 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 the patterns 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.

0b095288 #793
ba8628c8 #804
c6ef774c #305 #669
135e361e #759
be8dfa7e #769
26cea424 #805 #806
f63131b4 #801
4204b35b #803
167a78eb #798
8445f362 #796
03b89120 #795
acd2ca38 #480
d2caaf3a #387
a5989c1e #442
9d4e1020 #428
96f41c41 #730
b2bbefda #775 #776
d9e677f5 #400
94be30ee #788
a632c4d0 #790
41a85559 #789
319cae01 #512
969b1f8d #726
888f902c #785
226808c3 #784
13dab67d #736
92faccff #643 #773 #774
3c909b77 #770
6ccafffa #519 #751
3cf72768 #627
37c39d0e #602
a547358e #727
97a18d33 #767
2e11f549 #728
f7a24c56 #719
88951be5 #311 #717
08275e30 #747
fddaaad7 #753
a93c47eb #762
88954e20 #768
1302de8a #756
b2656567 #743
47f87253 #742
5e2f4a88 #284
aee5465f #735
4aaa25e6 #736
76a69d29 #640 #711 #729
2d5fb0c3 #720
bb5614ea #718
5c746e52 #715
ff369f8a #721
7ee3a2ca #361

pgf -

Published by hmenke about 5 years ago

This is a bugfix release for the dvips driver. A regression was introduced in the dvips driver in the last release that led to displaced objects #722. This update fixes the regression but also reverts the fix for position tracking #690.

pgf -

Published by hmenke over 5 years ago

This is a bugfix release to make the XeTeX driver less broken. A regression was introduced in the XeTeX driver in the last release that lead to displaced objects #708 #709. This update fixes the regression but also reverts the fix for position tracking #353.

pgf -

Published by hmenke over 5 years ago

New features

  • Document and fix the patterns.meta library
  • Stretchable dash patterns
  • Use \protected@edef in \pgfmathparse

Bug fixes

#672, #675, #689, #353, #693, #690, #700, #701, #702
Revert 00f4e8d4154dcb3133ed4a106b6254b8faf874e2
\pgfmathrandominteger didn't handle expressions as input

pgf -

Published by hmenke over 5 years ago