Uma linha vertical separa as entradas da matriz no ambiente da matriz tikzpicture?

Uma linha vertical separa as entradas da matriz no ambiente da matriz tikzpicture?

Como fazemos uma linha vertical perfeita como a linha na matriz quadrada para separar entre Cc e G à esquerda e D e H à direita no ambiente da matriz tikzpicture?

A linha deve ser melhor definida perfeitamente no meio do caminho entre Cc e G à esquerda e D e H à direita.

Eu gostaria de me ater ao ambiente de matriz tikzpicture, se possível.

Obrigado por quaisquer sugestões/comentários.

Aqui está minha tentativa fracassada. insira a descrição da imagem aqui

Aqui está meu código Tex:

\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}

Responder1

Como Cc e G não estão alinhados à direita, enquanto D e H estão mais ou menos alinhados à esquerda, não é possível torná-los verticais e tê-los a meio caminho entre Cc e D e a meio caminho entre G e H sem violar as leis de física, que é um projeto muito complexo para ser abordado em uma postagem de SE. Em vez disso, tomo Cc e D como pontos de referência ao encontrar o ponto intermediário e G como ponto inferior. H não é usado no cálculo.

Você pode usar a calcbiblioteca para encontrar o ponto a meio caminho entre os dois nós superiores, criar uma coordenada de marcador e usar o marcador para manter a posição horizontal ao criar a linha até a parte inferior.

linha ajustada

\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}

informação relacionada