Ich wollte der letzten Form einer Kette etwas hinzufügen (siehe Bild zum besseren Verständnis). Ich stieß jedoch auf ein unerwartetes Problem, da ich dachte, die (schwarzen und roten) Linien würden sich ohne vertikalen Versatz verbinden. Meine Frage ist also (hoffentlich) einfach: Wie kann ich das beheben?
Danke im Voraus
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,chains,shapes.symbols}
\begin{document}
\tikzset{
flowEnd/.style={draw, shape=signal, signal from=west, signal to=nowhere},
flowPast/.style={draw, shape=signal, signal from=west},
flowStart/.style={draw, shape=signal, signal to=east},
}
\begin{tikzpicture}[start chain=going right,node distance=2mm]
\node [flowStart,on chain] {Hello};
\node [flowPast,on chain] {World};
\node (end) [flowEnd,on chain] {!};
\draw [red]
let \p1=(end.south east), \p2=(end.north east) in
(\p2) --
($ (\p2) + (10mm,0) $) [rounded corners]--
($ (\p1) + (10mm,0) $) --
(\p1);
\end{tikzpicture}
\end{document}
Antwort1
In der Shapes-Stildefinition sollten Sie outer sep=0pt
common hinzufügen und definieren minimum height=...
. Der vollständige, etwas vereinfachte Code für Ihr Bild lautet:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{calc,
chains,
shapes.symbols}
\tikzset{
base/.style = {draw, shape=signal, on chain,
minimum height=3ex, outer sep=0pt},
flowEnd/.style = {base, signal from=west, signal to=nowhere},
flowPast/.style = {base, signal from=west},
flowStart/.style = {base, signal to=east},
}
\begin{document}
\begin{tikzpicture}[
start chain = going right,
node distance = 2mm ]
%
\node [flowStart] {Hello};
\node [flowPast] {World};
\node (end) [flowEnd] {!};
%
\draw[red]
(end.north east) -- ++ (10mm,0) [rounded corners] |- (end.south east);
\end{tikzpicture}
\end{document}