Schräge Etiketten in tikzcd

Oct 09 2020

Ich habe mit tikzcd ein Diagramm über die natürliche Transformation gezeichnet. Ich weiß jedoch nicht, warum die Ausgabe "verzerrt" war:

\documentclass{article}
\usepackage{mathrsfs}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}
\mathscr{O}(X)^{op}
\arrow[r, bend left, "\Lambda A"]
\arrow[r, bend right, swap, "\Lambda A'"]
\arrow[r, phantom, bend left, shift right=0.2ex, ""{name=U}]
\arrow[r, phantom, bend right, shift left=0.2ex, swap, ""{name=D}]
&\textbf{Set}
\arrow[Rightarrow, from=U, to=D, "\Lambda f"]
\end{tikzcd}\]
\end{document}

Ich habe die folgende verzerrte Ausgabe erhalten:

Im Vergleich zu einem ähnlichen Code:

\documentclass{article}
\usepackage{mathrsfs}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}
\mathscr{A}
\arrow[r, bend left, "F"]
\arrow[r, bend right, swap, "G"]
\arrow[r, phantom, bend left, shift right=0.2ex, ""{name=U}]
\arrow[r, phantom, bend right, shift left=0.2ex, swap, ""{name=D}]
&\mathscr{B}
\arrow[Rightarrow, from=U, to=D, "\alpha"]
\end{tikzcd}\]
\end{document}

Und es gibt eine schöne Ausgabe:

Gibt es eine Möglichkeit, dies zu beheben?

Antworten

2 Zarko Oct 09 2020 at 11:52

Mit manueller Anpassung der Pfeile beschriftet die Positionen:

\documentclass{standalone}%article
\usepackage{mathrsfs}
\usepackage{tikz-cd}

\begin{document}
%\[
\begin{tikzcd}
\mathscr{O}(X)^{op}
    \ar[r, bend  left, pos=0.47, "\Lambda A"]
    \ar[r, bend right, pos=0.47, swap, "\Lambda A'"]
    \ar[r, phantom, bend left, ""{name=U}]
    \ar[r, phantom, bend right, pos=0.47, ""{name=D}]
        &   \textbf{Set}
                \ar[Rightarrow, from=U, to=D, "\Lambda f"]
\end{tikzcd}
%\]
\end{document}

2 SandyG Dec 14 2020 at 04:26

Das Problem ist, dass sich Höhe und Breite von \mathscr{O}(X)^{op}von Höhe und Breite von unterscheiden \textbf{Set}.

tikz-cdBiegt die Pfeile ungleichmäßig, wenn diese Felder nicht dieselbe Größe haben, was sich auf die Positionierung der Pfeilbeschriftungen und die Platzierung von Uund auswirkt D.

Eine Möglichkeit zu geben , \textbf{Set}die genau die gleiche Box wie \mathscr{O}(X)^{op}, ist \rlapdie \textbf{Set}mit einem unsichtbaren \mathscr{O}(X)^{op}verwendet \phantom.

Ich habe vorher ein Leerzeichen hinzugefügt, Setweil ich dachte, dass es so besser aussieht. Sie können entfernen oder nach Ihren Wünschen anpassen. Anstatt die beiden Phantompfeile zu verwenden, können Sie auch namedas Leerzeichen über oder unter dem Pfeil verwenden, wie ich es im folgenden Code getan habe. Wenn Sie das Zentrum Pfeil , um näher an den gebogenen Pfeilen möchten , können Sie verwenden , shorten <=und shorten >=mit negativen Werten.

\[\begin{tikzcd}
\mathscr{O}(X)^{op}
\arrow[r, bend left, "\Lambda A", ""{name=U, below}]
\arrow[r, bend right, swap, "\Lambda A'", ""{name=D, above}]
&\rlap{\textbf{\ Set}}\phantom{\mathscr{O}(X)^{op}}
\arrow[Rightarrow, from=U, to=D, "\Lambda f"]
\end{tikzcd}\]