Diagrams from the Putting a diagrams in chains tutorial.
Thanks to Dr. Ludger Humbert for submitting a standalone version of the diagrams.

Edit and compile if you like:
% Example diagrams from the tutorial: Putting a Diagram in Chains
% Source: The TikZ & PGF manual
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{%
arrows,%
shapes.misc,% wg. rounded rectangle
shapes.arrows,%
chains,%
matrix,%
positioning,% wg. " of "
scopes,%
decorations.pathmorphing,% /pgf/decoration/random steps | erste Graphik
shadows%
}
\begin{document}
\tikzset{
nonterminal/.style={
% The shape:
rectangle,
% The size:
minimum size=6mm,
% The border:
very thick,
draw=red!50!black!50, % 50% red and 50% black,
% and that mixed with 50% white
% The filling:
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
% Font
font=\itshape
},
terminal/.style={
% The shape:
rounded rectangle,
minimum size=6mm,
% The rest
very thick,draw=black!50,
top color=white,bottom color=black!20,
font=\ttfamily},
skip loop/.style={to path={-- ++(0,#1) -| (\tikztotarget)}}
}
{
\tikzset{terminal/.append style={text height=1.5ex,text depth=.25ex}}
\tikzset{nonterminal/.append style={text height=1.5ex,text depth=.25ex}}
}
\begin{tikzpicture}[
>=latex,thick,
/pgf/every decoration/.style={/tikz/sharp corners},
fuzzy/.style={decorate,
decoration={random steps,segment length=0.5mm,amplitude=0.15pt}},
minimum size=6mm,line join=round,line cap=round,
terminal/.style={rectangle,draw,fill=white,fuzzy,rounded corners=3mm},
nonterminal/.style={rectangle,draw,fill=white,fuzzy},
node distance=4mm
]
\ttfamily
\begin{scope}[start chain,
every node/.style={on chain},
terminal/.append style={join=by {->,shorten >=-1pt,
fuzzy,decoration={post length=4pt}}},
nonterminal/.append style={join=by {->,shorten >=-1pt,
fuzzy,decoration={post length=4pt}}},
support/.style={coordinate,join=by fuzzy}
]
\node [support] (start) {};
\node [nonterminal] {unsigned integer};
\node [support] (after ui) {};
\node [terminal] {.};
\node [support] (after dot) {};
\node [terminal] {digit};
\node [support] (after digit) {};
\node [support] (skip) {};
\node [support] (before E) {};
\node [terminal] {E};
\node [support] (after E) {};
\node [support,xshift=5mm] (between) {};
\node [support,xshift=5mm] (before last) {};
\node [nonterminal] {unsigned integer};
\node [support] (after last) {};
\node [coordinate,join=by ->] (end) {};
\end{scope}
\node (plus) [terminal,above=of between] {+};
\node (minus) [terminal,below=of between] {-};
\begin{scope}[->,decoration={post length=4pt},rounded corners=2mm,
every path/.style=fuzzy]
\draw (after ui) -- +(0,.7) -| (skip);
\draw (after digit) -- +(0,-.7) -| (after dot);
\draw (before E) -- +(0,-1.2) -| (after last);
\draw (after E) |- (plus);
\draw (plus) -| (before last);
\draw (after E) |- (minus);
\draw (minus) -| (before last);
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}[
point/.style={coordinate},>=stealth',thick,draw=black!50,
tip/.style={->,shorten >=0.007pt},every join/.style={rounded corners},
hv path/.style={to path={-| (\tikztotarget)}},
vh path/.style={to path={|- (\tikztotarget)}},
text height=1.5ex,text depth=.25ex % align text horizontally
]
\matrix[column sep=4mm] {
% First row:
& & & & & & & & & & & \node (plus) [terminal] {+};\\
% Second row:
\node (p1) [point] {}; & \node (ui1) [nonterminal] {unsigned integer};&
\node (p2) [point] {}; & \node (dot) [terminal] {.}; &
\node (p3) [point] {}; & \node (digit) [terminal] {digit}; &
\node (p4) [point] {}; & \node (p5) [point] {}; &
\node (p6) [point] {}; & \node (e) [terminal] {E}; &
\node (p7) [point] {}; & &
\node (p8) [point] {}; & \node (ui2) [nonterminal] {unsigned integer};&
\node (p9) [point] {}; & \node (p10) [point] {};\\
% Third row:
& & & & & & & & & & & \node (minus)[terminal] {-};\\
};
{ [start chain]
\chainin (p1);
\chainin (ui1) [join=by tip];
\chainin (p2) [join];
\chainin (dot) [join=by tip];
\chainin (p3) [join];
\chainin (digit) [join=by tip];
\chainin (p4) [join];
{ [start branch=digit loop]
\chainin (p3) [join=by {skip loop=-6mm,tip}];
}
\chainin (p5) [join,join=with p2 by {skip loop=6mm,tip}];
\chainin (p6) [join];
\chainin (e) [join=by tip];
\chainin (p7) [join];
{ [start branch=plus]
\chainin (plus) [join=by {vh path,tip}];
\chainin (p8) [join=by {hv path,tip}];
}
{ [start branch=minus]
\chainin (minus) [join=by {vh path,tip}];
\chainin (p8) [join=by {hv path,tip}];
}
\chainin (p8) [join];
\chainin (ui2) [join=by tip];
\chainin (p9) [join,join=with p6 by {skip loop=-11mm,tip}];
\chainin (p10) [join=by tip];
}
\end{tikzpicture}
\end{document}
Click to download: diagram-chains.tex • diagram-chains.pdf
Open in Overleaf: diagram-chains.tex