tikzcd의 기울어 진 레이블
tikzcd를 사용하여 자연 변형에 대한 다이어그램을 그렸습니다. 그러나 출력이 "비뚤어진"이유를 모르겠습니다.
\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}
다음과 같은 왜곡 된 출력이 있습니다.
이제 비슷한 코드와 비교할 때 :
\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}
그리고 아름다운 출력을 제공합니다.
이 문제를 해결할 수있는 방법이 있습니까?
답변
화살표 레이블 위치를 수동으로 조정하면 :
\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}
문제는의 높이와 너비가의 높이와 너비와 \mathscr{O}(X)^{op}다르다는 것입니다 \textbf{Set}.
tikz-cd그 박스는 화살표 라벨의 위치와 배치에 영향을 동일한 크기가 아닌 경우 불균등 화살표 굴절 U및 D.
한 가지 방법은 포기하기 \textbf{Set}로 동일한 상자를 \mathscr{O}(X)^{op}하는 것입니다 보이지 않는로 사용 .\rlap\textbf{Set}\mathscr{O}(X)^{op}\phantom
나는 Set그것이 더 좋아 보인다고 생각했기 때문에 전에 공백을 추가했습니다 . 원하는대로 제거하거나 조정할 수 있습니다. 또한 두 개의 가상 화살표를 사용하는 대신 name아래 코드에서했던 것처럼 화살표 위 또는 아래 공간 을 사용할 수 있습니다. 당신이 원하는 경우 중앙 화살표 가까이 사용할 수있는 곡선 화살표로 할 수 shorten <=와 shorten >=음의 값으로.
\[\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}\]