Eine vertikale Linie trennt Matrixeinträge in der TikzPicture-Matrixumgebung?

Eine vertikale Linie trennt Matrixeinträge in der TikzPicture-Matrixumgebung?

Wie erstellen wir eine perfekte vertikale Linie als Linie in der quadratischen Matrix, um in der TikzPicture-Matrixumgebung zwischen Cc und G auf der linken Seite und D und H auf der rechten Seite zu trennen?

Die Linie sollte am besten genau in der Mitte zwischen Cc und G auf der linken Seite und D und H auf der rechten Seite liegen.

Ich möchte, wenn möglich, bei der Matrixumgebung von TikzPicture bleiben.

Vielen Dank für alle Vorschläge/Kommentare.

Hier ist mein fehlgeschlagener Versuch. Bildbeschreibung hier eingeben

Hier ist mein Tex-Code:

\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{matrix}

    \usepackage{amsmath, amsthm, amssymb,mathtools}
    
    
    \begin{document}
    
    
    \begin{tikzpicture}
    \matrix[matrix of math nodes,inner sep=1pt,row sep=1em,column sep=1em] (M)
    {
     & A &  B & Cc & D \\
      & E &  F & G & H\\
    }
    ;
    \draw[ ->] (M-1-2.east) -- (M-1-3.west) node[midway,above,pos=0.3]{\,\tiny ab};
    \draw[ ->] (M-1-3.east) -- (M-1-4.west) node[midway,above,pos=0.3]{\,\tiny bc};
    \draw[-] (M-1-4.north east) -- (M-2-4.south east);
    \end{tikzpicture}
    
    
    \end{document}

Antwort1

Da Cc und G nicht rechtsbündig ausgerichtet sind, während D und H mehr oder weniger linksbündig ausgerichtet sind, ist es nicht möglich, beide vertikal auszurichten und sie auf halbem Weg zwischen Cc und D und auf halbem Weg zwischen G und H zu platzieren, ohne die Gesetze der Physik zu verletzen. Dies ist ein zu komplexes Projekt, um es in einem SE-Beitrag zu behandeln. Stattdessen nehme ich Cc und D als Referenzpunkte, wenn ich den Mittelpunkt finde, und G als unteren Punkt. H wird bei der Berechnung nicht verwendet.

Mithilfe der Bibliothek können Sie calcden Punkt auf halbem Weg zwischen den beiden oberen Knoten finden, eine Markierungskoordinate erstellen und die Markierung verwenden, um beim Erstellen der Linie nach unten die horizontale Position beizubehalten.

angepasste Linie

\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{matrix,calc}
\usepackage{amsmath, amsthm, amssymb,mathtools}
\begin{document}
\begin{tikzpicture}
  \matrix[matrix of math nodes,inner sep=1pt,row sep=1em,column sep=1em] (M)
  {
    & A &  B & Cc & D \\
    & E &  F & G & H\\
  }
  ;
  \draw[ ->] (M-1-2.east) -- (M-1-3.west) node[midway,above,pos=0.3]{\,\tiny ab};
  \draw[ ->] (M-1-3.east) -- (M-1-4.west) node[midway,above,pos=0.3]{\,\tiny bc};
  \draw[-] ($(M-1-4.north east)!.5!(M-1-5.north west)$) coordinate (a) -- (a |- M-2-4.south);
\end{tikzpicture}
\end{document}

verwandte Informationen