我有以下代码。
我想创建一个包含具有预定义默认形状的节点的 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}