
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.
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 calc
biblioteca 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.
\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}