
Hier sind vier TikZ
Umgebungen zum Zeichnen von zwei parallelen Liniensegmenten. In allen Umgebungen wird ein Endpunkt des ersten Liniensegments entweder mit \coordinate(A)
oder angegeben \node(A){$A$};
und ein Endpunkt des zweiten Liniensegments entweder mit \coordinate(B)
oder angegeben \node(B){$B$};
.
Punkt A wird zuerst angegeben; es sind keine Koordinaten dafür angegeben. Wird TikZ
er standardmäßig am Ursprung platziert? Er scheint am Ursprung platziert zu sein, da ich im zweiten Diagramm den Befehl habe \node at (0,0) {$O$};
und „O“ an der Koordinate für A gesetzt ist.
Abgesehen von der Positionierung von „A“ sind die zweite und dritte Anzeige identisch. In der zweiten Anzeige verwende ich \coordinate(A);
und , \node at (0,0) {$A$};
um „A“ zu positionieren, und in der dritten Anzeige verwende ich , \node[inner sep=0pt,outer sep=0pt] (A){$A$};
um „A“ zu positionieren. In der zweiten Anzeige scheint das „A“ auf (0,0) zentriert zu sein, und in der dritten Anzeige scheint das „A“ links von (0,0) gesetzt zu sein. Warum gibt es einen Unterschied?
Der einzige Unterschied in der Kodierung für die dritte und vierte Anzeige besteht darin, dass ich inner sep=0pt
im Knotenbefehl die Option habe, „A“ in der dritten Anzeige zu setzen, und inner sep=1.5pt
im Knotenbefehl die Option, „A“ in der vierten Anzeige zu setzen. Warum verschiebt sich dadurch „alles“ in der vierten Anzeige im Vergleich zur dritten Anzeige?
\documentclass{amsart}
\usepackage{tikz}\usetikzlibrary{calc,positioning}
\begin{document}
\begin{tikzpicture}
\coordinate(A);
\coordinate[right=of A](B);
\draw[yellow, line width=2pt] (A) -- ++(1,1);
\draw[red] (B) -- ++(1,1);
\end{tikzpicture}
\vskip1.25mm
\begin{tikzpicture}
\coordinate(A);
\coordinate[right=of A](B);
\draw[yellow, line width=2pt] (A) -- ++(1,1);
\draw[red] (B) -- ++(1,1);
\node at (0,0) {$A$};
\end{tikzpicture}
\vskip1.25mm
\begin{tikzpicture}
\node[inner sep=0pt,outer sep=0pt] (A){$A$};
\coordinate[right=of A](B);
\draw[yellow, line width=2pt] (A) -- ++(1,1);
\draw[red] (B) -- ++(1,1);
\end{tikzpicture}
\vskip1.25mm
\begin{tikzpicture}
\node[inner sep=1.5pt,outer sep=0pt] (A) {$A$};
\coordinate[right=of A] (B);
\draw[yellow, line width=2pt] (A) -- ++(1,1);
\draw[red] (B) -- ++(1,1);
\end{tikzpicture}
\end{document}
Antwort1
Hilft das Folgende?
\documentclass[tikz,border=5pt,mult]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={draw}]
\draw [help lines] (-1,-1) grid (2,2);
\coordinate(A);
\coordinate[right=of A](B);
\draw [blue] (A) -- ++(1,1);
\draw (B) -- ++(1,1);
\node at (0,0) {$A$};
\path [fill=blue] (0,0) circle (1.5pt);
\end{tikzpicture}
\begin{tikzpicture}[every node/.style=draw]
\draw [help lines] (-1,-1) grid (2,2);
\node[inner sep=0pt,outer sep=0pt] (A){$A$};
\coordinate[right=of A](B);
\draw [blue] (A) -- ++(1,1);
\draw (B) -- ++(1,1);
\path [fill=blue] (0,0) circle (1.5pt);
\end{tikzpicture}
\end{document}
Im ersten Fall wird die blaue Linie von der Koordinate aus gezeichnet A
und B
relativ zu dieser Koordinate positioniert. Da es sich bei Koordinaten um Punkte handelt, entspricht dies dem Zeichnen von (0,0)
.
Im zweiten Fall wird die blaue Linie vom Knoten gezeichnet A
und B
relativ zum Knoten positioniert. TikZ geht davon aus, dass Sie vom nächsten Punkt an der Grenze des Knotens aus zeichnen oder messen möchten. Selbst wenn A
Null inner sep
und hat outer sep
, hat es immer noch eine positive Größe, da es den Buchstaben enthält A
, der Platz einnimmt. In diesem Fall wird die Linie also etwas oberhalb und etwas rechts von gezeichnet (0,0)
und B
relativ zu einem Punkt etwas rechts von positioniert (0,0)
.
Sie können den Effekt der Verwendung einer Koordinate emulieren, indem Sie den center
Anker angeben:
\begin{tikzpicture}[every node/.style=draw]
\draw [help lines] (-1,-1) grid (2,2);
\node[inner sep=0pt,outer sep=0pt] (A){$A$};
\coordinate[right=of A.center](B);
\draw [blue] (A.center) -- ++(1,1);
\draw (B) -- ++(1,1);
\path [fill=blue] (0,0) circle (1.5pt);
\end{tikzpicture}
Wenn der Knoten hingegen A
keinen Inhalt und den Wert 0 (null) hat sep
, verhält er sich ähnlich wie eine Koordinate, da er grundsätzlich keinen Platz einnimmt:
\begin{tikzpicture}[every node/.style=draw]
\draw [help lines] (-1,-1) grid (2,2);
\node[inner sep=0pt,outer sep=0pt] (A){};
\coordinate[right=of A](B);
\draw [blue] (A) -- ++(1,1);
\draw (B) -- ++(1,1);
\node at (A) {$A$};
\path [fill=blue] (0,0) circle (1.5pt);
\end{tikzpicture}
Beachten Sie, dass der A
Mittelpunkt (0,0)
in jedem Fall der Ursprung ist (durch den blauen Punkt markiert).