我是新手tikz
,想尝试绘制树形结构。
我尝试了不同的选项,但无法按照我想要的样子进行修改。
它目前看起来像这样:
Tikz 代码
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{trees} % this is to allow the fork right path
\usepackage[utf8]{inputenc}
\begin{document}
\begin{tikzpicture}[grow'=right,sibling distance=0.1cm]
\tikzstyle{level 1} = [level distance=3cm, text width = 2cm]
\tikzstyle{level 2} = [level distance=3cm, text width = 2cm]
\tikzstyle{level 3} = [level distance=3cm, text width = 2cm]
\Tree
[
[.{Pressen}
[.{uniaxiales Pressen} ]
[.{isostatisches Pressen} ]
[.{Vibrationspressen} ]
[.{Stampfen} ]
]
[.{Plastisches Formen}
[.{Extrudieren} ]
[.{Drehen} ]
]
[.Gießen
[.{Schlickergießen} ]
[.{Druckgießen} ]
[.{Spritzgießen} ]
[.{Foliengießen} ]
]
]
\end{tikzpicture}
\end{document}
最终的 pdf 输出:
(手绘红线,见下文)
我想实现以下目标
- 节点“Plastisches Formen”中的换行符
- 边缘不直,而是水平/垂直 - 就像用红色勾勒出的一条边缘
- 各层级的文本左对齐
- 是否可以自动将级别距离调整为级别中最大节点的宽度,这样我就不必手动设置“级别距离”?
答案1
如果forest
是一个选项:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{forest}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{forest}
for tree={grow'=0,
anchor=west, child anchor=west, fit=band, parent anchor=east, edge path={\noexpand\path[\forestoption{edge}](!u.parent anchor)|-(.child anchor)\forestoption{edge label};}, l sep=1cm,}
[, calign=child, calign child=2
[Pressen
[uniaxiales Pressen]
[isostatisches Pressen]
[Vibrationspressen]
[Stampfen]
]
[Plastisches\\Formen, align=center
[Extrudieren]
[Drehen]
]
[Gießen
[Schlickergießen ]
[Druckgießen ]
[Spritzgießen ]
[Foliengießen ]
]
]
\end{forest}
\end{document}
第二版本:
我不太明白所有节点“raggedright”意思是,但可能是选择align=right
这样做。
关于对齐所有同一级别节点的其他评论可以通过tier/.pgfmath=level()
选项完成。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{forest}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{forest}
for tree={grow'=0, l=0, l sep=2em,
child anchor=west, anchor=west,
parent anchor=east,
tier/.pgfmath=level(),
align=right,
edge path={\noexpand\path[\forestoption{edge}](!u.parent anchor)|-(.child anchor)\forestoption{edge label};},
}
[, calign=child, calign child=2
[Pressen
[uniaxiales\\ Pressen]
[isostatisches Pressen]
[Vibrationspressen]
[Stampfen]
]
[Plastisches\\Formen
[Extrudieren]
[Drehen]
]
[Gießen
[Schlickergießen ]
[Druckgießen ]
[Spritzgießen ]
[Foliengießen ]
]
]
\end{forest}
\end{document}