tikz 中的项目符号对齐与其他一些问题

tikz 中的项目符号对齐与其他一些问题

我想要改变下图中的几件事: 在此处输入图片描述
(d)(1)从图片开始的位置垂直向上对齐项目符号。
(2)在 处改变箭头方向,q4从右向左(此图中方向是从左向右)
(3)拉伸的自身在 处循环,q3就像q4在 处一样q2

\documentclass[12pt,a4paper]{article}
\usepackage{enumerate}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\tikzset{every state/.style}
\begin{document}
  \begin{enumerate}[(a)]
    \item
    \item
    \item
    \item
      \begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,semithick]
    \node[initial,state] (q0)                    {$q_0$};
    \node[state]         (q1) [above right of=q0]      {$q_1$};
    \node[state,accepting]         (q2) [right of=q1]      {$q_2$};
    \node[state]         (q3) [below right of=q0] {$q_3$};
    \node[state]         (q4) [above right of=q3] {$q_4$};
    \node[state,accepting]         (q5) [right of=q3,xshift=1cm] {$q_5$};
    
    \path (q0) edge    node {0} (q1)
               edge    node[left,xshift=-0.2cm] {1} (q3)
          (q1) edge    node {1} (q2)
               edge    node[right,xshift=0.1cm] {0} (q4)
          (q2) edge [loop]        node[above] {0,1} (q2)
          (q3) edge [loop below]        node[below] {1} (q3)
               edge    node[right,xshift=0.1cm] {0} (q4)
          (q4) edge [loop right]        node {0} (q4)
               edge [bend left]        node[below] {1} (q5)
          (q5) edge [bend left]        node[above] {0} (q4)
               edge    node {1} (q3);
    \end{tikzpicture}
  \end{enumerate}
\end{document}

我试过对齐项目符号,但这对我来说不起作用。

答案1

像这样?

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage{enumerate}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,automata,
                positioning,
                quotes}

\begin{document}
  \begin{enumerate}[(a)]
    \item
    \item
    \item
    \item
      \begin{tikzpicture}[baseline={([yshift=-0.6\baselineskip] current bounding box.north)},
    auto,
    node distance=12mm and 12mm,
    every edge/.style = {draw, semithick, -Stealth, shorten >=1pt},
    every edge quotes/.style = {font=\small, inner sep=2pt},
    every loop/.style = {looseness=12} 
                        ]
    \node (q0) [state, initial]     {$q_0$};
    \begin{scope}[nodes=state]
    \node (q1) [above right=of q0]  {$q_1$};
    \node (q2) [state, accepting, 
                right=of q1]        {$q_2$};
    \node (q3) [below right=of q0]  {$q_3$};
    \node (q4) [above right=of q3] {$q_4$};
    \node (q5) [accepting,
                right=of q3]        {$q_5$};
    \end{scope}
    \path (q0) edge ["0" ']             (q1)
               edge ["1"]               (q3)
          (q1) edge ["1"]               (q2)
               edge ["0" ']             (q4)
          (q2) edge [loop above, 
                     "{0,1}"]           (q2)
          (q3) edge [loop below, "1"]   ()   
          (q4) edge ["0" ']             (q3)
          (q4) edge [loop right, "0"]   ()
               edge [bend left,  "1"]   (q5)
          (q5) edge [bend left,  "0"]   (q4)
               edge ["1"]               (q3);
    \end{tikzpicture}
  \end{enumerate}
\end{document}
  • 使用的是positioningquotes
  • 在这种情况下,定位的语法是right=of q0等(观察MWE 中的比较=和交换)of
  • 定义了边和边引号和循环的样式

编辑: 或者通过使用node distance=24mm and 24mm, on grid,上面的 MWE,图表如下:

在此处输入图片描述

编辑:根据 OP 评论,图像应该与文字对齐开始如图所示。这可以通过

\begin{tikzpicture}[baseline={([yshift=-0.5ex] q0.base)},

对于 id ,上述 MWE 的结果是:

在此处输入图片描述

相关内容