如何改变 tikz 矩阵中节点的形状

如何改变 tikz 矩阵中节点的形状

我有以下代码。

我想创建一个包含具有预定义默认形状的节点的 tikz 矩阵。

但有时我想改变某些节点的形状,并在矩阵内部手动指定它。

我在 tikz 手册中读到,任何用垂直线写在节点文本前面的代码都会传递给该节点的代码。

因此代码:应该传递给第二个 Joe Doe 节点的代码。

|(shape = rectangle)|

但运行这个似乎不起作用。

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

答案1

分隔符错误!使用方括号[]添加/覆盖节点选项:

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

在此处输入图片描述

相关内容