Berechnen der Mindesthöhe eines Knotens basierend auf der Größe anderer Knoten

Berechnen der Mindesthöhe eines Knotens basierend auf der Größe anderer Knoten

Betrachten Sie das folgende Beispiel:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\usepackage{xcolor}

\begin{document}

\def\mydist{1mm}
\begin{tikzpicture}[
        mystyle/.style={
            rectangle,
            rounded corners,
            draw=black, 
            very thick,
            text width=2cm,
        }
    ]
    \node [mystyle] (A) {A\\text\\text\\text};
    \node [mystyle, anchor=north] (B) at ($(A.south) - (0,\mydist)$) {B\\text\\text};
    \node [mystyle, anchor=south west] (C) at ($(B.south east) + (\mydist,0)$) {C\\text};

    % here is the problem
    \node [mystyle, anchor=south, red] (D) at ($(C.north)  + (0,\mydist)$) {D\\???};
\end{tikzpicture}

\end{document}

Wie kann ich das für Knoten D so berechnen, minimum heightdass die Oberkanten der Knoten A und D auf einer Linie liegen?

Oder sollte ich einen anderen Ansatz verwenden?

Antwort1

Hier ist eine Möglichkeit mit der letSyntax; die Knoten text depthwerden verwendet, um die richtige Größe anzugeben:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\usepackage{xcolor}

\begin{document}

\begin{tikzpicture}[
        mystyle/.style={
            rectangle,
            rounded corners,
            draw=black, 
            line width=1pt,
            text width=2cm,
        },
  node distance=2mm
    ]
\node [mystyle] (A) {A\\text\\text\\text\\text};
\node [mystyle,below=of A] (B) {B\\text\\text};
\node [mystyle, right=of B.south east,anchor=south west] (C) {C\\text};
\path let \p1=([yshift=2mm]C.north), \p2=(A.north) in
  node [mystyle, anchor=south,red,text depth={\y2-\y1-\pgflinewidth-1.1\baselineskip},above=of C] 
  (D) {A\\B\\C\\D};
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Hat nichts mit dem Problem zu tun, aber ich habe die von der Bibliothek bereitgestellten Funktionen zum Positionieren der Knoten verwendet node distance(so entfällt die Definition einer neuen Länge) .positioning

verwandte Informationen