我想制作一个与此图一模一样的图表,但没有红色边框。我正在使用 qtree 包来获得类似的结果,但我遇到了两个问题。首先,我无法对树叶进行右对齐;其次,边缘/线条有时会与节点中的单词重叠。
\usepackage{qtree}
\usepackage{tikz}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\tikzset{grow'=right} % make trees grow from left to right
\tikzset{every tree node/.style={anchor=base west}} % align nodes of the tree to the left (west)
\Tree [.S [.NP LaTeX ] [.VP [.V is ] [.NP fun ] ] ]
\\
\\
\clearpage
% In the document:
\begin{tikzpicture}
\small
\node (is-root) {Heildarskaði}
[sibling distance=6.5cm]
child {
[sibling distance=3.3cm]
child {
child {node {Fyrir notendur}
child {
[sibling distance=1cm]
child { node {Líkamlegur}
child {
child {
[sibling distance=0.5cm]
child {node {Bein dánartíðni vímuefna}}
}
}
child {
child {
child {node {Tengd dánartíðni vímuefna}}
}
}
child {
child {
child {node {Beinn skaði vímuefna}}
}
}
child {
child {
child {node {Tengdur skaði vímuefna}}}
}
}
}
child {
[sibling distance=1cm]
child { node {Sálrænn}
child {
child {
[sibling distance=0.5cm]
child {node {Fíkn}}
}
}
child {
child {
child {node {Beinn skaði vímuefna á geðheilsu}}
}
}
child {
child {
child {node {Óbeinn skaði vímuefna á geðheilsu}}
}
}
}
}
child {
[sibling distance=1cm]
child { node {Samfélagslegur}
child {
child {
[sibling distance=0.5cm]
child {node {Tap á efnislegum þörfum}}
}
}
child {
child {
child {node{Tap á félagslegum þörfum}}
}
}
}
}
}
}
}
child {
[sibling distance=3.5cm]
child {
child {node { Fyrir aðra}
child {
[sibling distance=1cm]
child { node {Líkamlegur og sálrænn}
child {
child {
[sibling distance=0.5cm]
child {node {Skaði}}
}
}
}
}
child {
[sibling distance=1cm]
child { node {Samfélagslegur}
child {
child {
[sibling distance=0.5cm]
child {node {Glæpatíðni}}
}
}
child {
child {
child {node {Umhverfislegur skaði}}
}
}
child {
child {
child {node {Neikvæð áhrif á fjölskyldu}}
}
}
child {
child {
child {node {Alþjóðlegur skaði}}}
}
child {
child {
child {node {Efnahagslegur kostnaður}}
}
}
child {
child {
child {node {Þjóðfélagslegur skaði}}}
}
}
}
}
}
%child[missing]
};
\path (is-root) +(0,-2.5\tikzleveldistance)
\end{tikzpicture}
答案1
不错的小变化@Ross 回答(+1)。差异如下% <---
:
\documentclass[border=3.141592]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={
grow'=east,
anchor=east, % <---
edge path = {
\noexpand\path[\forestoption{edge}]
(!u.parent anchor) -- (!u.east |- .child anchor) -- (.child anchor) % <---
\forestoption{edge label};
},
tier/.option = level, % <---
}
[Heildarskaði
[Fyrir notendur
[Líkamlegur
[Bein dánartíðni vímuefna]
[Tengd dánartíðni vímuefna]
[Beinn skaði vímuefna]
[Tengdur skaði vímuefna]
[,phantom] % <---
]
[Sálrænn,before computing xy={s/.average={s}{siblings}} % <---
[Fíkn]
[Beinn skaði vímuefna á geðheilsu]
[Óbeinn skaði vímuefna á geðheilsu]
]
[Samfélagslegur
[Tap á efnislegum þörfum]
[Tap á félagslegum þörfum]
]
]
[Fyrir aðra
[Líkamlegur og sálrænn
[Líkamlegur og sálrænn]
]
[Samfélagslegur
[Glæpatíðni]
[Umhverfislegur skaði]
[Neikvæð áhrif á fjölskyldu]
[Alþjóðlegur skaði]
[Efnahagslegur kostnaður]
[Þjóðfélagslegur skaði]
]
]
]
\end{forest}
\end{document}
使用XeLaTeX
或编译后LuaLaTeX
您将获得:
答案2
欢迎来到 TeX.SE。它使用Forest
,它具有绘制树的良好语法。我剩下一个问题,即当只有一个叶节点时如何实现您喜欢的边缘样式。我尝试过where n children=1 {}
,但没有得到合适的解决方案。您也许可以自己解决这个问题,或者有人可以在这里告诉我们。
\documentclass[tikz,border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={
grow'=east,
where n children=0{tier=terminus,anchor=east}{},
calign=center,
edge path = {
\noexpand\path[\forestoption{edge}]
(!u.parent anchor) -- ([xshift=8mm]!u.parent anchor |- .child anchor) -- (.child anchor) \forestoption{edge label};
}
}
[Heildarskaði
[Fyrir notendur
[Líkamlegur
[Bein dánartíðni vímuefna]
[Tengd dánartíðni vímuefna]
[Beinn skaði vímuefna]
[Tengdur skaði vímuefna]
]
[Sálrænn
[Fíkn]
[Beinn skaði vímuefna á geðheilsu]
[Óbeinn skaði vímuefna á geðheilsu]
]
[Samfélagslegur
[Tap á efnislegum þörfum]
[Tap á félagslegum þörfum]
]
]
[Fyrir aðra
[Líkamlegur og sálrænn
[Líkamlegur og sálrænn]
]
[Samfélagslegur
[Glæpatíðni]
[Umhverfislegur skaði]
[Neikvæð áhrif á fjölskyldu]
[Alþjóðlegur skaði]
[Efnahagslegur kostnaður]
[Þjóðfélagslegur skaði]
]
]
]
\end{forest}
\end{document}