Цепи Tikz с одной стороной самого левого узла, толстые, жирные

Цепи Tikz с одной стороной самого левого узла, толстые, жирные

Доброе утро всем. На самом деле, я пишу здесь впервые, так что спасибо всем, кто ответит. Я пишу свою дипломную работу и сейчас застрял на рисовании машины Тьюринга. Я хотел бы сделать что-то вроде этого:

введите описание изображения здесь

За исключением того, что я хотел бы иметь левую сторону первого узла (только левую сторону, а не все 4 стороны) в verythick. То, что я сделал до сих пор, это следующее:

\begin{tikzpicture}
\edef\turingtapesize{0.7cm}
\tikzstyle{tape}=[draw,minimum size=\turingtapesize]
\tikzset{
    leftmostnode/.style={
        draw,minimum size=\turingtapesize,
        append after command={% <= for the leftside line of the leftward node
            \pgfextra{%
            \begin{pgfinterruptpath}
            \begin{pgfonlayer}[foreground]
                \draw[verythick] (\tikzlastnode.south west)--(\tikzlastnode.north west);
            \end{pgfonlayer}
            \end{pgfinterruptpath}
            }
        }
    }
}

% Drawing the tape itself
\begin{scope}[start chain=0 going right,node distance=0mm]
    \node[on chain=0,tape] (b)  {0};
    \node[left=of b,leftmostnode](a){1};
    \node[on chain=0,tape] (c)  {1};
    \node[on chain=0,tape] (d)  {0};
    \node[on chain=0,tape] (e)  {1};
    \node[on chain=0,tape] (f)  {0};
    \node[on chain=0,tape] (g)  {0};
    \node[on chain=0,tape] (h)  {1};
    \node[on chain=0,tape] (i)  {1};
    \node[on chain=0,tape] (l)  {$\sqcup$};
    \node[on chain=0,tape] (l)  {$\sqcup$};
    \node[on chain=0,tape] (l)  {$\sqcup$};
\end{scope}
\end{tikzpicture}

Но я получаю ошибку:

Извините, запрошенный слой '[' не найден. Может быть, вы неправильно написали?.

\nodeleft=из b,самый левый узел {1};

Могу ли я также спросить вас, как получить такой "бензопиленный" (такой термин вообще существует?) конец ленты? Спасибо, ура ;) Источник:1 2

EDIT Как и предложил moospit, я обошел 'проблему толщины'. Теперь мне осталось только создать эту особую-зазубренную-линию ;)

EDIT2 Я только что увидел ваш ответ. Я решил это немного по-другому.. Ниже я выкладываю код всего tikz-изображения ;)

\begin{tikzpicture}
\edef\turingtapesize{0.7cm}
\tikzstyle{tape}=[draw,minimum size=\turingtapesize]

% Drawing the tape itself
\begin{scope}[start chain=0 going right,node distance=0mm]
    \node[on chain=0,tape]          (a)     {1}       ;
    \node[on chain=0,tape]          (b)     {0}       ;
    \node[on chain=0,tape]          (c)     {1}       ;
    \node[on chain=0,tape]          (d)     {0}       ;
    \node[on chain=0,tape]          (e)     {1}       ;
    \node[on chain=0,tape]          (f)     {0}       ;
    \node[on chain=0,tape]          (g)     {0}       ;
    \node[on chain=0,tape]          (h)     {1}       ;
    \node[on chain=0,tape]          (i)     {1}       ;
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape,draw=none](m)     {}        ;
    \node[on chain=0,tape,draw=none](n)     {$\ldots$};

% Coordinates
    \coordinate(snake1) at ($ (l.north east)!0.5cm!(m.north east) $);
    \coordinate(snake2) at ($ (l.south east)!.5cm!(m.south east) $) ;

    \draw [-] (l.north east) -- (snake1);
    \draw [-] (l.south east) -- (snake2);
    \draw[snake=snake,
        segment amplitude=.4mm,
            segment length=1.75mm,
        line after snake=0mm] (snake1) -- (snake2);
