TikZ/pgf:为什么 `\newline` 和 `\\` 不能在节点中拆分文本?

TikZ/pgf:为什么 `\newline` 和 `\\` 不能在节点中拆分文本?

妇女权利委员会:

\documentclass{standalone}

%======================================
\usepackage{tikz}
\usetikzlibrary{graphdrawing}
\usetikzlibrary{arrows}
\usetikzlibrary{graphs}
\usegdlibrary{force, layered, trees}
%======================================

\begin{document}

\tikz 
\graph [spring layout, nodes = draw]
{
    a/"dispersive\newline collision";
    b/"non-dispersive\newline  collision";

    a -> b
};

\end{document}

输出:

在此处输入图片描述

问题:

如上所示,该\newline命令没有任何作用。尝试使用\\而不是\newline,就像 pgfmanual 在某些示例中所做的那样(参见第 386 页)会产生同样的效果。为什么?我该怎么做才能让单词出现在单独的“行”上?

答案1

默认情况下,节点设置在不允许换行的框中。向节点添加alignment(例如align=center)或会将其设置在段落框中,其中可能会出现换行。出于某种原因,仍然不起作用(不知道为什么),但确实可以。text width\newline\\

\documentclass{standalone}

%======================================
\usepackage{tikz}
\usetikzlibrary{graphdrawing}
\usetikzlibrary{arrows}
\usetikzlibrary{graphs}
\usegdlibrary{force, layered, trees}
%======================================

\begin{document}

%simpler example
\begin{tikzpicture}
\node {a\\b};
\node [align=center] at (1,0) {a\\b};
\end{tikzpicture}

% your code, modified
\tikz 
\graph [spring layout, nodes = {draw,align=center}]
{
    a/"dispersive\\ collision";
    b/"non-dispersive\\  collision";

    a -> b
};

\end{document}

在此处输入图片描述

相关内容