Как определить текст в узле в матрице tikz

Как определить текст в узле в матрице tikz

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

Я хочу добавить текст к своим узлам, просто добавив текст между символами амперсанда. Какой синтаксис для этого нужен?

Например, я пытаюсь добавить текст "John Doe" в первую строку второго столбца. Текст должен содержать разрыв строки между John и Doe. Обычный синтаксис, который я бы использовал, был бы таким:

\node[draw, align = center]{John \\ Doe};

Как это сделать в матрице, в которой я заранее определил узлы в параметрах матрицы?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}


\begin{tikzpicture}
\matrix(a)[matrix of nodes , nodes in empty cells , nodes = {draw , circle , align = center} ,
column sep={1cm,between origins} , row sep = {1cm , between origins}]
{
& John \\ Doe    &      & \\
&        &     &\\
};

\draw[->] (a-1-1) -- (a-2-1);

\end{tikzpicture}
\end{document}

решение1

Если вы даете вашим узлам фиксированный вид with, вы можете добавлять переносы строк. Например:

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

\draw[->] (a-1-1) -- (a-2-1);

\end{tikzpicture}
\end{document}

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

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