LATEX - как отобразить много переходов на одной петле стрелки? - PullRequest
0 голосов
/ 21 марта 2019

Я хотел бы отобразить много переходов на одной стрелке цикла в латексе.Как я сейчас и делаю, 3 строки отображаются одна над другой.Как я могу отобразить три строки на 3 разных строках, но в одном цикле?

  \begin{tikzpicture}[->,shorten >=1pt,auto,node distance=4cm,
                    semithick]
  \tikzstyle{every state}=[draw=black,text=black]

  \node[initial by arrow,state,initial text=] (1)    {1};
    \node[state] (2) [right of=1] {2};
  \node[state] (3) [right of=2] {3};
  \node[state, accepting] (4) [right of=3] {4};

  \path 

    (1) edge                           node {$\epsilon,\epsilon;\#$}  (2)
    (2) edge     [loop above]          node {$a,\epsilon; x$}         (2)
    (2) edge     [loop above]          node {$b, \epsilon; \epsilon$} (2)
    (2) edge     [loop above]          node {$\$,\epsilon; \epsilon$} (2)
    (2) edge                           node {$\$,\epsilon; \epsilon$} (3)
    (3) edge     [loop below]          node {$b,a; \epsilon $}        (3) 
    (3) edge     [loop below]          node {$a,\epsilon; \epsilon $} (3)              
    (3) edge     [loop below]          node {$\$,\epsilon;\epsilon $} (3)
    (3) edge      node {$\epsilon,\#;\epsilon$} (4)
              ;

\end{tikzpicture}

1 Ответ

1 голос
/ 21 марта 2019

Вы не можете разбивать строки вручную в узле.Но если вы укажете достаточно малую ширину текста, произойдет разрыв строки.Вы даже можете точно управлять им с помощью \ mbox и \ hspace.

В вашем случае это очень просто.Просто добавьте [text width =thing_small] в узел

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata}
\begin{document}
\begin{tikzpicture}[->,shorten >=1pt,auto,node distance=4cm,
                    semithick]
  \tikzstyle{every state}=[draw=black,text=black]

  \node[initial by arrow,state,initial text=] (1)    {1};
    \node[state] (2) [right of=1] {2};
  \node[state] (3) [right of=2] {3};
  \node[state, accepting] (4) [right of=3] {4};

  \path 

    (1) edge                           node {$b,\epsilon;\#$}  (2)
    (2) edge     [loop above]          node[text width=1cm] {$a,\epsilon; x$ 
                                              $b, \epsilon; \epsilon$}         (2)
    (2) edge                           node {$\$,\epsilon; a$} (3)
    (3) edge     [loop below]          node[text width=1cm] {$b,a; \epsilon $ 

                                              $\$,\epsilon;\epsilon $}        (3) 
    (3) edge      node {$\epsilon,\#;\epsilon$} (4)
              ;

\end{tikzpicture}

\end{document}

enter image description here

...