Flechas paralelas en diagrama conmutativo en Tikz

Flechas paralelas en diagrama conmutativo en Tikz

Me gustaría hacer que todas las flechas que deberían ser paralelas en mi diagrama conmutativo, en realidad sean paralelas. Aquí está mi diagrama:

  \begin{center}
    \begin{tikzpicture}
    \matrix (m) [matrix of math nodes,row sep=3em,column sep=4em,minimum width=3em]
    {
        F(\mu F) & FA \\
        \mu F & A \\};
    \path[-stealth]
    (m-1-1) edge node [left] {$ in_{F} $} (m-2-1)
    edge  node [above] {$F(h)$} (m-1-2)
    (m-2-1.east) edge node [above] {$h$}
    node [above] {} (m-2-2)
    (m-1-2) edge node [right] {$ g $} (m-2-2)
    ;
    \end{tikzpicture}
\end{center}

ingrese la descripción de la imagen aquí

¿Cómo puedo eliminar esto y obtener un cuadrado adecuado?

Respuesta1

En lugar de una matriz, utilice una extensión especializada de TikZ, a saber tikz-cd:

\documentclass[a4paper,12pt]{article}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}
F(\mu F) \arrow[r, "F(h)"] \arrow[d, "\mathit{in}_{F}"'] & FA \arrow[d, "g"] \\
\mu F \arrow[r, "h"] & A
\end{tikzcd}
\end{document}

La sintaxis es más natural, las etiquetas tienen el tamaño adecuado y las flechas son como en la fuente matemática general.

ingrese la descripción de la imagen aquí

Respuesta2

ingrese la descripción de la imagen aquí

\documentclass[border=3mm]{standalone}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}[row sep=huge] % <---
    F(\mu F)
    \arrow{r}{F(h)} 
    \arrow{d}{in_F}
&
    FA
    \arrow{d}{g}   \\
%
    A
    \arrow{r}{h}
&
    (\mu F)
\end{tikzcd}
\end{document}

Oh, la respuesta es casi la misma que la desebastian:-(. Bueno, el diagrama es un poco más cuadrado :-)

Respuesta3

En realidad, hay un cambio bastante pequeño que solucionaría cosas que pueden interesarle, ya que también es útil en otras partes de LaTeX. El problema aquí es que \mutiene un descendente, mientras FAque no. Puede obtener un cuadro que tenga "todas las alturas" asociadas con letras altas y descendentes, pero sin ancho a través de \strut, por lo que:

    F(\mu F) & FA\strut \\
    \mu F & A\strut

El resto del documento puede permanecer exactamente igual. Si se siente paranoico, puede agregar \strutcorreos electrónicos a las otras celdas, así como prepararlas para el futuro en caso de que cambie su contenido más adelante.

De manera más general, puede usarlo \vphantompara cuadros sin ancho con los mismos parámetros de altura y profundidad que otro cuadro determinado y \hphantompara cuadros sin alto con el mismo ancho que otro cuadro determinado. Entonces la versión verdaderamente paranoica sería

    F(\mu F)\vphantom{FA} & FA\vphantom{F(\mu F)} \\
    \mu F\vphantom{A} & A\vphantom{\mu F}

lo que garantizaría que tuviera la misma altura y profundidad en todas las columnas de cada fila. (También tendría la ventaja \strutde que es "mínimo" con respecto a la altura y la profundidad; por ejemplo, si nada en una fila determinada tuviera descendientes, agregar un \struten todas partes le daría profundidad, pero usarlo \vphantomcomo se indicó anteriormente no.)

información relacionada