使森林树适合一页

使森林树适合一页

我正在尝试编写一个相当大的树。我找到了森林包,并能够生成一个。但是,我对整个树的大小有些问题,因为我希望它能放在一页纸里,但我没有,我真的不知道该怎么做。

我在网上找到了代码的第一部分并尝试使用它,但我不知道如何编辑它以调整树的大小。

\documentclass [12pt,a4paper,twoside]{book}
\usepackage{fontspec}
\usepackage{forest}
\usepackage[left=3cm,right=3cm, bottom=3cm]{geometry}
\setmainfont{Times New Roman}

\begin{document}
\forestset{
  dir node/.style={
    parent anchor=south west,
    child anchor=west,
    anchor=west,
    inner ysep=0pt,
    align=left,
  },
  dir tree/.style={
    for tree={
      grow'=0,
      dir node,
      edge path={
        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) ++(1em,0) |- node[fill,inner sep=1.00pt] {} (.child anchor)\forestoption{edge label};
      },
      if n children=0{}{
        delay={
          prepend={[text 1, dir node, phantom, calign with current]}
        }
      },
      fit=band,
      before computing xy={
        l=2em,
      }
    },
  }
}

\begin{forest}
  dir tree,
  for tree = {
    font=\ttfamily
  }
  [EpisodioStagione <= 10.50
    [NEU <= 0.73
      [Personaggi <= 35.00
        [NEG <= 0.23
          [DurataScene <= 7.38
            [Durata <= 52.45
                [Classe: 8.0 - 8.2]
            ]
            [Durata >  52.45
                [Classe 8.3 - 8.5]
            ]
          ]
          [DurataScene >  7.38
            [Tagli <= 357.50
                [Tagli <= 241.50
                    [Classe: 7.7 - 7.9]
                ]
                [Tagli >  241.50
                    [Durata <= 42.34
                        [Parole <= 2155.00
                            [Episodio <= 39.00
                                [Classe: 8.3 - 8.5]
                            ]
                            [Episodio >  39.00
                                [Classe: 8.3 - 8.5]
                            ]
                        ]
                        [Parole >  2155.00
                            [Classe: 8.0 - 8.2]
                        ]
                    ]
                    [Durata >  42.34
                        [Classe: 8.0 - 8.2]
                    ]
                ]
            ]
            [Tagli >  357.50
                [Classe: 7.7 - 7.9]
            ]
          ]
        ]
        [NEG >  0.23
                [EpisodioStagione <= 1.50
                [Classe: 8.0 - 8.2]
            [EpisodioStagione >  1.50
                [NEU <= 0.62
                    [Tagli <= 291.50
                        [Classe: 8.3 - 8.5]
                    ]
                    [Tagli >  291.50
                        [Classe: 8.3 - 8.5]
                    ]
                ]
                [NEU > 0.62
                    [Classe: 8.3 - 8.5]
                ]
            ]
        ]
      ]
      [Personaggi >  35.00
        [Classe: 8.6 - 8.8]
      ]
    ]
    [NEU >  0.73
      [NEU <= 0.73
        [Classe: 8.6 - 8.8]
     ]
     [NEU >  0.73
        [Classe: 7.7 - 7.9]
     ]
    ]
   ]
   [EpisodioStagione >  10.50
    [RecensioniUomini <= 327.50
        [Classe: 8.3 - 8.5]
     ]
     [RecensioniUomini >  327.50
        [Classe 8.9 - 9.1]
     ]
    ]
   ]
\end{forest}
\end{document}

此外,<= 和 >= 符号组合未出现在树中。这是正常的吗?我选择这种方式绘制树,因为它似乎是绘制如此巨大的树的唯一解决方案,但也许我错了。如果有人知道更好的绘制方法,请告诉我!任何帮助都非常感谢!

答案1

你面临的问题是如何把大象放进女人的钱包里,所以没什么可做的。一些可能性是:

  • 使用此图表放大页面上的文本区域,或仅放大完整文档,例如通过添加\usepackage[vmargin=22mm]{geometry}到文档序言
  • 将图表中的字体大小缩小至\small
  • 减少s sep到零

编辑:

具有本地更改的页面布局的示例,其中图表:

\documentclass [12pt,a4paper,twoside]{book}
% preamble
\usepackage[hmargin=3cm, bottom=3cm]{geometry}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{fontspec}
\usepackage{forest}
%\setmainfont{Times New Roman}
\usepackage{newtxtext, newtxmath}

% rest of preamble

%

\newgeometry{vmargin=20mm}
\begin{forest}
  dir tree,
  for tree = {
    font=\small\ttfamily,
    s sep=0pt
  }
% body of diagram
\end{forest}
\restoregeometry

通过这种改变,你的图表可以放在一页上:

在此处输入图片描述

(红线表示页面布局)

你喜欢这样的结果吗?我会考虑用不同的方式来呈现图表内容(我仍然不清楚你想用这个图表告诉读者什么)。

相关内容