我在使用 tikz 时遇到了问题。我想将节点 Auftraggeber、Lierferanten 和 Benutzer 嵌套到节点 Lenkung 中,但嵌套节点始终无法左对齐。
\documentclass[11pt,a4paper]{article}
\usepackage{tikz}
\usepackage{float}
\usepackage{caption}
\usetikzlibrary{chains, positioning, shapes, arrows}
\begin{document}
\begin{figure}[H]
\begin{tikzpicture}[remember picture, node distance = 0.4cm, thick,
every node/.style = {rectangle, font = \sffamily, white,
top color = red!90!black, bottom color = white!60!black,
text width = 4.4cm, align = center, minimum width = 4cm,
minimum height = 1cm},
UP/.style = {anchor=north west, text width = 8cm, minimum width=16cm},
Team/.style = {minimum width = 16cm},
Lenkung/.style = {align=left, minimum height = 2cm, minimum width=16cm}
]
\node [UP](UP) [anchor=west]{Unternehmens- oder Programmmanagement};
\coordinate [below = 0.9cm of UP] (Mitte);
\node[Lenkung,draw=blue, below = of UP] (Lenkung) {
Lenkungsausschuss
\begin{tikzpicture}[align=left]
\node (Auftraggeber) [draw=black] {Auftraggeber\\
Frau Grenz (AZ AG)};
\node (Lieferanten) [draw=black,right = of Auftraggeber] {Lieferantenvertreter\\
\begin{enumerate}
\item Herr Bob (RZ Bau AG)
\item Frau Haunersdorfer (Telekom)
\item Herr Meierhofer (RZB GmbH)
\item Herr Brünig
\end{enumerate}};
\node (Benutzer) [draw=black, left = of Auftraggeber] {Benutzervertreter\\
\begin{enumerate}
\item Herr Kunz
\item Herr Knecht
\item Frau Huber
\item Herr Knurr
\end{enumerate}};
\end{tikzpicture}
};
\node (PM) [below = 1cm of Lenkung] {Projektmanager\\ Herr Prinz (PMC GmbH)};
\node (Aenderung) [right = 1cm of PM] {Änderungsausschuss};
\node (Sicherung) [left = 1cm of PM] {Sicherungsausschuss};
\node (BO) [below = 1cm of Aenderung] {Back office\\
Frau Munker};
\node (TM) [below = 2cm of PM] {Teamanager\\
Herr Bauer (AZ AG)};
\node [Team](Team) [below = 1cm of TM] {Teammitglieder};
\draw [green!60!black,thick];
\end{tikzpicture}
\captionof{figure}{Organigramm Projektorganisation}
\end{figure}
\end{document}
提前致谢
答案1
我认为通常应该避免嵌套tikzpicture
,因为您无法始终确保它按预期工作。另一种方法是先绘制三个嵌套节点,然后将节点放置Lenkung
在背景中。下面我在fit
和backgrounds
库的帮助下完成了此操作。
其他一些注意事项:
\\
之前的内容\begin{enumerate}
没有必要。- 你在一个
figure
环境中,所以\captionof{figure}
不需要,\caption{figure}
就足够了。 - 该
arrows
库(您实际上并未在这里使用)被视为已弃用arrows.meta
,请参阅手册。 - 您的图表比标准中的文本块宽得多
article
,因此您得到了一个overfull hbox
。我还没有做任何事情来解决这个问题。
\documentclass[11pt,a4paper]{article}
\usepackage{tikz}
\usepackage{float}
\usepackage{caption}
\usetikzlibrary{positioning, fit,backgrounds}
\begin{document}
\begin{figure}[H]
\begin{tikzpicture}[
remember picture, node distance = 0.4cm, thick,
every node/.style = {rectangle, font = \sffamily, white,
top color = red!90!black, bottom color = white!60!black,
text width = 4.4cm, align = center, minimum width = 4cm,
minimum height = 1cm},
UP/.style = {anchor=north west, text width = 8cm, minimum width=16cm},
Team/.style = {minimum width = 16cm},
Lenkung/.style = {align=left, minimum height = 2cm, minimum width=16cm}
]
\node [UP](UP) [anchor=west]{Unternehmens- oder Programmmanagement};
\node (Auftraggeber) [below=3cm of UP,draw=black] {Auftraggeber\\
Frau Grenz (AZ AG)};
\node (Lieferanten) [draw=black,right = of Auftraggeber] {Lieferantenvertreter
\begin{enumerate}
\item Herr Bob (RZ Bau AG)
\item Frau Haunersdorfer (Telekom)
\item Herr Meierhofer (RZB GmbH)
\item Herr Brünig
\end{enumerate}};
\node (Benutzer) [draw=black, left = of Auftraggeber] {Benutzervertreter
\begin{enumerate}
\item Herr Kunz
\item Herr Knecht
\item Frau Huber
\item Herr Knurr
\end{enumerate}};
\begin{scope}[on background layer]
\node[Lenkung,
fit=(Lieferanten)(Auftraggeber)(Benutzer),
label={[anchor=north,shade=none]above:Lenkungsauschuss},
inner ysep=2.5ex,yshift=1.7ex,
draw=blue] (Lenkung) {};
\end{scope}
\node (PM) [below = 1cm of Lenkung] {Projektmanager\\ Herr Prinz (PMC GmbH)};
\node (Aenderung) [right = 1cm of PM] {Änderungsausschuss};
\node (Sicherung) [left = 1cm of PM] {Sicherungsausschuss};
\node (BO) [below = 1cm of Aenderung] {Back office\\
Frau Munker};
\node (TM) [below = 2cm of PM] {Teamanager\\
Herr Bauer (AZ AG)};
\node [Team](Team) [below = 1cm of TM] {Teammitglieder};
\draw [green!60!black,thick];
\end{tikzpicture}
\caption{Organigramm Projektorganisation}
\end{figure}
\end{document}