
Betrachten Sie das folgende LaTeX-Manuskript mit einem TikZ-Bild eines leeren Knotens mit einem angehängten fixierten Etikett.
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node [draw,pin=x] {};
\end{tikzpicture}
\end{document}
Das resultierende Bild ist
(Dies ist nicht ganz das Bild, das Sie aus dem obigen Code erhalten würden: Ich habe die Sichtbarkeit der Stecknadel zur Erleichterung für den Leser etwas verbessert.)
Ich weiß, wie man den Winkel und die Länge der Stecknadel anpasst (dies wird im Abschnitt 17.10.3 „Die Stecknadeloption“ des TikZ- und PGF-Handbuchs für Version 3.0.1a auf S. 241 beschrieben), aber wie kann ich die Position des Etiketts (Winkel, Abstand und Etikettanker) in Bezug auf den Kopf der Stecknadel anpassen?
Antwort1
Wie im folgenden Code zu sehen ist, south
wird der gewünschte Anker (in diesem Standardfall) an der Position des Etiketts platziert und anschließend die Pin-Linie vom Mittelpunkt des Knotens zum Mittelpunkt des Etiketts gezeichnet:
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node [draw, pin={[draw]x}, pin={[draw, anchor=west, red]x}, pin={[draw, anchor=south east, blue]x}] {};
\end{tikzpicture}
\end{document}
Aktualisieren:
Lass es uns erneut versuchen.
pin={[pin distance=1.2cm, draw, red]0:x},
zeichnet einen Beschriftungsknoten im Abstand von 1,2 cm vom main node.0
Anker. Der Anker für den Beschriftungsknoten ist west
. Dieser Standardanker wird entsprechend der Beschriftungsposition in Bezug auf den Hauptknoten festgelegt.
pin={[pin distance=1.2cm, draw, blue]74:x}
Dadurch wird der Anker () des Standardlabels south west
in einem Abstand von 1,2 cm platziert, der einer 74-Grad-Linie folgt, die am Hauptknoten .74 Anker beginnt. Sobald der Knoten platziert ist, wird eine Pin-Linie zwischen den Knotenmittelpunkten gezeichnet. Diese Linie folgt weder den 74 Grad noch ist sie 1,2 cm lang.
pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},
das gleiche wie das letzte, aber der .-37-Label-Knotenanker ist 1,2 cm vom Hauptknoten .74 Anker entfernt platziert.
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (-1,-1) grid (4,2);
\node [draw,
pin={[pin distance=1.2cm, draw, red]0:x},
pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};
\draw[<->] (a.0)-- node[above]{1.2 cm} ++(0:1.2);
\draw[<->] (a.74)-- node[above]{1.2 cm} ++(74:1.2);
\begin{scope}[xshift = 3cm]
\node [draw,
pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},
pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};
\draw[red] (pin.center)--(pin.-37);
\end{scope}
\end{tikzpicture}
\end{document}
Antwort2
Ihre Frage ist doppelt, ich kann sie jedoch (noch) nicht finden, also bewerten Sie meine Antwort bitte nicht. Ich habe die Antwort darauf jedoch in meiner LaTeX-Beispielsammlung gespeichert:
%%%% aligned-pin
\documentclass[tikz, border=5mm]{standalone}
\tikzset{aligned pin/.style args={[#1]#2:#3}% new sort of pin
{pin={[%
inner sep=0pt,%
label={[%
append after command={%
node[%
inner sep=0pt,%
at=(\tikzlastnode.#2),%
anchor=#1,%
]{#3}%
}%
]center:{}}%
]#2:{}}%
}
}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- node[pos=0.8,% position of node
coordinate, % node is behavior as coordinate
aligned pin={[east] % anchor of pin label
120: % direction of pin
g factor=1.96} % text in pin label
] {} (3,2);
\end{tikzpicture}
\end{document}
Bearbeiten:Ich fand OriginalQrrbrbirlbels Antwort