如何减少节点标签中的行距

如何减少节点标签中的行距

如何减少节点之间Drill$0节点内的空间?

在此处输入图片描述

\documentclass[border=3mm,tikz]{standalone}

\begin{document}
\begin{tikzpicture} 
[grow = right, sibling distance = 6em, level distance = 10em, align=center, sloped] 
  \node {Decision} 
    child {node {No Drill\\\$0} } 
    child {node {Drill\\-\$1 million} 
      child {node {Oil\\\$4 million} edge from parent node [above] {.6} } 
      child {node {No Oil\\\$0} edge from parent node [above] {.4} } 
      }; 
\end{tikzpicture}
\end{document}

答案1

使用您的 MWE,我无法重现您的图像。节点中的文本通常是垂直间隔的:

在此处输入图片描述

我猜,在您的文档中,您在序言中确定了更大的基线拉伸,类似于\renewcommand\baselinestretch{1.5},它给出的图像与您在问题中显示的图像大致相同:

在此处输入图片描述

针对这种垂直拉伸的补救措施(可能是正文中需要的行)在局部减少了。这可以通过\linespread{1}TikZ 图片内部实现。例如:

\documentclass[border=3mm,tikz]{standalone}

\renewcommand\baselinestretch{1.5}% <--- probably it is in your document preamble 
                                  % or it is invoked with some option in 
                                  % \documentclass{...} which you use in your document. 

\begin{document}
\begin{tikzpicture}
[grow = right, sibling distance = 6em, level distance = 10em, align=center, sloped]
%---
\linespread{1}% <--- locally defined vertical line spacing in nodes
%---
  \node {Decision}
    child {node {No Drill\\\$0} }
    child {node {Drill\\-\$1 million}
      child {node {Oil\\\$4 million} edge from parent node [above] {.6} }
      child {node {No Oil\\\$0} edge from parent node [above] {.4} }
      };
\end{tikzpicture}
\end{document}

这与上面显示的图像相同。如果您希望垂直间距更紧密的线条,您可以选择linespread小于 1,但\linespread{0.7}线条开始重叠。

还有一点需要注意。不要在节点中更改字体大小。例如,在您的例子中:

...
child {node {\footnotesize Drill\\-\$1 million}
...

这将使节点文本中的字体变小,但不会改变基线间距,保持与正常字体大小的适应。因此,行之间的垂直空间实际上会增加。如果您只需要在一个节点中减小字体,那么使用节点的参数来实现这一点:

...
child {node[font=\footnotesize] { Drill\\-\$1 million}
...

将节点文本中的行距采用到所用字体的(本地)大小。

编辑:为了完整性(正如 cfr 在其评论中所建议的那样):在许多情况下,为了增加文本行之间的垂直空间,使用包setspace,它在其他包 \onehalfspacing\doublespacing命令以及环境之间提供\begin{singlespace} ... \end{singlespace}。在这种情况下,您可以编写:

\documentclass[border=3mm,tikz]{standalone}
\usepackage{setspace}
\onehalfspace

\begin{document}
    \begin{singlespace}% <--- change spacing
\begin{tikzpicture}
[grow = right, sibling distance = 6em, level distance = 10em, align=center, sloped]
  \node {Decision}
    child {node {No Drill\\\$0} }
    child {node {Drill\\-\$1 million}
      child {node {Oil\\\$4 million} edge from parent node [above] {.6} }
      child {node {No Oil\\\$0} edge from parent node [above] {.4} }
      };
\end{tikzpicture}
    \end{singlespace}
\end{document}

相关内容