I'm trying to dot2tex to render automata. For reasons I do not understand, the rendering is missing some boxes.
For the following Dot file input:
digraph
{
rankdir = LR
{
I0 [shape = point, width = 0]
F4 [shape = point, width = 0]
}
{
0 [label = "a((a+b) : b^* : c)", texmode = math, shape = box ]
1 [label = "(a+b):b^*:c" , texmode = math, shape = box ]
2 [label = "b^*:c" , texmode = math, shape = box ]
3 [label = "(a+b):b^*" , texmode = math, shape = box ]
4 [label = "b^*" , texmode = math, shape = box ]
}
edge [texmode = math]
I0 -> 0
0 -> 1 [label = "a"]
1 -> 1 [label = "b"]
1 -> 2 [label = "a, b"]
1 -> 3 [label = "c"]
2 -> 2 [label = "b"]
2 -> 4 [label = "c"]
3 -> 3 [label = "b"]
3 -> 4 [label = "a, b"]
4 -> F4
4 -> 4 [label = "b"]
}
Using dot2tex --crop --nominsize --autosize --usepdflatex ex.dot > ex.tex && texi2dvi --pdf ex.tex to compile, I don't have a single box displayed at all in the generated PDF:

As demanded, this is the generated LaTeX file:
\documentclass{article}
\usepackage[x11names, rgb]{xcolor}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{snakes,arrows,shapes}
\usepackage{amsmath}
%
%
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{0pt}%
%
\begin{document}
\pagestyle{empty}
%
%
%
\enlargethispage{100cm}
% Start of code
% \begin{tikzpicture}[anchor=mid,>=latex',line join=bevel,]
\begin{tikzpicture}[>=latex',line join=bevel,]
\pgfsetlinewidth{1bp}
%%
\begin{scope}
\pgfsetstrokecolor{black}
\definecolor{strokecol}{rgb}{1.0,1.0,1.0};
\pgfsetstrokecolor{strokecol}
\definecolor{fillcol}{rgb}{1.0,1.0,1.0};
\pgfsetfillcolor{fillcol}
\end{scope}
\begin{scope}
\pgfsetstrokecolor{black}
\definecolor{strokecol}{rgb}{1.0,1.0,1.0};
\pgfsetstrokecolor{strokecol}
\definecolor{fillcol}{rgb}{1.0,1.0,1.0};
\pgfsetfillcolor{fillcol}
\end{scope}
\pgfsetcolor{black}
% Edge: 1 -> 1
\draw [->] (236.33bp,68.032bp) .. controls (232.73bp,77.033bp) and (236.41bp,86bp) .. (247.37bp,86bp) .. controls (254.05bp,86bp) and (258.02bp,82.67bp) .. (258.41bp,68.032bp);
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (247.37bp,95bp) node {$b$};
% Edge: 2 -> 2
\draw [->] (374.7bp,100.02bp) .. controls (370.35bp,108.81bp) and (373.74bp,118bp) .. (384.87bp,118bp) .. controls (391.65bp,118bp) and (395.56bp,114.59bp) .. (395.04bp,100.02bp);
\draw (384.87bp,127bp) node {$b$};
% Edge: 4 -> 4
\draw [->] (491.47bp,65.023bp) .. controls (489.16bp,73.814bp) and (490.96bp,83bp) .. (496.87bp,83bp) .. controls (500.38bp,83bp) and (502.44bp,79.762bp) .. (502.27bp,65.023bp);
\draw (496.87bp,92bp) node {$b$};
% Edge: 1 -> 3
\draw [->] (287.93bp,42.947bp) .. controls (304.38bp,37.725bp) and (323.54bp,31.646bp) .. (350bp,23.248bp);
\draw (319.37bp,44.5bp) node {$c$};
% Edge: 4 -> F4
\draw [->] (512.68bp,54.5bp) .. controls (520.55bp,54.5bp) and (530.34bp,54.5bp) .. (549.15bp,54.5bp);
% Edge: I0 -> 0
\draw [->] (21.657bp,55.5bp) .. controls (28.347bp,55.5bp) and (37.759bp,55.5bp) .. (58.115bp,55.5bp);
% Edge: 3 -> 3
\draw [->] (374.16bp,25.032bp) .. controls (370.67bp,34.033bp) and (374.24bp,43bp) .. (384.87bp,43bp) .. controls (391.34bp,43bp) and (395.2bp,39.67bp) .. (395.58bp,25.032bp);
\draw (384.87bp,52bp) node {$b$};
% Edge: 0 -> 1
\draw [->] (153.71bp,55.5bp) .. controls (167.21bp,55.5bp) and (181.99bp,55.5bp) .. (205.95bp,55.5bp);
\draw (179.87bp,63.5bp) node {$a$};
% Edge: 3 -> 4
\draw [->] (419.6bp,24.191bp) .. controls (433.26bp,29.053bp) and (449.13bp,34.869bp) .. (463.37bp,40.5bp) .. controls (466.1bp,41.581bp) and (468.95bp,42.746bp) .. (481.06bp,47.899bp);
\draw (450.37bp,50.5bp) node {$a, b$};
% Edge: 1 -> 2
\draw [->] (288.66bp,65.609bp) .. controls (309.19bp,70.762bp) and (333.78bp,76.932bp) .. (362.78bp,84.207bp);
\draw (319.37bp,86.5bp) node {$a, b$};
% Edge: 2 -> 4
\draw [->] (407.08bp,82.752bp) .. controls (425.49bp,76.892bp) and (452.16bp,68.406bp) .. (481.06bp,59.211bp);
\draw (450.37bp,80.5bp) node {$c$};
% Node: F4
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\definecolor{fillcol}{rgb}{0.0,0.0,0.0};
\pgfsetfillcolor{fillcol}
\end{scope}
% Node: I0
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\definecolor{fillcol}{rgb}{0.0,0.0,0.0};
\pgfsetfillcolor{fillcol}
\end{scope}
% Node: 1
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (247.37bp,55.5bp) node {$(a+b):b^*:c$};
\end{scope}
% Node: 0
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (105.87bp,55.5bp) node {$a((a+b) : b^* : c)$};
\end{scope}
% Node: 3
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (384.87bp,12.5bp) node {$(a+b):b^*$};
\end{scope}
% Node: 2
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (384.87bp,89.5bp) node {$b^*:c$};
\end{scope}
% Node: 4
\begin{scope}
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (496.87bp,54.5bp) node {$b^*$};
\end{scope}
%
\end{tikzpicture}
% End of code
%
\end{document}
%
If I comment the definition of nodes I0 and F4, then I get some boxes, but not all of them! I would prefer rounded boxes, but that does not seem to work properly either.
digraph
{
rankdir = LR
{
node [shape = point, width = 0]
I0
F4
}
{
node [texmode = math, shape = box, style = rounded]
0 [label = "a((a+b) : b^* : c)"]
1 [label = "(a+b):b^*:c"]
2 [label = "b^*:c"]
3 [label = "(a+b):b^*"]
4 [label = "b^*"]
}
edge [texmode = math]
I0 -> 0
0 -> 1 [label = "a"]
1 -> 1 [label = "b"]
1 -> 2 [label = "a, b"]
1 -> 3 [label = "c"]
2 -> 2 [label = "b"]
2 -> 4 [label = "c"]
3 -> 3 [label = "b"]
3 -> 4 [label = "a, b"]
4 -> F4
4 -> 4 [label = "b"]
}
I've read the doc, and found nothing interesting. Same problem with tikz output. I looked at the xdot output, and it does output the boxes, the problem seems to come from dot2tex. I've read the --debug logs, and saw nothing fishy.
Is there something I missed?
Thanks in advance!
style has too many meaning (EDIT)
Well, it appears that I was using "style" as Graphviz expects it; however it is also interpreted by dot2tex as TikZ style to apply to the node. That might be why I was getting weird results.
Further experience led me to the following Dot input file:
digraph
{
d2tdocpreamble = "
\usetikzlibrary{arrows, automata, positioning}
\tikzstyle{automaton}=[shorten >=1pt, pos=.4, >=stealth', initial text=]
\tikzstyle{state}=[rectangle, rounded corners]
\tikzstyle{accepting}=[accepting by arrow]
"
rankdir = LR
{
node [texmode = "math", style = "state"]
0 [label = "a((a+b) : b^* : c)", style = "state, initial"]
1 [label = "(a+b):b^*:c"]
2 [label = "b^*:c"]
3 [label = "(a+b):b^*"]
4 [label = "b^*", style = "state, accepting"]
}
edge [texmode = "math", lblstyle = auto]
0 -> 1 [label = "a"]
1 -> 1 [label = "b"]
1 -> 2 [label = "a, b"]
1 -> 3 [label = "c"]
2 -> 2 [label = "b"]
2 -> 4 [label = "c"]
3 -> 3 [label = "b"]
3 -> 4 [label = "a, b"]
4 -> 4 [label = "b"]
}
to compile with dot2tex -f tike --tikzedgelabels --graphstyle=automaton --crop -w --nominsize --autosize ex.dot > ex.tex && texi2dvi --pdf ex.tex, in which case I get the following result. The edges are too long, but overall, it looks nice.

lblstyleoption: as usual, you have to pass TikZ options. For instance, have a look to How can I use overlays in beamer when producing graphs with dot? – Claudio Fiandrino May 30 '14 at 14:17