我想縮小樹的一些節點。但我不會把它們變小。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
作為內容顯示了它們,但被覆蓋的單一小節點除外。