如何减少所绘制树的整体大小tikz-qtree
?我有一个巨大的解析树,甚至无法放在一页纸上。我想调整整个树的大小或调整放置算法以使树更密集。
答案1
把整棵树\resizebox
放在graphicx
。以下是图形指南关于这个命令有话要说:
\resizebox{⟨h-length⟩}{⟨v-length⟩}{⟨text⟩}
缩放文本,使宽度h 长度。 如果
!
用作长度参数,则另一个参数用于确定在两个方向上使用的比例因子。通常V 长度指的是盒子的高度,但在星号形式中,它指的是“高度 + 深度”。与 LaTeX2ε 盒子长度参数一样,\height
,\width
,\totalheight
,\depth
可用于指代盒子的原始大小。
\bigskip
、、和只是为了使示例间距看起来更美观。请注意\newpage
,为了使垂直调整大小起作用,您需要将 放在环境中。当然,您也可以只用作长度;我的示例中仅包含与排版尺寸相关的长度。\hfill
\hspace{0pt}
\Tree
tikzpicture
5cm
\documentclass[12pt]{article}
\usepackage[a6paper,showframe]{geometry}% just to demonstrate the effects
\usepackage{graphicx}
\usepackage{tikz-qtree}
\begin{document}
\setlength{\parindent}{0cm}% get rid of paragraph indents for this example
%
% HORIZONTAL RESIZING FOR WIDE TREES
%
Original Size:
\Tree[.Top A B C D E F G H I J K L M N O P ]
\bigskip
Full linewidth:
\resizebox{\linewidth}{!}{%
\Tree[.Top A B C D E F G H I J K L M N O P ]
}
\bigskip
Linewidth minus 1cm:
\resizebox{\dimexpr\linewidth-1cm}{!}{%
\Tree[.Top A B C D E F G H I J K L M N O P ]
}
\bigskip
Half linewidth:
\resizebox{.5\linewidth}{!}{%
\Tree[.Top A B C D E F G H I J K L M N O P ]
}
\bigskip
%
% VERTICAL RESIZING FOR TALL TREES
%
Page 2: original size
Page 3: textheight, textheight minus 1cm, half textheight
\newpage
\begin{tikzpicture}\Tree[.A [.B [.C [.D [.E [.F [.G [.H [.I [.J [.K [.L [.M [.N [.O [. P ]]]]]]]]]]]]]]]]\end{tikzpicture}
\newpage
\hfill
\resizebox{!}{\textheight}{\begin{tikzpicture}
\Tree[.A [.B [.C [.D [.E [.F [.G [.H [.I [.J [.K [.L [.M [.N [.O [. P ]]]]]]]]]]]]]]]]
\end{tikzpicture}}
\hfill
\resizebox{!}{\dimexpr\textheight-1cm}{\begin{tikzpicture}
\Tree[.A [.B [.C [.D [.E [.F [.G [.H [.I [.J [.K [.L [.M [.N [.O [. P ]]]]]]]]]]]]]]]]
\end{tikzpicture}}
\hfill
\resizebox{!}{.5\textheight}{\begin{tikzpicture}
\Tree[.A [.B [.C [.D [.E [.F [.G [.H [.I [.J [.K [.L [.M [.N [.O [. P ]]]]]]]]]]]]]]]]
\end{tikzpicture}}
\hfill\hspace{0pt}
\end{document}