Tikzcd'de çarpık etiketler

Oct 09 2020

Tikzcd kullanarak doğal dönüşüm üzerine bir diyagram çiziyordum. Ancak çıktının neden "çarpık" olduğunu bilmiyorum:

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

Aşağıdaki çarpık çıktıyı aldım:

Şimdi benzer bir kodla karşılaştırıldığında:

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

Ve güzel bir çıktı verir:

Bunu düzeltmenin bir yolu var mı?

Yanıtlar

2 Zarko Oct 09 2020 at 11:52

Ok etiketlerinin manuel olarak ayarlanmasıyla:

\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

Sorun şu ki, yüksekliği ve genişliği, yüksekliği ve genişliğinden \mathscr{O}(X)^{op}farklıdır \textbf{Set}.

tikz-cdbu kutular ok etiket konumlandırma ve yerleşimini etkiler aynı boyut, olmadığında eşit olmayan ok büker Uve D.

Tek yönlü vermek \textbf{Set}tam olarak aynı kutu \mathscr{O}(X)^{op}etmektir görünmez bir ile kullanarak .\rlap\textbf{Set}\mathscr{O}(X)^{op}\phantom

Daha önce bir boşluk ekledim Setçünkü bu şekilde daha iyi göründüğünü düşündüm. Kaldırabilir veya beğeninize göre ayarlayabilirsiniz. Ayrıca, iki hayali ok kullanmak yerine, nameaşağıdaki kodda yaptığım gibi, okun üstündeki veya altındaki boşluğu kullanabilirsiniz . Merkez okun kavisli oklara daha yakın olmasını istiyorsanız shorten <=ve shorten >=negatif değerlerle kullanabilirsiniz.

\[\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}\]