dot2tex change log
==================

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

2.11.3
------

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.

2.11.2
------

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

2.11.1
------

Released 2019-03-15

- Fix bug in setup.py entry_points.

2.11.0
------

Released 2019-03-15

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

2.10.dev
--------

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)

2.9.1
-----

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

2.9.0
-----

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="1.2.3.4"`` 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.

2.8.7
-----

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.


2.8.6
-----

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.


2.8.5
-----

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.
    

2.8.4
-----

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!

2.8.3
-----

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

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

    dot2tex --preproc example.dot | dot2tex

  Thanks Peter Collingbourne for the patch!
- Removed obsolete shebang line from dot2tex.py


2.8.1
-----

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

2.8.0
-----

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 dropshadows.dot and sportsbracket.dot 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\""
    label="\n\nA"

- 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 dotparsing.py file.
- Added support for file input. If the input data contains the line
  ``\input{filename.dot}``
  filename.dot 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)


2.7.0
-----

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.

2.6.1
-----

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

2.6.0
-----

Released 2007-09-14.

- Added the ``--autosize`` option. Equivalent to::

  > dot2tex --preproc ex.dot | 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 setup.py 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.

2.5.0
-----

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)

2.0.3
-----

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


2.0.2
-----

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

2.0.1
-----

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

2.0.0
-----

Released 2007-04-23

- Fixed a number of preprocessing bug related to how node attributes are
  interpreted.
- Added automata.dot 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.

1.5.0
-----

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'

1.0.1
-----

- Fixed bug in gvcols.tex

1.0.0
-----

Released 2006-09-10

- First public release.
