a seta tikz-cd entre as setas é assimétrica (muito curta em uma direção)

a seta tikz-cd entre as setas é assimétrica (muito curta em uma direção)

Eu quero desenhar uma flecha (A) entre duas setas (BeC) em tikz-cd, de modo queAestá tocando diretamente ambosBeC, como no diagrama a seguir.

setas corretas

O código abaixo parece uma tentativa sensata de fazer esse diagrama, mas é assimétrico: a seta do meio não toca a seta inferior.

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

\begin{document}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1}, from=1-1, to=1-3, bend right]
    \arrow[from=0, to=1]
\end{tikzcd}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1}, from=1-1, to=1-3, bend right]
    \arrow[from=1, to=0]
\end{tikzcd}

\end{document}

Este é o resultado:

setas incorretas

(O exemplo na parte inferior tem a seta do meio na direção oposta para comparação. Ele demonstra que o problema é a seta inferior, e não a seta alvo.)

Por que isso está acontecendo e como posso corrigir isso?

Observe que eu façonãoquero simplesmente shortena seta do meio com comprimento negativo: a solução deve funcionar com qualquer par de setas e não quero ter que adivinhar quanto encurtar a seta do meio. (Além disso, em alguns casos, quero encurtar a seta do meio simetricamente, o que é estranho se uma direção precisar de ajustes extras aplicados a ela.)

Responder1

Isso é causado pelo texto do rótulo vazio acima da seta inferior. Substituir o texto do rótulo ""{name=1}por ""{name=1, below}tipografia abaixo da seta resolve o seu problema.

Veja os dois últimos exemplos no manual de tikzcd, sec. 2.3Colocação absoluta de setas.

Exemplo completo:

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

\begin{document}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1, below}, from=1-1, to=1-3, bend right]
    \arrow[from=0, to=1]
\end{tikzcd}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1, below}, from=1-1, to=1-3, bend right]
    \arrow[from=1, to=0]
\end{tikzcd}

\end{document}

insira a descrição da imagem aqui

informação relacionada