tikz-cd: позиционирование метки на изогнутой стрелке

tikz-cd: позиционирование метки на изогнутой стрелке

На следующей диаграмме я хотел бы, чтобы метка G^Fна пунктирной стрелке была расположена по центру:

введите описание изображения здесь

Однако изменение, posпохоже, не работает, поскольку, по-видимому, существует «скачок» между pos=0.41и pos=0.42.

введите описание изображения здесь( pos=0.41)введите описание изображения здесь( pos=0.42)

Есть ли способ сделать метку центрированной? (На самом деле, мне интересно, почему она не центрирована по умолчанию или с помощью pos=0.5)

Ниже приведен MWE.

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}
    & A \\
    C & \widehat{C}
    \arrow["{F}", from=2-1, to=1-2]
    \arrow["{Y}"', from=2-1, to=2-2]
    \arrow["{N^F}"', "{\vdash}"{inner sep=.3ex}, from=1-2, to=2-2]
    \arrow["{G^F}"'{pos=.41}, dashed, bend right, from=2-2, to=1-2]
\end{tikzcd}

\end{document}

решение1

Это проблема с изогнутыми стрелками, когда они очень короткие. Два предложения:

  1. Увеличьте sepтак, чтобы узлы находились дальше друг от друга.
  2. Уменьшите bendугол. Я использовал bend right=15на диаграмме. (Тогда вам, вероятно, понадобится shiftи стрелка вправо.)

введите описание изображения здесь

Вот код:

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}[sep=large]
    & A \\
    C & \widehat{C}
    \arrow["F", from=2-1, to=1-2]
    \arrow["Y"', from=2-1, to=2-2]
    \arrow["N^F"', "{\vdash}"{inner sep=.3ex}, from=1-2, to=2-2]
    \arrow["G^F"', dashed, bend right=15, shift right=1.5, from=2-2, to=1-2]
\end{tikzcd}

\end{document}

решение2

Только для сравнения с xyупаковкой:

\documentclass[a4paper,12pt]{article}
\usepackage[cmtip,all]{xy}
\begin{document}
\xymatrix@R=2pc@C=3pc{ & A \ar[d]^{\vdash}\\
C \ar[ur]^F_(.70){N^F} \ar[r]_Y & \widehat{C} \ar@/_1.2pc/@{-->}[u]_{G^F}
}
\end{document}

введите описание изображения здесь

Связанный контент