
Aquí hay cuatro TikZ
entornos para dibujar dos segmentos de línea paralelos. En todos los entornos, un punto final del primer segmento de línea se especifica con o \coordinate(A)
y \node(A){$A$};
un punto final del segundo segmento de línea se especifica con \coordinate(B)
o \node(B){$B$};
.
El punto A se especifica primero; no se dan coordenadas para ello. ¿ TikZ
Lo coloca en el origen por defecto? Parece estar colocado en el origen porque, en el segundo gráfico, tengo el comando \node at (0,0) {$O$};
y "O" está escrito en la coordenada de A.
Excepto por la posición de "A", la segunda y tercera pantalla son idénticas. En la segunda pantalla, uso \coordinate(A);
y \node at (0,0) {$A$};
para colocar "A", y en la tercera pantalla, uso \node[inner sep=0pt,outer sep=0pt] (A){$A$};
para colocar "A". En la segunda pantalla, la "A" parece estar centrada en (0,0) y en la tercera pantalla, la "A" parece estar escrita a la izquierda de (0,0). ¿Por qué hay una diferencia?
La única diferencia en la codificación para la tercera y cuarta pantalla es que tengo inner sep=0pt
como opción en el comando de nodo para escribir "A" en la tercera pantalla y inner sep=1.5pt
como opción en el comando de nodo para escribir "A" en la cuarta pantalla. ¿Por qué esto cambia "todo" en la cuarta pantalla en comparación con la tercera pantalla?
\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}
Respuesta1
¿Ayuda lo siguiente?
\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}
En el primer caso, la línea azul se dibuja desde la coordenada A
y B
se posiciona con respecto a esta coordenada. Dado que las coordenadas son puntos, esto equivale a dibujar desde (0,0)
.
En el segundo caso, la línea azul se dibuja desde el nodo A
y B
se coloca en relación con el nodo. TikZ supone que desea dibujar o medir desde el punto más cercano en el límite del nodo. Incluso si A
tiene cero inner sep
y outer sep
, todavía tiene un tamaño positivo porque contiene la letra A
que ocupa espacio. Entonces, en este caso, la línea se dibuja un poco arriba y un poco a la derecha de (0,0)
y B
está posicionada en relación con un punto un poco a la derecha de (0,0)
.
Puedes emular el efecto de usar una coordenada especificando el center
ancla:
\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}
Alternativamente, si el nodo A
no tiene contenido, además de cero sep
, se comportará de manera similar a una coordenada porque esencialmente no ocupará espacio:
\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}
Tenga en cuenta que A
está centrado en el origen (0,0)
(marcado por el punto azul) en todos los casos.