.png)
Eu quero desenhar uma flecha (A) entre duas setas (BeC) em tikz-cd, de modo queAestá tocando diretamente ambosBeC, como no diagrama a seguir.
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:
(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 shorten
a 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}