![Закругленная стрелка в tikzcd с текстом на ней](https://rvso.com/image/328811/%D0%97%D0%B0%D0%BA%D1%80%D1%83%D0%B3%D0%BB%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%20tikzcd%20%D1%81%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%BC%20%D0%BD%D0%B0%20%D0%BD%D0%B5%D0%B9.png)
Это продолжение моегопредыдущий вопрос. Я хотел бы нарисовать прямоугольную стрелку с закругленными углами в tikzcd и хотел бы поместить текст на эту стрелку. Вот моя попытка:
\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{tikz-cd}
\usepackage[english]{babel}
\usepackage{relsize}
\tikzset{nodes={inner sep=2pt}}
\usepackage{blindtext}
\begin{document}
\[\begin{tikzcd}[sep=34pt]
B \ar{r}[swap]{g}
\ar[to path={ -- ([yshift=-4ex]\tikztostart.south) -| (\tikztotarget)},
rounded corners=12pt]{rr}
& B' \ar{r}[swap]{g'}
\ar[phantom]{d}[pos=0.45]{\mathsmaller{g' \circ g}} & B'' \\
& \phantom{.} &
\end{tikzcd}\]
\blindtext
\end{document}
Проблема в том, что фантомный узел создает дополнительное пустое пространство в tikzpicture, так что текст после него не следует сразу за ним.
Существует «грязное» решение с использованием \vspace{-10mm} после tikzpicture, но оно не очень точное и неэлегантное.
решение1
Вы можете добавить узел в конце рисования этой картинки. Но это все еще требует ручного позиционирования метки. По крайней мере, здесь вы не создаете лишнего пространства:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzcd}[sep=large, execute at end picture={\node[below = 1mm of tikz@f@1-1-2] {$\scriptstyle g' \circ g$};}]
B \ar{r}[swap]{g\vphantom{'}}
\ar[to path={ -- ([yshift=-4ex]\tikztostart.south) -| (\tikztotarget)},
rounded corners=12pt]{rr}
& B' \ar{r}[swap]{g'} & B'' \\
\end{tikzcd}
\end{document}