Cómo cambiar la forma de un nodo en una matriz tikz

Cómo cambiar la forma de un nodo en una matriz tikz

tengo el siguiente código.

Quiero crear una matriz tikz que contenga nodos con formas predeterminadas predefinidas.

Sin embargo, a veces quiero cambiar las formas de algunos nodos especificándolos manualmente dentro de la matriz.

Leí en el manual de tikz que cualquier código escrito delante del texto de un nodo con líneas verticales se pasa al código del nodo.

Por lo tanto, el código: debe pasarse al código del segundo nodo Joe Doe.

|(shape = rectangle)|

Sin embargo, ejecutar esto no parece funcionar.

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix(a)[
  matrix of nodes, 
  nodes in empty cells, 
  nodes={draw, circle, align=center, text width=0.8cm},
  column sep={1.5cm, between origins}, 
  row sep={1.5cm, between origins}
]{
  & John \linebreak Doe &[5cm]|(shape = rectangle)| John \linebreak Doe& \\[2cm]
  & & &\\
};

\draw[->] (a-1-1) -- (a-2-1);

\end{tikzpicture}
\end{document}

Respuesta1

¡Delimitadores incorrectos! Utilice corchetes []para agregar/anular opciones de nodo:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix(a)[
  matrix of nodes,
  nodes in empty cells,
  nodes={draw, circle, align=center, text width=0.8cm},
  column sep={1.5cm, between origins},
  row sep={1.5cm, between origins}
]{
  & John \linebreak Doe &[5cm]|[rectangle]| John \linebreak Doe& \\[2cm]
  & & &\\
};
\draw[->] (a-1-1) -- (a-2-1);

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada