tikz マトリックスのノードでテキストを定義する方法

tikz マトリックスのノードでテキストを定義する方法

次のようなコードがあります。

アンパサンド記号の間にテキストを追加するだけで、ノードにテキストを追加したいのですが、これを行うための構文は何ですか?

たとえば、2 列目の 1 行目に「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}

ここに画像の説明を入力してください

関連情報