在Latex Tikz库中的节点文本中输入换行符

在Latex Tikz库中的节点文本中输入换行符,latex,tikz,Latex,Tikz,我刚开始用乳胶制作一个数学文档。我想包括一个概率树,并找到了Tikz库。my tree的第一段代码如下所示: %To create probability trees, use tikz package \usepackage{tikz} \usetikzlibrary{trees} % Insert a probability tree showing first level only % ---------------------------------------------------

我刚开始用乳胶制作一个数学文档。我想包括一个概率树,并找到了Tikz库。my tree的第一段代码如下所示:

%To create probability trees, use tikz package
\usepackage{tikz}
\usetikzlibrary{trees}

% Insert a probability tree showing first level only
% -------------------------------------------------------------
% Set the overall layout of the tree
\tikzstyle{level 1}=[level distance=3.5cm, sibling distance=4.0cm]
\tikzstyle{level 2}=[level distance=3.5cm, sibling distance=2cm]

% Define styles for bags and leafs
\tikzstyle{bag} = [text centered]

% Draw probability tree
\begin{tikzpicture}[grow=right, sloped]
\node[bag] {}
    child {
        node[bag] {Not diseased $\left( D^- \right)$}
            edge from parent 
            node[below]  {$0.90$}
    }
    child {
        node[bag] {Diseased $\left( D^+ \right)$}        
            edge from parent         
            node[above] {Prevalence}
            node[below]  {$0.10$}
    };
\end{tikzpicture} \\
生成的树看起来有点像这样:

             Diseased (D+)
           /
    Prev /
       / 0.10
     /
     \
       \
   0.90  \
           \
             Not diseased (D-)
。。。如果你明白我的意思

我希望能够在节点文本中输入换行符,以便(D+)和(D-)显示在下面。我已尝试使用\\和\换行符,但无效。有什么建议吗


提前感谢。

从您的代码开始

\documentclass[multi=false,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{trees}
\tikzstyle{level 1}=[级别距离=3.5cm,同级距离=4.0cm]
\tikzstyle{level 2}=[级别距离=3.5cm,兄弟姐妹距离=2cm]
\tikzstyle{bag}=[对齐=中心]
\开始{document}
\开始{tikzpicture}[grow=right,sloped]
\节点[包]{}
孩子{
节点[bag]{未患病\\$\left(D^-\right)$}%%1
来自父对象的边
节点[下方]{$0.90$}
}
孩子{
节点[bag]{患病\\$\left(D^+\right)$}%%2
来自父对象的边
节点[上面]{popularity}
节点[下方]{$0.10$}
};
\结束{tikzpicture}
\结束{document}
制作作业:请注意,我只将
\tikzstyle{bag}
[text centered]
更改为
[align=center]
,并在标记为
%%1
%%2的行中添加了
\

生成的树:

摘自:

在Qtree中,允许在节点内使用换行符(
\\\
)。默认情况下,TikZ节点不允许这样做,但
align
选项(在PGF/TikZ 2.1版或更高版本中)将其作为副作用启用

多亏艾伦·穆恩弄明白了这一点。在PGF/TikZ版本2.1之前,修复方法是使用选项
text width=2em,text centered


node[bag]
更改为
node[bag,align]
并使用\\。重复:和。“如果要手动插入换行符,可以使用\\和可选参数align。(如果不为align指定选项,则不会发生换行,并且会出现OP指出的问题。)”很高兴知道。这是一个惊喜,但是
文本宽度
是一个丑陋的手动破解,它离手动定位不远。