
У меня есть следующий фрагмент кода.
Я хочу добавить текст к своим узлам, просто добавив текст между символами амперсанда. Какой синтаксис для этого нужен?
Например, я пытаюсь добавить текст "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}