
Ich habe folgendes Tikz-Bild:
\documentclass{book}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node(x1) {$x_1$};
\node(x2) [right of = x1] {$x_2$};
\node(x3) [right of = x2]{$x_3$};
\node(x4) [right of = x3]{$x_4$};
\draw [->] (x1) -- (x2) ;
\draw [->] (x2) -- (x3) ;
\draw [->] (x3) -- (x4) ;
\node(y1) [below of = x1]{$y_1$};
\node(y2) [right of = y1] {$y_2$};
\node(y3) [right of = y2] {$y_3$};
\node(y4) [right of = y3] {$y_4$};
\draw [->] (y1) -- (x1) ;
\draw [->] (y2) -- (x2) ;
\draw [->] (y3) -- (x3) ;
\draw [->] (y4) -- (x4) ;
\end{tikzpicture}
\end{document}
Ich möchte, dass die Pfeile länger werden. Wenn ich im Zeichenbefehl in den eckigen Klammern beispielsweise "kürzen >= -5pt" verwende, werden die Pfeile zwar länger, gehen aber über die Knoten hinaus. Gibt es eine Möglichkeit, alles geräumiger zu machen, zusätzlich zur Verlängerung der Pfeile?
Gibt es außerdem eine Möglichkeit, links von einem der vertikalen Pfeile einen weiteren Knoten einzufügen? (Oder genauer gesagt, wie gebe ich „unterhalb von“ oder „links von“ usw. für einen Pfeil und nicht für einen Knoten an?) Ich habe versucht, den Pfeil mit \draw(arr1) zu beschriften und dann später einen Knoten links von arr1 einzufügen, aber ich erhalte eine Fehlermeldung.
Antwort1
Sie sollten nicht verwenden below of = node
. Es ist veraltet (sieheUnterschied zwischen „right of=“ und „right=of“ in PGF/TikZ). Verwenden Sie stattdessen die positioning
Bibliothek von tikz. Sie können damit schreiben right = 1.5cm of node
. Sie können die Distanz variieren oder weglassen.
Um einen Pfad zu beschriften, fügen Sie einfach node[left] {label 1}
hinter das ein --
. Sie können pos=value
den Knotenoptionen einen Wert zwischen 0 und 1 hinzufügen, um die Position auf dem Pfad anzugeben.
Beispiel
(Ihr geänderter Code)
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node(x1) {$x_1$};
\node(x2) [right = 1.5cm of x1] {$x_2$};
\node(x3) [right = 1.5cm of x2]{$x_3$};
\node(x4) [right = 1.5cm of x3]{$x_4$};
\draw [->] (x1) -- (x2) ;
\draw [->] (x2) -- (x3) ;
\draw [->] (x3) -- (x4) ;
\node(y1) [below = 2 of x1]{$y_1$};
\node(y2) [below = 2 of x2] {$y_2$};
\node(y3) [below = 2 of x3] {$y_3$};
\node(y4) [below = 2 of x4] {$y_4$};
\draw [->] (y1) -- node[left, pos=0.2] {beginning} (x1) ;
\draw [->] (y2) -- node[left, pos=.8] {ending} (x2) ;
\draw [->] (y3) -- node[left] {label 3} (x3) ;
\draw [->] (y4) -- node[left] {label 4} (x4) ;
\end{tikzpicture}
\end{document}
Ergebnisse in:
Antwort2
Bemerkungen
Mit der Taste können Sie den Standardabstand zwischen Knoten angeben, die mit right of=
, , usw. platziert werden .left of=
node distance=<length>
Um einen Knoten entlang eines Pfades zu platzieren, fügen Sie ihn einfach nach der Lineto-Operation ein, d. h.
\draw (0,0) -- node {on the path} (4,0);
Wenn Sie möchten, dass der Text mit Ihrem Pfad geneigt ist, verwenden Sie den sloped
Schlüssel als Option für den Knoten.
Lesen Sie mehr über die Knotenplatzierung imTikZ-Dokumentationim Abschnitt 16.8 auf Seite 190. Vielleicht interessiert Sie auch das Tutorial „Ein Petri-Netz für Hagen“, das in Knoten untersucht und im Kapitel 3 auf Seite 40 zu finden ist.
Implementierung
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[node distance=2.5cm]
\node(x1) {$x_1$};
\node(x2) [right of = x1] {$x_2$};
\node(x3) [right of = x2] {$x_3$};
\node(x4) [right of = x3] {$x_4$};
\draw [->] (x1) -- (x2) ;
\draw [->] (x2) -- (x3) ;
\draw [->] (x3) -- (x4) ;
\node(y1) [below of = x1]{$y_1$};
\node(y2) [right of = y1] {$y_2$};
\node(y3) [right of = y2] {$y_3$};
\node(y4) [right of = y3] {$y_4$};
\draw [->] (y1) -- node[sloped,below] {(y1) $\to$ (x1)} (x1) ;
\draw [->] (y2) -- node[sloped,below] {(y2) $\to$ (x2)} (x2) ;
\draw [->] (y3) -- node[sloped,below] {(y3) $\to$ (x3)} (x3) ;
\draw [->] (y4) -- node[sloped,below] {(y4) $\to$ (x4)} (x4) ;
\end{tikzpicture}
\end{document}