# Changelog — tkz-graph

All notable changes to `tkz-graph` are listed here, most recent first.

## [2.20c] — 2026/10/20

### Changed

- Keys use `pgfkeys` instead of `xkeyval`: same names, same default values,
  same results. The behaviour of `\presetkeys` is kept (preset values apply
  only to the keys not given; `\SetVertexMath`, `\SetUpEdge`, `\GraphInit`...
  still change them).
- `xkeyval` is no longer loaded: a document that used it without loading it
  must now load it.
- `vstyle` and the `dir` key of `\grLoop` accept a macro as value.
- The short names (`\Vertex`, `\Vertices`, `\Edge`, `\Edges`, `\Loop`, `\EA`,
  `\WE`, `\NO`, `\SO`, `\NOEA`, `\NOWE`, `\SOEA`, `\SOWE`) are installed at the
  beginning of each `tikzpicture`. A definition of `\EA`, `\NO`... made
  elsewhere (by the user or another package) keeps its meaning outside the
  pictures. If such a name is already defined when tkz-graph is loaded, a
  warning gives the prefixed name.
- The code calls only internal commands (`\tkzgr@...`); tkz-berge does the same.
- Each `vstyle` is a pgfkeys key (`/tkzgraph/vstyle/<name>`).
- Internal macros protected; `\ifthenelse` no longer used internally
  (`ifthen` is still loaded); `etex` removed; `\fileversion` and `\filedate`
  are no longer redefined.

### Fixed
- `\AddVertexColor` and `\Vertices` no longer depend on global helper macros
  (`\deb`, `\fin`, `\v`, `\liste`...).

- A second `\GraphInit[vstyle=...]` in the same group was ignored and wrote
  its value in the text (the internal macro `\GR@init@vstyle` overwrote the
  key itself).

### Added
  - Prefixed names, always available: `\tkzVertex`, `\tkzVertices`, `\tkzEdge`,
    `\tkzEdges`, `\tkzLoop`, `\tkzEA`, `\tkzWE`, `\tkzNO`, `\tkzSO`, `\tkzNOEA`,
    `\tkzNOWE`, `\tkzSOEA`, `\tkzSOWE`.
  - Package option `noshortnames`: the short names are never defined.
  - `\tkzDefGraphStyle{<name>}{<code>}` defines a new style for
    `\GraphInit[vstyle=<name>]` (name case insensitive).

  - `\tkzSetUpGraph[...]`: local settings of the vertices, edges and labels
      (`vertex shape`, `vertex line width`, `vertex line color`, `vertex text color`,
      `vertex fill`, `light fill`, `dark fill`, `ball color`, `inner sep`,
      `outer sep`, `small size`, `medium size`, `big size`, `edge color`,
      `edge width`, `edge fill`, `art color`, `double distance`, `label text`,
      `label fill`, `unit`), `directed` (an arrow on every edge) and `arrow tip`.
      It replaces the `\renewcommand` of `\VertexShape`, `\EdgeLineWidth`...
    - Keys `->`, `<-`, `<->`, `-` and `arrow` for `\Edge` and `\Edges`.
    - Keys `rotation` (angle of the first vertex) and `clockwise` for
      `\Vertices{circle}`.
    - `\tkzHighlightPath[options]{A,B,C}` (path, option `cycle`) and
      `\tkzHighlightPath{A/B,C/D}` (edges): edges drawn again over the graph
      (`color`, `lw`, `style`).
    - `\tkzAdjacencyMatrix[options]`: adjacency matrix of the graph of the last
      picture (options `directed`, `order`).
    - `\tkzGraphFromMatrix[options]{A,B,C}{0,1,1;1,0,1;1,1,0}`: graph (vertices
      on a circle, or `placed`) from a matrix; options `directed`, `weighted`,
      `unit`, `rotation`, `clockwise`, `style`, `loop distance`, `bend`.
    - `\grProbMatrix{A,B,C}{matrix}`: probabilistic graph with any number of
      states, from the transition matrix.


### Compatibility
  - Same rendering for the existing documents. `arrows.meta` is not loaded
    (it changes slightly the default tip); load it to use `arrow tip=Stealth`.

- tkz-berge must be 2.20c or later (older versions need `xkeyval`).

## [2.00] — 2021/01/20
- Correction of bugs and new documentation.

## 1.00
- First version.
