Tikzcd'de çarpık etiketler
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
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}
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}\]