tikzcd의 기울어 진 레이블

Oct 09 2020

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}

그리고 아름다운 출력을 제공합니다.

이 문제를 해결할 수있는 방법이 있습니까?

답변

2 Zarko Oct 09 2020 at 11:52

화살표 레이블 위치를 수동으로 조정하면 :

\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

문제는의 높이와 너비가의 높이와 너비와 \mathscr{O}(X)^{op}다르다는 것입니다 \textbf{Set}.

tikz-cd그 박스는 화살표 라벨의 위치와 배치에 영향을 동일한 크기가 아닌 경우 불균등 화살표 굴절 UD.

한 가지 방법은 포기하기 \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}\]