我想缩小树中的某些节点。但我无法使它们变小。inner sep=0.01mm
结果节点大小与相同inner sep=1mm
。这怎么可能?我错过了什么?
我的代码:
\documentclass[border=10pt]{standalone}
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{forest}
\usepackage{graphicx}
\begin{document}
\begin{forest}
for tree={delay={where content={}{content={\phantom{00}}}{}},s sep+=5mm,l+=5mm}
[,circle,fill=black,inner sep=1mm
[,circle,fill=red,inner sep=0.5mm
[,circle,draw,black,inner sep=0.1mm]
[]
[,circle,draw,black,inner sep=0.1mm]
[]
]
[]
[,circle,fill=red,inner sep=0.5mm
[,circle,fill=red,inner sep=0.25mm
[,circle,draw,black,inner sep=0.1mm]
[,circle,draw,black,inner sep=0.1mm]
[,circle,draw,black,inner sep=0.1mm]
[,circle,draw,black,inner sep=0.001mm]%%% <------------- ??
]
[]
[]
[,circle,draw,black,inner sep=0.1mm]
]
[,circle,fill=red,inner sep=0.5mm]
]
\end{forest}
\end{document}
答案1
作为Salim Bou 在评论中指出,看起来无效的原因inner sep
是节点本身的内容相对来说相当大。因此0.1mm
和之间的差异0.001mm
几乎没有什么区别,因为这只会将内容周围的边距从很小变为更小。
正如 Salim Bou 所建议的,一种方法是删除将内容添加到树的节点的代码。在这种情况下,设置inner sep
实际上将决定树中所有节点的大小。
但是,如果您只想调整该节点的大小,您可能希望稍后覆盖内容。如果设置为该节点的参数,这将仅更改该节点的内容。请注意,inner sep
在这种情况下,大多数设置都可以简单地删除,而对外观几乎没有任何视觉影响。
我还建议使用样式来避免重复设置。如何最好地做到这一点取决于您的需要。这是一个可能的示例,它还说明了上面解释的两种更改尺寸的方法。
\documentclass[border=10pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
s sep'+=5mm,
l'+=5mm,
},
my circle/.style={
circle, fill=#1,
},
red circle/.style={
my circle=red, inner sep=#1mm,
},
black circle/.style={
my circle=black, inner sep=#1mm,
},
black hole/.style={
circle, draw=black, inner sep=#1mm,
}
[, black circle=1
[, red circle=0.5
[, black hole=0.1]
[]
[, black hole=0.1]
[]
]
[]
[, red circle=0.5
[, red circle=0.25
[, black hole=0.1]
[, black hole=0.1]
[, black hole=0.1]
[, black hole=0.001]
]
[]
[]
[, black hole=0.1]
]
[, red circle=0.5]
]
\end{forest}
\begin{forest}
for tree={
delay={where content={}{content={\phantom{00}}}{}},
s sep'+=5mm,
l'+=5mm,
},
my circle/.style={
circle, fill=#1,
},
red circle/.style={
my circle=red, inner sep=#1mm,
},
black circle/.style={
my circle=black, inner sep=#1mm,
},
black hole/.style={
circle, draw=black, inner sep=#1mm,
}
[, black circle=1
[, red circle=0.5
[, black hole=0.1]
[]
[, black hole=0.1]
[]
]
[]
[, red circle=0.5
[, red circle=0.25
[, black hole=0.1]
[, black hole=0.1]
[, black hole=0.1]
[, black hole=0.001, before typesetting nodes={content=}]%%% <------------- ??
]
[]
[]
[, black hole=0.1]
]
[, red circle=0.5]
]
\end{forest}
\end{document}
左侧的树显示了由其inner sep
s 决定大小的节点。右侧的树显示了以幻影00
为内容的节点,除了单个被覆盖的小节点。