
Gibt es eine gute/standardisierte Möglichkeit, globuläre 3-Zellen auf xy-pic
die 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-pic
die 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 tikz
Lösungen für mich aufgrund mangelnder Vertrautheit mit der Syntax etwas unverständlich sein werden. Wenn es jedoch keine xy-pic
Lösung gibt (und kein barmherziger Samariter bereit ist, eine zu erstellen) und tikz
eine elegante Lösung zur Hand hat, kann ich eine neue Syntax lernen und ein tikz
Diagramm 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-cd
es 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 UP
16pt 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 Implies
Pfeilspitze und mit 2pt Abstand zwischen den beiden Pfeilreihen, zwischen dem Südpunkt von Knoten UP
und 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 Implies
um 60 Grad nach rechts gebogenen Pfeil von einem horizontal um 10 pt von verschobenen Punkt UP.south
zu 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}