PGF/TikZ on pgf at Fast, secure and Free Open Source software downloads

TikZ/PGF - Graphic systems for TeX

PGF is a TeX macro package for generating graphics. It is platform- and format-independent and works together with the most important TeX backend drivers, including pdftex and dvips. It comes with a user-friedly syntax layer called TikZ.

This page provides unstable builds for experts. Please refer to the sourceforge project site to retrieve information, stable downloads, and bug trackers.

Unstable Builds

We provide unstable builds here. They contain the most recent features, including those which are not ready for testing.

Installation instructions can be found in the manual (pdf). There is no warranty.


Unstable TDS release (
Unstable TDS release PGF Manual (.pdf)
Unstable TDS ChangeLog
2017-02-08 Christian Feuersaenger 

	- fixed incompatibility issue of tikzmath and fpu reported in

2016-12-31 Christian Feuersaenger 

	- Improved driver detection (bug #395 TikZ does not create output with LuaTeX 0.95.0)
	- New luatex driver now supports fallback to pdftex driver if
	luatexversion is older than 95 (let's hope this works reliably - luatex
	used to have version 240 some time ago!)

2016-08-10 Till Tantau 

	- Fixed bugs that caused pgfsys-dvips.def to generate corrupt
	PostScript for all nodes.

2016-07-16 Till Tantau 

	- Bounding box computations for animations implemented.
	- Animated arrow tips are now possible.

2016-07-13 Christian Feuersaenger 

	- fixed incompatibility between textpos (absolute mode) and external

2016-06-17 Christian Feuersaenger 

	- fixed \write18 issues in luatex 0.87 and later (by using os.execute())
	  affects external lib and plot function.

2016-03-31 Till Tantau 

	- Lots of bugfixes in animation and svg code.
	- Added optimizations to reduce file size for svg code
	  (better support by dvisvgm will be needed however for more
	  compact text!).

2016-03-18 Till Tantau 

	- First working, fully documented version of TikZ animations!

2016-02-24 Till Tantau 

	- Fixed manual stuff to compile it with dvisvgm.

2016-02-02 Till Tantau 

	- Rewrote tikz animation lib.

2016-01-06 Christian Feuersaenger 

	- added context-related aux file fix of Hans Hagen

2016-01-02 Christian Feuersaenger 

	- fixed save stack issues (eliminated 'retaining' issues) about pgf@x and pgf@y

2015-12-29 Christian Feuersaenger 

	- external lib: 'force remake' now also updates .md5 files

2015-11-28 Christian Feuersaenger 

	- fpu: fixed floor and ceil
	- fixed basic layer floor function
	- lua library: improved interoperability of luamath and fpu
	- unit test now compares luamath, fpu, and pgfbasic math

2015-11-15 Christian Feuersaenger 

	- activated math parser in foreach's end notation to allow \foreach \i in {0,...,10-9}

2015-09-09 Till Tantau 

	- Worked on pgfsys-dvisvgm.def a lot. Now requires
	dvisvgm-1.5.3 because of switch from pt to bp there. Does
	correct bounding box computations.

2015-09-06 Christian Feuersaenger 

	- fixed bug in luamath library

2015-08-29 Christian Feuersaenger 

	- external lib: added support to automatically externalize references and
	labels with 'mode=convert with system call'

2015-08-24 Till Tantau 

	- Reworked implementation of animations for tikz and started
	on documentation of the backend.

2015-08-20 Till Tantau 

	- First complete implementation of animations for tikz! (for
	svg backend). Documentation still missing, but works nicely.

2015-08-13 Till Tantau 

	- First work on animations for svg. Added commands in pgfsys
	and added module pgfmoduleanimations. No documnetation yet.

2015-08-07 Christian Feuersaenger 

	- Release 3.0.1!

2015-08-03 Christian Feuersaenger 

	- fixed regression introduced for pgf 3.0.0 (bug #149): leading empty
	lines at the beginning of plot files disabled '-- plot'
	- fixed bug #291 (missing white space trimming in node labels)
	- fixed bug #313 (alias option did not respect name prefix/suffix)
	- fixed bug #341 ("is in pic" was not reset)
	- fixed bug #365 (caused by missing adoption after copy-paste in tikzlibraryfolding)
	- fixed bug #315/316 by applying the suggested patch and verifying it

2015-06-12 Christian Feuersaenger 

	- fixed fpu math functions for int, ceil, and floor
	- added \pgfmathlogtwo and \pgfmathlogten as requested in bug #359

2015-06-06 Till Tantau 

	- Fixed problem in gd: Creating more than about 15 vertices
	inside a graph drawing algorithm was impossible since this
	created too many text input levels. Reorganized the interplay
	between tex and lua for the coroutine so that no input levels
	are created.

2015-06-05 Till Tantau 

	- Added number nodes option to graph lib.

2015-05-18 Till Tantau 

	- Fixed nullfont warnings in axes in datavisualization.
	- Fixed wrong axes for school book plots.

2015-05-15 Mark Wibrow 

	- Fixed nullfont warnings when parsing logic gate inputs.

2015-05-08 Till Tantau 

	- Fixed bug in tikz.code.tex concerning colors for arrow tips:
	Setting and restoring the global color "trackers"
	pgf@fillcolor@global over groups was done only in \pgfscope,
	but not in the scopes opened and closed by tikz when drawing a
	path (\pgfsys@beginscope is used there). This caused wrong
	colors to be used.

2015-05-08 Mark Wibrow 

	- Updated patterns.meta library.

2015-05-02 Christian Feuersaenger 

	- context: committed patch to adopt pgfutil-context for new (incompatible)
	context handling of colors -- contains some cleanup by Hans Hagen.

2015-03-28 Christian Feuersaenger 

	- fixed bug in external lib: braces in external filenames confused the generator

2015-01-02 Christian Feuersaenger 

	- fixed bug in fpu: equal(x, 0) failed for x<0

2014-12-30 Christian Feuersaenger 

	- fixed bug in atan2 (returned wrong sign for atan2(4e-5,-5))
	- implemented atan2 in FPU

2014-11-02 Christian Feuersaenger 

	- fixed save stack issue (TeX capacity exceeded, sorry [save size=250000])
	if the color changes a _huge_ number of times during a single path.

2014-10-11 Christian Feuersaenger 

	- worked on LUA math parser: ensured that a suitable first scope of
	functions works. I also added support for 'declare function'

2014-10-11 Mark Wibrow 

	- Added provisional code for patterns.meta library. Patterns
        can now be declared using TikZ code with additional support
        for tile transformations. Currently only PDF output supported
	at back-end (uses \pgfsys@declarepattern@meta in pgfsys-pdftex.def).

2014-08-04 Christian Feuersaenger 

	- finished first prototype of a LUA math parser. It is orders of magnitude
	faster than its TeX pendant, features a pure LUA mode and also offers a
	fallback to the TeX \pgfmathparse for unsupported operations/functions
	only defined in TeX.

2014-07-09 Christian Feuersaenger 

	- fixed bug (regression of bug #229): external lib with dvips produced
	wrong bounding box (was broken entirely)

2014-07-08 Christian Feuersaenger 

	- fixed regression in external lib: 'mode=graphics if exists' broke any
	undefined label warnigns
	- added automatic "fast lane" to math parser: if the input is a number
	without units, it will return that as-is. Reduces typesetting time down to
	66% for huge scatter plots and has just 1% overhead for math intensive

2014-06-22 Christian Feuersaenger 

	- added switch 'trig format=deg|rad' which allows to switch sin,cos,tan,
	and their friends to radians. It works for all user input
	arguments - I hope without unanticipated side-effects (marked as

2014-05-17 Christian Feuersaenger 

	- external lib: defined suitable defaults for 'system call' depending on driver
	- external lib: solved incompatibility with biblatex's \cite[][]{name}
	command	(}
	- number parser/printer: added switch 'read comma as period' to read
	localized input numbers. Off by default but added useful hint to parser

2014-05-06 Christian Feuersaenger 

	- Fixed bug #308 fixedpointarithmetic: unwanted spaces by line ends 

2014-03-30 Christian Feuersaenger 

	- Fixed feature #81: signum function (fpu + pgf basic layer)

2014-03-24 Till Tantau 

	- Fixed all \begin{scope} and \end{scope} in foldings lib,
	changed them to \scope and \endscope.

2014-03-21 Till Tantau 

	- Fixed #303 Type in pgfmanual (colormixin)
	- Fixed #302 pgf-3.0: Cannot plot a constant function. Will
	now center the constant line.
	- Addressed #299 Precision problem with explicitily anchored
	labels: While not a bug, I added a "centered" option for cases
	similar to this one (although, in this particular case, the
	new centered option is not what is needed)...
	- Fixed #298 \pgfarrowsdeclare is still mentioned in pgfmanual
	- Fixed #294 Nodes for arcs, which angles are calculated
	- Fixed #292 "node scale and outer sep" by introducing the new
	option "outer sep=auto", which takes care of both this problem
	(at least in all normal cases) and also of the draw versus
	fill problem with outer seps.

2014-03-20 Till Tantau 

	- Fixed #285 \tikz@intersect@namedpaths persists outside
	scopes as suggested.
	- Fixed #284 Additional rerun statement for overlays (for LyX)
	by adding the proposed solution (essentially).
	- Added post-fix for #288 by undoing all -- ligatures in
	verbatim code.

2014-03-19 Till Tantau 

	- Fxied #283 "Is there a smarter way to handle units in math
	engine?" by adding the "scalar" function.
	- Fixed #288 "All the '£' should be '$' in the examples of
	pgfmanual..." by switching to T1 enconding.
	- Fixed #282 "\pgfmathredeclarefunction does not work properly."

2014-02-24 Till Tantau 

	- Added first edge routing algorithm to gd.
2014-02-02 Christian Feuersaenger 
	- intersections libs: improved robustness and accuracy for curveto paths
	by using the floating point library together with Mark Wibrow. 

2014-01-08 Christian Feuersaenger 

	- fixed bug in latex/plain tex shipout routines for xdvipdfmx and xelatex:
	combination of shadings	and standalone package failed to work.

2013-12-31 Mark Wibrow 

	- Fix for 'rotate around x/y/z' keys which now evaluate
	  the argument provided.
2013-12-25 Christian Feuersaenger 

	- intersections lib: detected duplicates in line-to intersections
	in endpoints and suppressed them.
	- intersections lib: stored time offset for each intersections as optional
	property (i.e. if it comes for free). This is required to compute fill

2013-12-20 Till Tantau 

	- Release 3.0.0!	

2013-12-20 Till Tantau 

	- In preparation for the release 3.0.0, I pimped the manual a
	  bit. It will now automatically detect whether graph drawing
	  C libs are available or not. Also, syntax hilighting is now
	  always switched on. I also some subtle optical hints to
	  crossreferenced words