So ändern Sie die Form eines Knotens in einer Tikz-Matrix

So ändern Sie die Form eines Knotens in einer Tikz-Matrix

Ich habe den folgenden Code.

Ich möchte eine Tikz-Matrix erstellen, die Knoten mit vordefinierten Standardformen enthält.

Manchmal möchte ich jedoch die Form einiger Knoten ändern und sie manuell innerhalb der Matrix angeben.

Ich habe im Tikz-Handbuch gelesen, dass jeder Code, der mit vertikalen Linien vor den Text eines Knotens geschrieben wird, an den Code des Knotens übergeben wird.

Daher sollte der Code: an den Code des zweiten Joe Doe-Knotens übergeben werden.

|(shape = rectangle)|

Das Ausführen scheint jedoch nicht zu funktionieren.

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

Antwort1

Falsche Trennzeichen! Verwenden Sie eckige Klammern, []um Knotenoptionen hinzuzufügen/zu überschreiben:

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

Bildbeschreibung hier eingeben

verwandte Informationen