嵌套的 tikz 节点不左对齐

嵌套的 tikz 节点不左对齐

我在使用 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在背景中。下面我在fitbackgrounds库的帮助下完成了此操作。

其他一些注意事项:

  • \\之前的内容\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}

相关内容