del manual de páginas:

del manual de páginas:

Estoy intentando crear un diagrama y me gustaría que mis nodos quedaran alineados usando la anchor=westopción. Preferiría utilizar el posicionamiento relativo para que mi diagrama sea más flexible a los cambios. Aquí está mi ejemplo:

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}


\begin{tikzpicture}[%
  every node/.style = {anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;
\node[fill=red!40, draw] (n2) [below=of n1] {Node with even longer text} ;

\end{tikzpicture}
\end{document}

Observe cómo el segundo nodo usa el anchor=westestilo establecido para cada nodo, pero el tercer nodo con el texto más largo parece estar centrado debajo del segundo en lugar de estar alineado a la izquierda con él. ¿Hay alguna manera de lograr lo que estoy buscando?

Básicamente, quiero alinear el segundo nodo sin tener que especificar coordenadas absolutas.

ingrese la descripción de la imagen aquí

Respuesta1

prueba esto

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}


\begin{tikzpicture}[%
  every node/.style = {anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;
\node[fill=red!40, draw] (n2) [below=of n1.west, right] {Node with even longer text} ;

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

del manual de páginas:

16.5.2 Opciones de ubicación básicas

Desafortunadamente, aunque es perfectamente lógico, a menudo resulta bastante contrario a la intuición que para colocar un nodo sobre un punto determinado, es necesario especificar el ancla sur. Por este motivo, existen algunas opciones útiles que permiten seleccionar los anclajes estándar de forma más intuitiva:

/tikz/above (0 puntos predeterminados)

Hace lo mismo que ancla=sur. Si se especifica, el nodo se desplaza adicionalmente hacia arriba según el valor dado.

above \tikz \fill (0,0) circle (2pt) node[above] {above};

above \tikz \fill (0,0) circle (2pt) node[above=2pt] {above};

/tikz/below=<offset>(predeterminado 0pt) Similar al anterior.

/tikz/left=<offset>(predeterminado 0pt) Similar al anterior.

/tikz/right=<offset>(predeterminado 0pt) Similar al anterior.

Respuesta2

Implícitamente, belowimplica anchor=north(y con below=of n1, la referencia es n1.south), leftimplica anchor=east, etc.

Un ejemplo (el nodo azul muestra que la referencia predeterminada no es n1.center, el nodo lima muestra la posición deseada):

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={anchor=west}]

\node[fill=red!40, draw] (n0) at (0,0) {Base node} ;
\node[fill=red!40, draw] (n1) at (0,-2) {Node with longer text} ;

\node[fill=red!40, draw,below=of n1] (n2) {Node with even longer text} ;

\node[fill=blue!40, draw,below=of n1.center] (n2) {Node with even longer text} 

\node[fill=lime!40, draw,below=of n1.south west,anchor=north west]
 (n2) {Node with even longer text} ;

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada