Diagramas globulares de 3 celdas y superiores en xy-pic

Diagramas globulares de 3 celdas y superiores en xy-pic

¿Existe una forma agradable/estandarizada de formatear globulares de 3 celdas de xy-picla misma manera que podemos hacerlo con 2 celdas?

Para 2 celdas, el comando \rtwocell genera las flechas requeridas, y una modificación que permita escribir \rncellnúmeros naturales n sería increíble para escribir artículos de teoría de categorías ynLabpáginas.

Encontre unpáginadescribiendo cómo definir 3 celdas globulares en 2004, pero xy-picparece haber cambiado la sintaxis significativamente desde entonces (o al menos soy demasiado verde detrás de las orejas para leer el código allí y traducirlo a algo que funcione en mi versión de xy-pic). ¿Puede alguien con más conocimientos de LaTeX renovar estos códigos para que funcionen con xy-picuna sintaxis moderna?

Cualquier estrategia que se generalice a celdas superiores con flechas entre flechas entre flechas entre... sería hermosa, pero aún así se agradece mucho una solución para 3 celdas. También tenga en cuenta que tikzlas soluciones me resultarán algo incomprensibles debido a la falta de familiaridad con la sintaxis; sin embargo, si no hay una xy-picsolución (y ningún samaritano amable dispuesto a crear una) y tikztengo una solución elegante a mano, puedo aprender algo nuevo. sintaxis y utilizar un tikzdiagrama.


El siguiente código

\xymatrix@R5mm@C10mm{ & \ar@{=>}@/^.7pc/[dd]^\Theta \ar@{=>}@/_.7pc/[dd]_{\;\;\;\Theta'} \\ A \ar@/^2.0pc/[rr]^F \ar@/_2.1pc/[rr]_G & {\substack{\mathscr{M} \\ \rightsquigarrow}} & B \\ & }

genera el siguiente diagrama

y es relativamente sencillo (pero requiere mucho tiempo) generalizar más, pero esto es bastante complicado y requiere mucho tiempo para diagramas más grandes, por lo que una solución más elegante aún sería muy apreciada.

Respuesta1

Contikz-cdno es difícil.

Se &utilizan para separar las celdas (y \\para separar las filas, si tiene más filas).

\arrow[rr, bend left=40, "F", ""{name=U}]significa "dibuja una flecha, doblada hacia la izquierda 40 grados, con la etiqueta "F" y llama al punto medio "U"."

\arrow[Rightarrow, "\Theta", shorten <=2pt, shorten >=2pt, bend left=40, from=U, to=D]significa "dibuja una flecha derecha, etiquetándola con \Theta, acortando un poco (2 puntos) la punta y la cola de la flecha, doblándose hacia la izquierda desde el punto llamado "U" hasta el punto llamado "D"."

No sé nada sobre diagramas globulares, solo escribí un ejemplo de cómo usarlos tikz-cd.

Editar:para casos especiales, puede resultar conveniente una solución pura de TikZ.

Agregué uno con TikZ matrix. Si lo usas sin cargar tikz-cd, tienes que cargar \usetikzlibrary{matrix}.

Puede consultar las celdas de la matriz con matrixname-rownumber-columnnumber.

\node[above=16pt of mymatr, inner sep=12pt] (UP) {};significa "colocar el nodo UP16 puntos por encima de mymatr, dado que el nodo tiene un texto vacío, le he dado una altura con inner sep=12pt."

\draw[double distance=2pt, -{Implies}] (UP.south) -- (DOWN.north);significa "dibujar una flecha, con Impliespunta de flecha, y con una distancia de 2 puntos entre las dos filas de flechas, entre el punto sur del nodo UPy el punto norte del punto DOWN".

\draw ([xshift=-10pt]UP.south) edge[bend right=60, double distance=2pt, -{Implies}] ([xshift=-10pt]DOWN.north);significa "dibujar una Impliesflecha, doblada a la derecha 60 grados, desde un punto desplazado horizontalmente -10 puntos desde UP.southhasta un punto desplazado horizontalmente -10 puntos desde DOWN.north".

\documentclass{article}
\usepackage{amsmath,amsfonts, amssymb}
\usepackage{tikz-cd}
\usetikzlibrary{positioning, arrows.meta}

\begin{document}
    \[
        \begin{tikzcd}
            A
            \arrow[rr, bend left=40, "F", ""{name=U}]
            \arrow[rr, bend right=40, "G", swap, ""{name=D}] 
            & 
            M 
            & 
            B 
            \arrow[rr, bend left=40, "A", ""{name=A}]
            \arrow[rr, bend right=40, "B", swap, ""{name=B}]
            & 
            \Rrightarrow
            & 
            \bullet
            \arrow[Rightarrow, "\Theta", shorten <=2pt, shorten >=2pt, bend left=40, from=U, to=D]
            \arrow[Rightarrow, "\Theta'", shorten <=2pt, shorten >=2pt, bend right=40, swap, from=U, to=D]
            \arrow[Rightarrow, "\Phi", shorten <=2pt, shorten >=2pt, bend left=40, from=A, to=B]
            \arrow[Rightarrow, "\Phi'", shorten <=2pt, shorten >=2pt, bend right=40, swap, from=A, to=B]
        \end{tikzcd}    
    \]
    \[
        \begin{tikzpicture}
            \matrix[matrix of math nodes,
                nodes in empty cells]
                (mymatr) {
                \bullet &[20pt] \Rrightarrow &[10pt] \Rrightarrow &[20pt] \bullet\\
                };
            \node[above=16pt of mymatr, inner sep=12pt] (UP) {};
            \node[below=16pt of mymatr, inner sep=12pt] (DOWN) {};
            \draw[->, rounded corners=40pt] (mymatr-1-1) -- (UP.north) -- (mymatr-1-4);
            \draw[->, rounded corners=40pt] (mymatr-1-1) -- (DOWN.south) -- (mymatr-1-4);
            \draw[double distance=2pt, -{Implies}] (UP.south) -- (DOWN.north);
            \draw ([xshift=10pt]UP.south) edge[bend left=60, double distance=2pt, -{Implies}] ([xshift=10pt]DOWN.north);
            \draw ([xshift=-10pt]UP.south) edge[bend right=60, double distance=2pt, -{Implies}] ([xshift=-10pt]DOWN.north);
        \end{tikzpicture}    
    \]
\end{document}

ingrese la descripción de la imagen aquí

información relacionada