考虑以下交换图的代码
\begin{tikzcd}[column sep=50pt]
A \arrow[swap]{d}{\text{example}}\arrow{r} & B \arrow[leftarrow]{dl}\\
C
\end{tikzcd}
标签“example”出现在向下箭头的左侧。我希望标签“example”写在“箭头上”(如果有意义的话,就像水平箭头一样)。我该如何实现?
编辑:换句话说,我想将文本“示例”向左旋转,使其与向下箭头平行。
答案1
您可以将箭头的标签放在\rotatebox
:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=50pt]
A \arrow[swap]{d}{\hspace*{-0.7cm}\rotatebox{90}{test}}\arrow{r} & B \arrow[leftarrow]{dl}\\
C
\end{tikzcd}
\end{document}
对于较长的文本:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=50pt,row sep=6em]
A \arrow[swap]{d}{\hspace*{-0.4cm}\rotatebox{90}{longer text}}\arrow{r} & B \arrow[leftarrow]{dl}\\
C
\end{tikzcd}
\end{document}
正如 @marmot 指出的那样,还有一种更简单的方法:
\documentclass{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\begin{document}
\begin{tikzcd}[column sep=50pt]
A \arrow[swap,"\text{test}" {rotate=90,above}]{d}\arrow{r} & B \arrow[leftarrow]{dl}\\
C
\end{tikzcd}
\begin{tikzcd}[column sep=50pt,row sep=5em]
A \arrow[swap,"\text{longer text}" {rotate=90,above}]{d}\arrow{r} & B \arrow[leftarrow]{dl}\\
C
\end{tikzcd}
\end{document}