If I add syntax
package, the compiler will generate errors:
Minimal Example
\documentclass[10pt,letterpaper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,automata,backgrounds,petri,positioning}
\usepackage{syntax}
\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
\node[state,initial] (q_1) {$q_1$};
\node[state,accepting] (q_2) [right=of q_1] {$q_2$};
\node[state] (q_3) [below right=of q_1] {$q_3$};
\path[->]
(q_1) edge [bend left] node {a} (q_2)
(q_1) edge [loop above] node {b} (q_1)
(q_2) edge [bend left] node {a,b} (q_3)
(q_3) edge [bend left] node {a} (q_2)
(q_3) edge [bend left] node {b} (q_1);
\node [below=1cm, align=flush center,text width=8cm] at (q_3)
{
$M_1$
};
\end{tikzpicture}
\end{document}
But if I delete \usepackage{syntax}
, it compiles successfully. I wonder is there a way to get around this issue? Thank you.
Best Answer
This issue arises because the
syntax
package makes the underscore (_
) active in order to improve the typesetting of code with underscores. This messes with your node nameq_1
, and leads to the error.Two ways around this:
syntax
package with the optionnounderscore
. You can still get the nice underscore typesetting by using\_
in your code samples.