这是我的上一个问题。我想在 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 中产生了额外的空白,因此它后面的文本不会直接出现在它后面。
有一个在 tikzpicture 后使用 \vspace{-10mm} 的“肮脏”解决方案,但这不是很精确也不优雅。
答案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}