dot2tex change log

Here you can see the full list of changes between each dot2tex release.


Released 2019-03-31

  • Ignore multiline edge labels during preprocessing (issue #27)
  • Fixed parsing of DOT IDs. Numerals can now be used as node IDs.
  • Fixed issue #64. Remove characters from drawsting.


  • Added support for the circle node shape. Thanks to Alexander Hagen for the pull request.
  • Fix Popen issue on windows 10 when calling latex. The –autosize option is now working again.


Released 2019-03-15

  • Fix bug in entry_points.


Released 2019-03-15

  • Added support for Python 3! Thanks Travis Scrimshaw!
  • Various bug fixes.

Not released

  • Convert input file to output file only if latter is outdated. Can be overridden by the new –force command line option.
  • Replaced deprecated opt parse with argparse.
  • Python 2.7.x is now a requirement (due to the use of the argparse module)


Not released

  • Preprocessing head and tail labels now works in the duplicate mode.
  • Added support for preprocessing head and tail labels (pstricks).
  • Relaxed syntax for including external dot files. Comments are now allowed after \input{}.
  • All xdot coordinates are now parsed as float (issue #31).
  • Added the svgnames option when loading xcolor in the default templates (issue #25).


Released 2014-05-16.

  • Added support for preprocessing head and tail label (pgf and tikz).
  • Graphviz arrow styles are now mapped to corresponding PGF/TikZ arrows.
  • Project is now hosted on GitHub.
  • Numbers are now outputted as floats. Some versions of Graphviz uses scientific notation for small numbers. TeX does not handle that well [issue #11].
  • Added support for more Graphviz node shapes when using the tikz output format: square, diamond, trapezium and star.
  • Fixed compatibility issue with Pyparsing 2.0.1.
  • Fixed a bug in preprocessing triggered by using the --styleonly option with the tikz output format.
  • The number of sides in the hexagon tikz shape is now correct. Thanks to Jean Pichon for reporting this.
  • Added support for the point shape when using the TikZ output format.
  • Node labels are no longer shown when the node shape is point and the output format is TikZ.
  • Fixed issue 14. Parsing of dimension data from the TeX-log is now more robust and the --autosize option should now work in Cygwin.
  • Added the --progoptions option for passing options to the graph layout program.
  • Documentation is now built using Sphinx
  • Cleaned up internal error handling.
  • When dot2tex fails to parse a graph, dot2tex will now raise an exception and quit. In previous versions dot2tex attempted to run the graph through Graphviz first.
  • Log handlers are no longer configured when using dot2tex as a library.
  • Fixed [issue 20]. format=positions no longer fails if node coordinates are floats. Thanks to Nicolas Thiery for reporting this bug.
  • Fixed several bugs in the parsing of ID numerals. The bug caused labels like label="" to be interpreted as label=1.2 [issue 17]. Thanks to Vsevolod for reporting this.
  • stdout is now properly restored after parsing dot data. Thanks to Nicolas Thiery for the patch.
  • Parentheses, (), in tikz node names are now replaced with {}. Parentheses are not valid characters in node names. Thanks DamienJadeDuff for reporting this.


Released 2009-10-05.

  • Edges with no edge points are now properly handled.
  • Added the positions output format that returns a dictionary with node names as keys and (x, y) tuples as values. Works only when called as a module. Feature suggested by Nicolas Thiery.
  • Fixed handling of stderr when creating xdot data. Thanks to Nicolas Thiery for reporting this bug.
  • Exceptions are now caught when accessing invalid win32 registry keys. Updated Graphviz registry key. Thanks Andreas Frische for reporting this.
  • Fixed templates so that crop code is not inserted when preprocessing the graph.


Released 2009-07-09.

  • Added the --pgf118 option for generating code compatible with PGF 1.18 and earlier.
  • Fixed a bug in handling of the special d2toptions attribute. It was read even when commented out. Thanks Misha Aizatulin for reporting this.
  • Fixed label alignment issues when using recent versions of Graphviz.
  • Silenced os.popen3 deprecation warning in Python 2.6.
  • Fixed bug in handling of d2toption when dot2tex was used as a module.


Released 2009-03-02

  • Updated TikZ/PGF templates to use line join=bevel instead of join=bevel. The name of the option was changed in PGF 2.0 and join is now used by TikZ’s chain library. The change will break PGF 1.18 compatibility.
  • Unquoted unicode strings are now correctly parsed.


Released 2008-09-23.

  • Fixed a really stupid bug in the quoting of the Graphviz binaries. The code in the 2.8.3 release did not quote the binaries at all. Thanks Peter Collingbourne for spotting this!


  • File paths to the Graphviz executables are now quoted. This solves an issue with paths containing spaces. Thanks Pedro Teixeira and Mateusz for reporting this.
  • Fixed a template typo. Dot2tex looks for the <<start_figonlysection>>, but <<startfigonlysection>> is used in the documentation. Now both versions can be used.
  • Added --cache command line option. If caching is enabled, dot2tex will check if the input graph has been processed before. If it has not changed the graph will not be converted (not documented yet).


  • Fixed a parsing bug in the detection of output format in cases like:

    dot2tex --preproc | dot2tex

    Thanks Peter Collingbourne for the patch!

  • Removed obsolete shebang line from


  • Fixed a severe bug in the preprocessing code for the tikz output format.


Released 2008-05-05.

  • Node names are now filtered to ensure that they are valid TikZ node names.

  • Correct fill and stroke color is now set when using the tikz and pst output formats.

  • Invisible nodes now generate zero-size coordinates when using the tikz output format. This allows drawing edges to/from invisible nodes.

  • Added and examples.

  • Concentrated edges are now supported in the pgf and pstricks output formats.

  • The dot parser now correctly parses quoted string like:

    label="A \"quote\""
  • The dot parser now supports concatenation of double quoted strings using the + character. Example:

    a [label="partA" + "partB" + "partC"];
  • Added support for edge compass points when using the tikz output format. Example: a.n -> b.e is translated to \draw (a.north) ... (b.east)

  • The external pydot module has been replaced with a custom version of the pydot’s dot parser. Available in the file.

  • Added support for file input. If the input data contains the line \input{} will be loaded and processed. (Thanks Kim Sullivan for the idea)

  • Added interface for using dot2tex as a library. Example:

    import dot2tex
    testgraph="digraph G {a_1-> a_2 -> a_3 -> a_1;}"
    texcode = dot2tex.dot2tex(testgraph,format='tikz',crop=True)


Released 2007-12-10.

  • Added the --codeonly option. When this option is used, only draw commands are generated. Intended for use with the dot2texi package.
  • Minor improvements to the documentation.
  • Added graphanndtti.tex example.


  • Fixed missing header in the file dot2tex/dotex
  • Fixed various typos in the documentation


Released 2007-09-14.

  • Added the --autosize option. Equivalent to:

    > dot2tex --preproc | dot2tex
  • Added the --prog option for choosing between dot, neato, circo, towpi and fdp, when the input is in plain dot format.

  • Added the special d2toptions graph attribute. Allows you to specify dot2tex options in command line format.

  • Added a dot2tex wrapper script and changed to make it fully compatible with both setuptools and distutils. A dot2tex module will now be put in the site-packages directory and a wrapper script in the scripts directory.

  • Fixed typo in error message.

  • Added --runtests option to run doc tests (experimental).

  • Fixed issue with wrong template when both the –preview and –figonly options were used.


Released 2007-07-28.

  • Added the TikZ output format (-f tikz)
  • Added the lblstyle attribute for styling graph, node and edge labels. (PGF and TikZ only)
  • Added the --tikzedgelabels option for placing edge labels without using xdot edge label information (tikz and pgf output format only).
  • Added a topath edge attribute for using TikZ’ to paths (tikz and pgf only).
  • Information about the selected output format is now stored in the graph generated in preprocessing mode. No longer necessary to specify an output format in the final run.
  • Edges with the same source and dest are now handled correctly in preprocessing mode. Only the edge defined last was preprocessed.
  • Added the --nodeoptions and --edgeoptions options and corresponding d2tnodeoptions and d2tedgeoptions graph attribute (tikz only).
  • Added the exstyle attribute. Ignored in preprocessing mode. (pgf and tikz only)


  • Special TeX char escape code rewritten. Now works as intended. The $ character was not properly escaped.
  • Added & to list of special characters.


  • Fixed a severe bug in the interpretation of color attributes in edges. Colors were not reset after a change to a single edge color.


  • Node margins are now interpreted correctly for nodes with size < minsize.
  • Nodes now grow correctly to fit labels when size > minsize
  • Updated documentation with an example on how to change node sizes.


Released 2007-04-23

  • Fixed a number of preprocessing bug related to how node attributes are interpreted.
  • Added example.
  • Changed the name of the --preview option to --crop.
  • Added the –preproc option for preprocessing labels with preview.sty.
  • Added the –debug option. Writes detailed debug information to dot2tex.log.
  • The ^ char is now properly escaped.
  • Default PGF/TikZ template now requires PGF v >= 1.09.
  • Added new template tags to support preprocessing mode.
  • Templates for preprocessing, output and figonly mode can now be put in the same file.
  • Added the --alignstr option.
  • Added the --valignmode option.
  • Added the --usepdflatex option.


Released 2006-10-22

  • Added a few more helpfull error messages.
  • Added the --figonly option.
  • The $ character is now properly escaped.
  • Fixed a few issues when converting between Graphviz to backend styles.
  • Fixed scoping issues when drawing edges in duplicate mode.
  • Added more intelligent detection of xdot input. Older versions of Graphviz does not include the xdotversion attribute in the output.
  • Styles are now transfered to the PSTricks and PGF/TikZ backend.
  • Added a force straight line option to avoid using curves for straight edges.
  • PGF/TikZ is now set as the default backend.
  • Fixed a line ending issue in data converted internally to the xdot format.
  • Added the -V version command line switch
  • Added the --encoding option
  • Added option for switching node and graph draw order.
  • Fixed bug in PGF/TikZ color handling
  • Added the --preview option to crop graphs
  • Added --figpreamble and --figpostamble options and graph attributes.
  • Added --docpreamble option and d2tdocpreamble graph attribute
  • Added --graphstyle option
  • Added --gvcols option
  • Changed default PGF/TikZ arrow type to >=latex’


  • Fixed bug in gvcols.tex


Released 2006-09-10

  • First public release.