Как изменить форму узла в матрице тикз

Как изменить форму узла в матрице тикз

У меня есть следующий код.

Я хочу создать матрицу 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}

введите описание изображения здесь

Связанный контент