可以试试这个...手动计算一下...不过是不是「最佳实践」呢🤔
\documentclass[border=5pt]{standalone}
\usepackage[fontset=fandol]{ctex}
\usepackage[edges]{forest}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
\begin{forest}
for tree={
grow'=east,
anchor=west,
inner sep=0pt,
outer sep=0pt,
fit=band,
align=left,
if n=1{edge path'={(!ul.south west)-- (!u1.north west)}}{no edge},
edge={decorate, decoration={brace,amplitude=1.5mm,raise=2mm}},
},
before drawing tree={
for tree={
if n children=0{}{
y/.pgfmath={(y("!1")+max_y("!1")+y("!l")+min_y("!l"))/2}
}
}
}
[1 一级标题
[1.1 二级标题
[1.1.1 三级标题
[1.1.1.1 四级标题]
[1.1.1.2 四级标题]
[1.1.1.3 四级标题]
]
[1.1.2 三级标题
[1.1.2.1 四级标题]
[1.1.2.2 四级标题]
[1.1.2.3 四级标题[\parbox{5em}{文字文字文字文字文字文字文字文字文字文字文字文字}]]
[1.1.2.4 四级标题]
]
]
[1.2 二级标题
[1.2.1 三级标题
[1.2.1.1 四级标题]
[1.2.1.2 四级标题]
]
[1.2.2 三级标题
[1.2.2.1 四级标题]
[\parbox{8em}{文字文字文字文字文字文字文字文字文字文字文字文字}]
]
]
]
\end{forest}
\end{document}





















问 使用forest宏包排版树状结构图对于多行文本如何保持节点的对齐?