---
name: "dot2tex"
section: "1"
platform: "linux"
package: "dot2tex"
version: "2.11.3-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dot2tex"
---

# dot2tex(1)

Graphviz to LaTeX converter

## NAME

dot2tex - Graphviz to LaTeX converter

## SYNOPSIS

**dot2tex** \[**--prog** *graphviz-command*\] \[*options*\] *dot-file* \> *tex-file*\
 **dot2tex** \[*options*\] *xdot-file* \> *tex-file*\
 *graphviz-command* **-txdot** *dot-file* \| **dot2tex** \[*options*\] \> *tex-file*

## DESCRIPTION

This manual page documents briefly the **dot2tex** command.

**dot2tex** is a tool for converting graphs generated by Graphviz to formats suitable for use with LaTeX. Currently **dot2tex** generates code for PSTricks and PGF/TikZ.

The purpose of **dot2tex** is to give graphs a more LaTeX look and feel. This is accomplished by:

- \*

  Typesetting labels with LaTeX, allowing mathematical notation.

- \*

  Using native PSTricks and PGF/TikZ commands for drawing arrows, edges and nodes.

- \*

  Using backend specific styles to customize the output.

## USAGE

Input data is read from standard input if no inputfile is specified. Output is written to standard output unless a destination file is set with the **-o** option.

**dot2tex** relies on the *xdot format* generated by Graphviz. **dot2tex** will automatically run [**dot**(1)](/dot/1.md) on the input data if it is in the plain dot format. If you want to use other layout tools like [**neato**(1)](/neato/1.md) and [**circo**(1)](/circo/1.md), use the **--prog** option.

## OPTIONS

A summary of options is included below.

- **-h, --help**

  Display help message.

- **-f *fmt*, --format *fmt***

  Set output format. The following values of *fmt* are supported:

  - **pgf**

    PGF/TikZ. Default.

  - **pstricks** or **pst**

    Use PSTricks.

  - **tikz**

    TikZ format.

- **-t *mode*, --texmode *mode***

  Text mode. Specify how text is converted.

  - **verbatim**

    Text is displayed with all special TeX chars escaped (default).

  - **math**

    Output all text in math mode $$.

  - **raw**

    Output text without any processing.

  Note that you can locally override the text mode by assigning a special **texlbl** attribute to a graph element, or by using the **texmode** attribute.

- **-s, --straightedges**

  Draw edges using straight lines. Graphviz uses bezier curves to draw straight edges. Use this option to force the use of line to operations instead of curves. Does not work in **duplicate** mode.

- **-o *filename*, --output *filename***

  Write output to file.

- **-d, --duplicate**

  Duplicate the xdot output. Uses the drawing information embedded in the xdot output to draw nodes and edges.

- **--template *filename***

  Use template from file. See the HTML documentation for more details.

- **-V, --version**

  Print version information and exit.

- **-w, --switchdraworder**

  Switch drawing order of nodes and edges. By default edges are drawn before nodes.

- **-c, --crop**

  Use preview.sty to crop the graph. Currently only implemented for the PGF/TikZ backend.

- **--figonly**

  Output the graph without a document preamble. Useful if the graph is to be included in a master document.

- **--codeonly**

  Output only the drawing commands, without wrapping it in a **tikzpicture** or **pspicture** environment. Useful when used with the dot2texi package.

- **--preproc**

  Preprocess the graph through LaTeX using the **preview** package. Will generate a new dot file where the height and widths of nodes and edge labels are set based on the results from **preview**.

- **--cache**

  Enables output caching.  dot2tex will check if the input graph has been processed before. If it has not changed the graph will not be converted.

- **--autosize**

  Preprocess the graph and run Graphviz on the output. Equivalent to:

  dot2tex --preproc *dot-file* \| dot2tex

- **--prog *program***

  Set graph layout program to use when the input is in plain dot format. Allowed values: dot (default), neato, circo, fdp, twopi.

- **--usepdflatex**

  Use [**pdflatex**(1)](/pdflatex/1.md) instead of [**latex**(1)](/latex/1.md) for preprocessing the graph.

- **--nominsize**

  Ignore minimum node sizes during preprocessing.

- **--valignmode *mode***

  Vertical alignment of node labels, where *mode* can have the values:

  - **center**

    Labels are placed in the middle of the node (default).

  - **dot**

    Use the coordinate given by the xdot output from Graphviz.

- **--alignstr *str***

  Used to pass a default alignment string to the PSTricks *\\rput* command:

  \\rput\[alignstr\] ...

  Only works for the PSTricks format. PGF/TikZ users can instead pass an **anchor=...** style using the **graphstyle** option.

- **--tikzedgelabels**

  Bypass Graphviz' edge label placement and use PGF/TikZ instead (tikz and pgf formats only).

- **--styleonly**

  Use TikZ only styles when drawing nodes. No draw or shape option is added (tikz format only).

- **--nodeoptions *tikzoptions***

  Wrap node code in a scope environment with *tikzoptions* as parameter (tikz format only).

- **--edgeoptions *tikzoptions***

  Wrap edge code in a scope environment with *tikzoptions* as parameter (tikz format only).

- **--debug**

  Write detailed debug information to the file dot2tex.log in the current directory.

- **--pgf118**

  Generate code compatible with PGF 1.18 and earlier.

  The following options are used by the output templates.

- **-e *encoding*, --encoding *encoding***

  Set text encoding. Supported encodings are **utf8** and **latin1**.

- **--docpreamble *TeXcode***

  Insert TeX code in the document preamble.

- **--figpreamble *TeXcode***

  Insert TeX code in the figure preamble.

- **--figpostamble *TeXcode***

  Insert TeX code in the figure postamble.

- **--graphstyle *style***

  Sets the **\<\<graphstyle\>\>** tag.

- **--margin *margin***

  Set margin around the graph when using **preview.sty**. *margin* must be a valid TeX unit. By default *margin* is set to 0pt.

## SEE ALSO

[**dot**(1)](/dot/1.md), [**latex**(1)](/latex/1.md).

- */usr/share/doc/dot2tex/usage.html*

  Full documentation for **dot2tex**

- */usr/share/doc/dot2tex/examples*

  Example Graphviz dot files for use with **dot2tex**

## AUTHOR

**dot2tex** was written by Kjell Magne Fauske \<kjellmf@gmail.com\>

This manual page was written by Peter Collingbourne \<peter@pcc.me.uk\>, for the Debian project (but may be used by others).
