LaTeX中TikZ绘图备忘三

在以下环境测试过

  • 操作系统:Ubuntu 16.04 64位桌面版
  • LaTeX工具:TeXstudio 2.10.8
  • 编译方式:LuaLaTeX
示例六、automata库的使用

  完整代码

\documentclass{article}
%
\usepackage{ctex}
\usepackage{geometry}
\usepackage[dvipsnames, svgnames, x11names]{xcolor}
\usepackage{tikz}
\usepackage{xstring}
%
\usetikzlibrary{positioning, arrows.meta, automata}
%
%
\begin{document}
%
\begin{center}
  \begin{tikzpicture}[->,>=stealth,node distance=2cm,semithick,initial text=,]
    \node[initial,state]  (s1)             {1};
    \node[state]          (s2)[right of=s1]{2};
    \node[state]          (s3)[right of=s2]{3};
    \node[state]          (s4)[right of=s3]{4};
    \node[state]          (s5)[right of=s4]{5};
    \node[state]          (s6)[right of=s5]{6};
    \node[state,accepting](s7)[right of=s6]{7};
    %
    \path (s1) edge                   node[above]{数字}        (s2)
          (s2) edge [loop above]      node       {数字}        (s2)
               edge                   node[above]{.}          (s3)
          (s3) edge [loop above]      node       {数字}        (s3)
               edge                   node[above]{E/e}        (s4)
               edge [bend right = 50] node[above]{非数字且非E/e}(s7)
          (s4) edge                   node[above]{+/-}        (s5)
               edge [bend right = 50] node[above]{数字}        (s6)
          (s5) edge                   node[above]{数字}        (s6)
          (s6) edge [loop above]      node       {数字}        (s6)
               edge                   node[above]{非数字}      (s7);
  \end{tikzpicture}
  \heiti\\ 图2-3 识别Pascal实型常量的转换图\songti
\end{center}
%
\end{document}

效果如下:
LaTeX中TikZ绘图备忘三_第1张图片
说明:
  1、本例中加载了TikZ中的另一个库:automata,用来绘制状态转换图。
  2、这类图形有一个开始与多个结束,注意开始节点中的initial参数,默认情况会在开始结点处绘制一个进入的箭头与文字“start”,这里我们不需要start文字,所以设置initial text=,来去掉文字。
  3、结束节点使用了参数accepting参数,使用此参数后结点就变成了双圆圈的样子。
  4、绘制连线时,总的就是一个\path命令,这也是这类图形的特点之一。同样,最后要加分号。
  5、在绘制大跨度的线段时,我这里没有使用直线绘制,而是用bend曲线来绘制,如果不想指明弧度的话可以直接使用“bend right”或“bend left”。后面的数值越大,弧度就越大。
  6、实际上这类图形也可以使用chains、matrix库来绘制,看大家的习惯了。总之,不论是用哪种库,都比基础的绘制方法要方便些。

你可能感兴趣的:(LaTeX)