Como alterar a forma de um nó em uma matriz tikz

Como alterar a forma de um nó em uma matriz tikz

Eu tenho o seguinte código.

Quero criar uma matriz tikz que contenha nós com formas padrão predefinidas.

No entanto, às vezes quero alterar as formas de alguns nós, especificando-os manualmente dentro da matriz.

Eu li no manual do tikz que qualquer código escrito na frente do texto de um nó com linhas verticais é passado para o código do nó.

Assim o código: Deve ser passado para o código do segundo nó Joe Doe.

|(shape = rectangle)|

Executar isso não 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}

Responder1

Delimitadores errados! Use colchetes []para adicionar/substituir opções de nó:

\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}

insira a descrição da imagem aqui

informação relacionada