
¿Cómo hacemos una línea vertical perfecta como línea en la matriz cuadrada para separar entre Cc y G a la izquierda y D y H a la derecha en el entorno de matriz tikzpicture?
Lo mejor será que la línea se establezca perfectamente a medio camino entre Cc y G a la izquierda y D y H a la derecha.
Me gustaría ceñirme al entorno de matriz tikzpicture si es posible.
Gracias por cualquier sugerencia/comentario.
Aquí está mi 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}
Respuesta1
Dado que Cc y G no están alineados a la derecha, mientras que D y H están más o menos alineados a la izquierda, no es posible hacerlo vertical y tenerlo a medio camino entre Cc y D y a medio camino entre G y H sin violar las leyes de física, que es un proyecto demasiado complicado para abordarlo en una publicación de SE. En cambio, tomo Cc y D como puntos de referencia para encontrar el punto medio y G para el punto inferior. H no se utiliza en el cálculo.
Puede usar la calc
biblioteca para encontrar el punto medio entre los dos nodos superiores, crear una coordenada de marcador y usar el marcador para mantener la posición horizontal al crear la línea hacia abajo.
\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}