\end{scope}

    \draw[ultra thick] (a.south west) -- (a.north west)                   ;
    \node[draw,above=0.75cm of e,minimum size=\turingtapesize] (Q) {$q_3$};
    \draw[-latex] (Q) -- (e)                                              ;     
\end{tikzpicture} 

РЕДАКТИРОВАТЬ3

\begin{tikzpicture}
  \tikzset{tape/.style={minimum size=.7cm, draw}}
  \begin{scope}[start chain=0 going right, node distance=0mm]
   \foreach \x [count=\i] in {1,0,1,0,1,0,0,1,1,$\sqcup$,$\sqcup$,$\sqcup$} {
    \ifnum\i=12 % if last node reset outer sep to 0pt
      \node [on chain=0, tape, outer sep=0pt] (n\i) {\x};
      \draw (n\i.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n\i.south east)+(+.1,0)$)} -- (n\i.south east) -- cycle;
     \else
      \node [on chain=0, tape] (n\i) {\x};
     \fi
     \ifnum\i=1 % if first node draw a thick line at the left
      \draw [line width=.1cm] (n\i.north west) -- (n\i.south west);
     \fi
   }
   \node [right=.25cm of n12] {$\cdots$};
   \node [tape, above left=.25cm and 1cm of n1] (q3) {$q_3$};
   \draw [>=latex, ->] (q3) -| (n5);
  \end{scope}
 \end{tikzpicture}

И вот конечный результат: введите описание изображения здесь

решение1

А что если использовать ваш tapeстиль для узла aи просто добавить это после вашего кода цепочки:

\draw [very thick] (a.south west) -- (a.north west);

или

\draw [line width=.1cm] (a.south west) -- (a.north west);

Таким образом, вы можете добавить дополнительную линию, нарисованную над вашим узлом a.

визуализированное изображение

РЕДАКТИРОВАТЬ:Обновление вашего зигзагообразного узла в конце цепи (MWE)

Вот также некоторая информация о вашем зигзагообразном узле. Я использовал -декорацию zigzagна части нижеописанного пути. Просто отрегулируйте zigzag segment lengthи амплитуду` в соответствии с вашими потребностями.

Обязательно установите outer sepдля своих узлов цепи значение 0, иначе зигзагообразный путь будет смещен относительно координат north eastи south east.

\documentclass[tikz, border=5mm]{standalone}

\usetikzlibrary{decorations.pathmorphing, calc}

\begin{document}
 \begin{tikzpicture}
  \node [draw, outer sep=0pt] (n) {n};
  \draw (n.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n.south east)+(+.1,0)$)} -- (n.south east) -- cycle;
 \end{tikzpicture}
\end{document}

визуализированное изображение

ЕЩЕ ОДНО ИЗМЕНЕНИЕ:Не смог удержаться ;). Немного переписал код, чтобы сделать цепочку расширяемой для большего количества элементов:

Если у вас есть еще вопросы, просто спросите. Вы можете легко изменить zigzagнекоторые, snakesесли хотите.

\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{calc, chains, decorations.pathmorphing}

\begin{document}
 \begin{tikzpicture}
  \tikzset{tape/.style={minimum size=.7cm, draw}}
  \begin{scope}[start chain=0 going right, node distance=0mm]
   \foreach \x [count=\i] in {1,0,1,10,1,1,1,1,$\sqcup$,$\sqcup$,$\sqcup$} {
    \ifnum\i=11 % if last node reset outer sep to 0pt
      \node [on chain=0, tape, outer sep=0pt] (n\i) {\x};
      \draw (n\i.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n\i.south east)+(+.1,0)$)} -- (n\i.south east) -- cycle;
     \else
      \node [on chain=0, tape] (n\i) {\x};
     \fi
     \ifnum\i=1 % if first node draw a thick line at the left
      \draw [line width=.1cm] (n\i.north west) -- (n\i.south west);     
     \fi
   }
   \node [right=.25cm of n11] {$\cdots$};
   \node [tape, above left=.25cm and 1cm of n1] (q7) {$q_7$};
   \draw [>=latex, ->] (q7) -| (n5); 
  \end{scope}  
 \end{tikzpicture}
\end{document} 

визуализированное изображение

Связанный контент