我有以下树:
\begin{center}
\begin{forest}
[Tests
[Case 1
[\text{OGL1}]
[\text{OGL2}]
[\text{OGL3}]
[\text{OGL4}]
]
[Case 2
[\text{OGL1}]
[\text{OGL2}]
[\text{OGL3}]
[\text{OGL4}]
]
[Case 3
[\text{OGL1}]
[\text{OGL2}]
[\text{OGL3}]
[\text{OGL4}]
]
[Case 4
[\text{OGL1}]
[\text{OGL2}]
[\text{OGL3}]
[\text{OGL4}]
]
]
\end{forest}
\end{center}
然而,这棵树太宽了,超出了纸张的范围。
是否有一个好的方法可以使其适合纸张且字母之间不互相干扰?
如果有不同类型的树可以解决这个问题,那也很好了解。
谢谢你!
答案1
像这样吗?
不知道你的 \text 是做什么用的,所以删除了那些
\documentclass[a4paper,12pt]{article}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
child anchor=west,
parent anchor=east,
grow'=east,
%minimum size=1cm,%new possibility
text width=4cm,%
draw,
anchor=west,
edge path={
\noexpand\path[\forestoption{edge}]
(.child anchor) -| +(-5pt,0) -- +(-5pt,0) |-
(!u.parent anchor)\forestoption{edge label};
},
}
[Tests
[Case 1
[{OGL1}]
[{OGL2}]
[{OGL3}]
[{OGL4}]
]
[Case 2
[{OGL1}]
[{OGL2}]
[{OGL3}]
[{OGL4}]
]
[Case 3
[{OGL1}]
[{OGL2}]
[{OGL3}]
[{OGL4}]
]
[Case 4
[{OGL1}]
[{OGL2}]
[{OGL3}]
[{OGL4}]
]
]
\end{forest}
\end{document}
答案2
如果不知道盒子的大小,就很难给出如何将东西放入盒子的建议,但这基本上就是你要求人们做的事情。也就是说,因为你的例子不完整,我们只能猜测你选择的字体、默认字体大小、纸张大小、边距等等。更好的答案需要更完整的信息。
在下文中,我假设您使用的是article
具有默认设置的类。这意味着美国信纸(216 x 279 毫米)纵向打印,使用 10pt Computer Modern serif、sans 和打字机字体,以及默认边距、跳过等。
我建议将树设置为“目录样式”。根据节点内容的潜在宽度,您可以以此方式排版整个树,或者在适当的位置切换到此样式。
如果节点的内容实际上可能更宽,则可以这样设置:
showframe
用于标记文本块、边距等。显然,您不应该在实际文档中加载它,但这些线在这里很有用。
如果节点的内容真的很短,如示例中所示,我认为在第一个子节点之后切换看起来更好:
这里forked edge
用于获得根和其子节点之间的边的相似样式。
从 Forest 2 开始,这些样式可以使用edges
库轻松实现,如下面的代码所示。
\documentclass{article}
\usepackage[edges]{forest}
\usepackage{showframe}
\begin{document}
\begin{forest}
for tree={folder, grow'=0}
[Tests
[Case 1
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 2
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 3
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 4
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
]
\end{forest}
\begin{forest}
where level>=1{if level=1{forked edge}{}, folder, grow'=0}{}
[Tests
[Case 1
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 2
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 3
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
[Case 4
[OGL1]
[OGL2]
[OGL3]
[OGL4]
]
]
\end{forest}
\end{document}