Вертикальная линия разделяет записи матрицы в матричной среде tikzpicture?

Вертикальная линия разделяет записи матрицы в матричной среде tikzpicture?

Как сделать идеальную вертикальную линию в качестве линии в квадратной матрице, разделяющей Cc и G слева и D и H справа в матричной среде tikzpicture?

Лучше всего расположить линию строго посередине между Cc и G слева и D и H справа.

Я бы хотел придерживаться среды матрицы tikzpicture, если это возможно.

Спасибо за любые предложения/комментарии.

Вот моя неудачная попытка. введите описание изображения здесь

Вот мой 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}

решение1

Поскольку Cc и G не выровнены по правому краю, тогда как D и H более или менее выровнены по левому краю, невозможно сделать его одновременно вертикальным и посередине между Cc и D и посередине между G и H, не нарушая законы физики, что слишком сложно для обсуждения в посте SE. Вместо этого я беру Cc и D в качестве опорных точек при поиске средней точки, а G — в качестве нижней точки. H не используется в расчетах.

Вы можете использовать calcбиблиотеку, чтобы найти точку посередине между двумя верхними узлами, создать координаты маркера и использовать маркер для удержания горизонтального положения при создании линии вниз.

скорректированная линия

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

Связанный контент