.png)
Я хочу нарисовать стрелку (А) между двумя стрелками (БиС) в tikz-cd, так чтоАнапрямую касается обоихБиС, как на следующей диаграмме.
Приведенный ниже код кажется разумной попыткой построения этой диаграммы, но он асимметричен: средняя стрелка не касается нижней стрелки.
\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}
Вот результат:
(В примере внизу средняя стрелка направлена в противоположном направлении для сравнения. Это показывает, что проблема заключается в нижней стрелке, а не в целевой.)
Почему это происходит и как это исправить?
Обратите внимание, что я делаюнетхочу просто shorten
среднюю стрелку с отрицательной длиной: решение должно работать с любой парой стрелок, и я не хочу угадывать, насколько укоротить среднюю стрелку. (Кроме того, в некоторых случаях я хочу укоротить среднюю стрелку симметрично, что неудобно, если к одному направлению нужно применить дополнительную корректировку.)
решение1
Это вызвано пустым текстом метки над нижней стрелкой. Замена ""{name=1}
на ""{name=1, below}
typesets текст метки под стрелкой, следовательно, решает вашу проблему.
См. последние два примера в руководстве tikzcd
, раздел 2.3.Абсолютное размещение стрелок.
Полный пример:
\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}