移动 tikzcd 中标签的位置

移动 tikzcd 中标签的位置

请参阅下面的代码

\documentclass[12pt,reqno,a4paper]{amsart}

\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{hyperref}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{color}
\pagestyle{myheadings}
\author{someone}
\title{something}
\begin{document} 
    
\[  \begin{tikzcd}[sep=small] 
        & U_{\alpha\beta\gamma} \arrow[dd, "{\rm pr}_{13}"] \arrow[rr, "{\rm pr}_{23}"] \arrow[ld, "{\rm pr}_{12}"'] &  & U_{\beta\gamma} \arrow[dd] \arrow[ld] \\  U_{\alpha\beta} \arrow[dd] \arrow[rr] & & U_\beta \arrow[dd] & \\
        & U_{\alpha\gamma} \arrow[rr] \arrow[ld] & & U_\gamma \arrow[ld]  \\
        U_\alpha \arrow[rr] & & U & 
    \end{tikzcd}\]
\end{document}

这段代码给出了下图在此处输入图片描述

箭头 pr_{13} 的标签与水平箭头重叠。

有没有办法通过将标签 pr_{13} 移到比当前位置更高的位置来解决此问题?

答案1

标签放置不当并不是唯一的问题。您还想在“后层”中隐藏部分箭头。无论如何,添加pos=0.3或一些其他因素。

我不会使用sep=small,这里我只是减少列分隔。

请注意,最后一个箭头绘制为leftarrow,因此它被放置在稍后的位置并crossing over能起作用。

\documentclass[12pt,reqno,a4paper]{amsart}
%\usepackage[english]{babel}% why?

\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{mathrsfs}
\usepackage{tikz-cd}
\usepackage{hyperref}

\newcommand{\pr}{\mathrm{pr}}

\begin{document} 
    
\[
\begin{tikzcd}[column sep=small]
  & U_{\alpha\beta\gamma}
    \arrow[dd, "\pr_{13}",pos=0.3]
    \arrow[rr, "\pr_{23}"]
    \arrow[ld, "\pr_{12}"']
 && U_{\beta\gamma} \arrow[dd] \arrow[ld]
\\
    U_{\alpha\beta} \arrow[dd] \arrow[rr,crossing over] 
 && U_\beta
\\
  & U_{\alpha\gamma} \arrow[rr] \arrow[ld]
 && U_\gamma \arrow[ld]
\\
    U_\alpha \arrow[rr] && U \arrow[leftarrow,uu,crossing over]
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

相关内容