Globuläre 3-Zellen und höhere Diagramme im xy-Bild

Globuläre 3-Zellen und höhere Diagramme im xy-Bild

Gibt es eine gute/standardisierte Möglichkeit, globuläre 3-Zellen auf xy-picdie gleiche Weise zu formatieren wie 2-Zellen?

Für 2-Zellen erzeugt der Befehl \rtwocell die erforderlichen Pfeile, und eine Modifikation, die es einem ermöglicht, für natürliche Zahlen n einzugeben \rncell, wäre unglaublich für das Schreiben von Kategorietheorie-Papieren undnLabSeiten.

Ich habe einen ... gefundenSeitebeschreibt im Jahr 2004, wie man globuläre 3-Zellen definiert, aber xy-picdie Syntax scheint sich seitdem erheblich geändert zu haben (oder zumindest bin ich zu grün hinter den Ohren, um den Code dort zu lesen und ihn in etwas zu übersetzen, das in meiner Version von funktioniert xy-pic). Kann jemand, der sich mit LaTeX besser auskennt, diese Codes so überarbeiten, dass sie mit moderner Syntax funktionieren xy-pic?

Jede Strategie, die sich auf höhere Zellen mit Pfeilen zwischen Pfeilen zwischen Pfeilen zwischen ... verallgemeinern lässt, wäre schön, aber eine Lösung für 3-Zellen wäre trotzdem sehr willkommen. Bitte beachten Sie auch, dass tikzLösungen für mich aufgrund mangelnder Vertrautheit mit der Syntax etwas unverständlich sein werden. Wenn es jedoch keine xy-picLösung gibt (und kein barmherziger Samariter bereit ist, eine zu erstellen) und tikzeine elegante Lösung zur Hand hat, kann ich eine neue Syntax lernen und ein tikzDiagramm verwenden.


Der folgende Code

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

erzeugt das folgende Diagramm

und es ist relativ einfach (aber zeitaufwändig), weiter zu verallgemeinern, aber das ist ziemlich zusammengeschustert und bei größeren Diagrammen sehr zeitaufwändig, sodass eine elegantere Lösung dennoch sehr willkommen wäre.

Antwort1

Mittikz-cdes ist nicht schwer.

Sie &werden verwendet, um die Zellen zu trennen (und \\um die Zeilen zu trennen, wenn Sie mehr Zeilen haben).

\arrow[rr, bend left=40, "F", ""{name=U}]bedeutet „Zeichne einen um 40 Grad nach links gebogenen Pfeil mit der Beschriftung „F“ und bezeichne den Mittelpunkt mit „U“.“

\arrow[Rightarrow, "\Theta", shorten <=2pt, shorten >=2pt, bend left=40, from=U, to=D]bedeutet „Zeichnen Sie einen Rechtspfeil, beschriften Sie ihn mit \Theta, kürzen Sie die Spitze und das Ende des Pfeils ein wenig (2pt) und biegen Sie ihn vom Punkt „U“ nach links zum Punkt „D“.“

Ich weiß nichts über Kugeldiagramme, ich habe lediglich ein Beispiel für die Verwendung geschrieben tikz-cd.

Bearbeiten:In besonderen Fällen kann eine reine TikZ-Lösung praktischer sein.

Ich habe eins mit einem TikZ hinzugefügt matrix. Wenn Sie es verwenden, ohne es zu laden tikz-cd, müssen Sie es laden \usetikzlibrary{matrix}.

Mit können Sie auf die Matrixzellen verweisen matrixname-rownumber-columnnumber.

\node[above=16pt of mymatr, inner sep=12pt] (UP) {};bedeutet "positioniere den Knoten UP16pt oberhalb von mymatr, da der Knoten einen leeren Text hat, habe ich ihm eine Höhe von gegeben inner sep=12pt."

\draw[double distance=2pt, -{Implies}] (UP.south) -- (DOWN.north);bedeutet „Zeichnen Sie einen Pfeil mit ImpliesPfeilspitze und mit 2pt Abstand zwischen den beiden Pfeilreihen, zwischen dem Südpunkt von Knoten UPund dem Nordpunkt von Punkt DOWN.“

\draw ([xshift=-10pt]UP.south) edge[bend right=60, double distance=2pt, -{Implies}] ([xshift=-10pt]DOWN.north);bedeutet „Zeichnen Sie einen Impliesum 60 Grad nach rechts gebogenen Pfeil von einem horizontal um 10 pt von verschobenen Punkt UP.southzu einem horizontal um 10 pt von verschobenen Punkt 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}

Bildbeschreibung hier eingeben

verwandte Informationen