Ich versuche, ein relativ einfaches Diagramm zu erstellen, weiß aber nicht, wie ich es schaffe, dass die mehreren Pfeile auf der linken Seite nicht aus der Mitte des Knotens herausragen.
Antwort1
Zwei Optionen: Verwendung von Ankern und einigen Verschiebungen und Verwendung der <name>.<angle >
Syntax:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw,minimum size=2cm] (x) {X};
\draw[->] ([yshift=-10pt]x.west) -- node[fill=white] {a} +(-1cm,0pt);
\draw[->] ([yshift=10pt]x.west) -- node[fill=white] {b} +(-1cm,0pt);
\draw[->] (x.120) -- node[fill=white] {c} +(0pt,1cm);
\draw[->] (x.60) -- node[fill=white] {d} +(0pt,1cm);
\end{tikzpicture}
\end{document}
AlsClaudio Fiandrinohat erwähnt insein Kommentar, eine weitere Möglichkeit besteht darin, die Bibliothek zu verwenden calc
, sodass die Verschiebungen nicht absolut sind, sondern in Bezug auf Anker berechnet werden können:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node[draw,minimum size=2cm] (x) {X};
\draw[->] ([yshift=-10pt]x.west) -- node[fill=white] {a} +(-1cm,0pt);
\draw[->] ([yshift=10pt]x.west) -- node[fill=white] {b} +(-1cm,0pt);
\draw[->] (x.120) -- node[fill=white] {c} +(0pt,1cm);
\draw[->] (x.60) -- node[fill=white] {d} +(0pt,1cm);
\draw[->]
( $ (x.north east)!0.5!(x.east) $ ) --
node[fill=white] {e}
+(1cm,0pt);
\draw[->]
( $ (x.east)!0.5!(x.south east) $ ) --
node[fill=white] {f}
+(1cm,0pt);
\end{tikzpicture}
\end{document}
Im obigen Beispiel ( $ (x.north east)!0.5!(x.east) $ )
bedeutet dies den Punkt, dessen Koordinate auf halbem Weg zwischen x.north east
und liegt x.east
.
Antwort2
Eine PSTricks-Lösung:
\documentclass{article}
\usepackage{pstricks-add}
\usepackage{xfp}
\newcommand*\Width{\fpeval{2*\arrowLength+\boxLength}}
\newcommand*\Height{\boxLength}
\def\arrowLength{3}
\def\boxLength{3}
\begin{document}
\begin{pspicture}(\Width,\Height)
\psset{arrows = ->}
\psframe(\arrowLength,0)(\fpeval{\arrowLength+\boxLength},\boxLength)
\rput(\fpeval{\arrowLength+0.5*\boxLength},\fpeval{0.5*\boxLength}){X}
\pcline(\arrowLength,\fpeval{\boxLength/3})(0,\fpeval{\boxLength/3})
\ncput*{a}
\pcline(\arrowLength,\fpeval{2/3*\boxLength})(0,\fpeval{2/3*\boxLength})
\ncput*{b}
\pcline(\fpeval{2*\arrowLength+\boxLength},\fpeval{0.5*\boxLength})%
(\fpeval{\arrowLength+\boxLength},\fpeval{0.5*\boxLength})
\ncput*{c}
\end{pspicture}
\end{document}
\arrowLength
Beachten Sie, dass die Zeichnung „automatisiert“ ist und Sie nur die Werte von und auswählen müssen \boxLength
.