
У меня есть следующий код.
Я хочу создать матрицу tikz, содержащую узлы с предопределенными формами по умолчанию.
Однако иногда мне хочется изменить форму некоторых узлов, указав это вручную внутри матрицы.
Я прочитал в руководстве по Tikz, что любой код, написанный перед текстом узла с вертикальными линиями, передается в код узла.
Таким образом, код: должен быть передан коду второго узла Джо Доу.
|(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}