- 我 (目前) 对 还不是很满意
forest
。 - 我对节点的对齐存在问题。
- 我哪里错了?
\documentclass[border=2mm]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
box/.style={rounded corners,
draw=gray!50,
fill=orange!20,
font=\sffamily,
minimum height=2em},
[Actions, box
[Common shares, box
[porte
[Droits de vote, box
[donne droit à
[Une voix à l'élection du board, box]
]
]
]
[peut donner droit à
[Dividendes, box,name=div
[distribue
[Part des profits, box]
]
[décidé par,name=decision
[Le Board, box, name=dir]
]
]
]
]
[Actions préférentielles, box
[donne droit à, name=droit]
]
]
\draw (droit)--(div);
\end{forest}
\end{document}
PS:还有一个问题...当不在的时候,如何获得较小的字体box/.style
?
答案1
要对齐文本,请添加适当的text depth
。要获取带框和不带框的节点的交替模式,请使用函数isodd
。
\documentclass[border=2mm]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
box/.style={rounded corners,
draw=gray!50,
fill=orange!20,
font=\sffamily,
},
for tree={text depth=0.25ex,
if={level==0||isodd(level)==1}{box,minimum height=2em}{minimum height=1.2em}}
[Actions
[Common shares
[porte
[Droits de vote
[donne droit à
[Une voix à l'élection du board]
]
]
]
[peut donner droit à
[Dividendes, name=div
[distribue
[Part des profits]
]
[décidé par,name=decision
[Le Board, name=dir]
]
]
]
]
[Actions préférentielles
[donne droit à, name=droit]
]
]
\draw (droit)--(div);
\end{forest}
\end{document}
答案2
您只需定义节点的锚点:
\documentclass[border=2mm]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
box/.style={
rounded corners,
draw=gray!50,
fill=orange!20,
font=\sffamily,
minimum height=2em,
anchor=north % or center <---- added
},
for tree = {
if level = 2{}{if level = 4{}{box}}
}
[Actions
[Common shares
[porte
[Droits de vote
[donne droit à
[Une voix à l'élection du board]
]
]
]
[peut donner droit à
[Dividendes, name=div
[distribue
[Part des profits]
]
[décidé par, name=decision
[Le Board, name=dir]
]
]
]
]
[Actions préférentielles
[donne droit à, name=droit]
]
]
\draw (droit)--(div);
\end{forest}
\end{document}
编辑:
在forest
代码中添加了规范for tree
,规定了节点根据其所在级别所处的样式。