如何创建带有新线的过渡箭头标签?

如何创建带有新线的过渡箭头标签?

我正在使用 TikZ 包绘制下推确定自动机。如何在转换箭头的标签中添加新线?

这不起作用:

\begin{tikzpicture}[shorten >=1pt,node distance=3.5cm,on grid,auto]
   \node[state, initial, initial where=left, accepting] (A) {A}; 
    \path[->] 
    (A) edge [loop above] node {$a, b, c$ \\ $c, d, e$ \\ foo \\ bar} (A);
\end{tikzpicture}

具体来说,{$a, b, c$ \\ $c, d, e$ \\ foo \\ bar}就是忽略新行。

答案1

如果您只是在循环上方的标签中添加新行,那么答案已经在评论中提供了。

以下是使用该text width选项的示例。

\documentclass[tikz]{standalone}

\usetikzlibrary{positioning,automata}

\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=3.5cm,on grid,auto]
   \node[state, initial, initial where=left, accepting] (A) {A}; 
    \path[->] 
    (A) edge [loop above,text width=1cm] node {$a, b, c$ \\ $c, d, e$ \\ foo \\ bar} (A);
\end{tikzpicture}
\end{document}

在此处输入图片描述

这是另一个带有align=left选项的。

\begin{tikzpicture}[shorten >=1pt,node distance=3.5cm,on grid,auto]
   \node[state, initial, initial where=left, accepting] (A) {A}; 
    \path[->] 
    (A) edge [loop above,align=left] node {$a, b, c$ \\ $c, d, e$ \\ foo \\ bar} (A);
\end{tikzpicture}

在此处输入图片描述

这里有align=center选项。

\begin{tikzpicture}[shorten >=1pt,node distance=3.5cm,on grid,auto]
   \node[state, initial, initial where=left, accepting] (A) {A}; 
    \path[->] 
    (A) edge [loop above,align=center] node {$a, b, c$ \\ $c, d, e$ \\ foo \\ bar} (A);
\end{tikzpicture}

在此处输入图片描述

您甚至可以在节点内使用表格。(但这个已经做得过头了:)

\begin{tikzpicture}[shorten >=1pt,node distance=3.5cm,on grid,auto]
   \node[state, initial, initial where=left, accepting] (A) {A}; 
    \path[->] 
    (A) edge [loop above,text width=2cm] node {
    \begin{tabular}{@{}ccc}
    $a$,& $b$,& $c$ \\ 
    $c$,& $d$,& $e$ \\ 
    foo & & \\ 
    bar & &
    \end{tabular}
    } (A);
\end{tikzpicture}

在此处输入图片描述

您可以参阅手册第 16 节(从 179 页开始)pgf以了解更多相关内容。

相关内容