我有以下树的代码。但是,框的长度是全局设置的。我希望调整是按级别进行的。另外,我不希望字母是双行(就像代码中那样,每个框只有一行)。
代码:
\documentclass[a4paper,10pt]{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}
\usepackage[edges]{forest}
\usetikzlibrary{shadows}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tikzset{
my node style/.style={
font=\tiny,
top color=white,
bottom color=blue!25,
rectangle,
rounded corners,
minimum size=4mm,
draw=blue!75,
very thick,
drop shadow,
align=justify,
}
}
\forestset{
my tree style/.style={
for tree={grow=east,
parent anchor=east, % <---
child anchor=west, % <---
my node style,
l sep=1.5em,
text width=4.6cm,
% text width=5cm,
forked edge, % <---
fork sep=1em, % <---
edge={draw=blue!50, thick},
if n children=3{for children={
if n=2{calign with current}{}}
}{},
% delay={if content={}{shape=coordinate}{}},
tier/.option=level,
}
}
}
\centering
\begin{forest}
my tree style
[Inicialização de sistema Acção Y Euro Pallet
[Inicialização de sistema Acção Y
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
]
[Inicialização de sistema Acção Y
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
]
]
\end{forest}
\end{document}
亲爱的 js ~Bibra,再次感谢你。问题是,当同一级别的一个框中的文本比另一个框中的文本多时,对齐效果会很差。例如,考虑以下代码:
\documentclass[a4paper,10pt]{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}
\usepackage[edges]{forest}
\usetikzlibrary{shadows}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tikzset{
my node style/.style={
font=\tiny,
top color=white,
bottom color=blue!25,
rectangle,
rounded corners,
% minimum size=4mm,
draw=blue!75,
very thick,
drop shadow,
align=justify,
% level 2/.style={text width=3.5cm},
}
}
\forestset{
my tree style/.style={
for tree={grow=east,
parent anchor=east, % <---
child anchor=west, % <---
my node style,
l sep=1.5em,
% text width=3.5cm, %<---turn off all sizing
% text width=5cm,
forked edge, % <---
fork sep=1em, % <---
edge={draw=blue!50, thick},
if n children=3{for children={
if n=2{calign with current}{}}
}{},
% delay={if content={}{shape=coordinate}{}},
tier/.option=level,
}
}
}
\centering
\begin{forest}
my tree style
[Inicialização de sistema Acção Y Euro Pallet
[Inicialização de sistema Acção Y, text width=4cm %<---changed
[Inicialização de sistema]
[Inicialização de sistema de sistema]
[Inicialização de sistema]
]
[Inicialização de sistema Inicialização de sistema Acção Y
[Inicialização de sistema]
[Inicialização Inicialização de sistema de sistema]
[Inicialização de sistema]
[Inicialização de sistema de sistema de sistema]
]
]
\end{forest}
\end{document}
答案1
正如回答前面的查询一样,可以使用全局选项,这将给出上述形状
\forestset{
my tree style/.style={
for tree={grow=east,
parent anchor=east, % <---
child anchor=west, % <---
my node style,
l sep=1.5em,
text width=3.5cm,
% text width=5cm,
forked edge, % <---
fork sep=1em, % <---
edge={draw=blue!50, thick},
if n children=3{for children={
if n=2{calign with current}{}}
}{},
% delay={if content={}{shape=coordinate}{}},
tier/.option=level,
}
或者text width
可以通过附加来在所需的级别进行操作
[Inicialização de sistema Acção Y, text width=5cm
最好关闭所有尺寸选项,以便节点自动采用最小宽度 - 然后如果需要,操作一个节点
最终的选择是为级别 0、1、2... 创建单独的样式,如书中所定义 -http://www.chiark.greenend.org.uk/doc/texlive-doc/latex/forest/forest.pdf
数学家协会
\documentclass[a4paper,10pt]{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}
\usepackage[edges]{forest}
\usetikzlibrary{shadows}
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\tikzset{
my node style/.style={
font=\tiny,
top color=white,
bottom color=blue!25,
rectangle,
rounded corners,
% minimum size=4mm,
draw=blue!75,
very thick,
drop shadow,
align=justify,
% level 2/.style={text width=3.5cm},
}
}
\forestset{
my tree style/.style={
for tree={grow=east,
parent anchor=east, % <---
child anchor=west, % <---
my node style,
l sep=1.5em,
% text width=3.5cm, %<---turn off all sizing
% text width=5cm,
forked edge, % <---
fork sep=1em, % <---
edge={draw=blue!50, thick},
if n children=3{for children={
if n=2{calign with current}{}}
}{},
% delay={if content={}{shape=coordinate}{}},
tier/.option=level,
}
}
}
\centering
\begin{forest}
my tree style
[Inicialização de sistema Acção Y Euro Pallet
[Inicialização de sistema Acção Y, text width=4cm %<---changed
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
]
[Inicialização de sistema Acção Y
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
[Inicialização de sistema]
]
]
\end{forest}
\end{document}