使用 tikzcd 绘制交换图内的箭头

使用 tikzcd 绘制交换图内的箭头
\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{extsizes}
\usepackage{blindtext}
\textheight 9.3in \textwidth 6.5in
\calclayout
\usepackage{mathtools}
\usepackage{amsmath,amsthm,amsfonts,amssymb} 
\usepackage{hyperref}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage[normalem]{ulem} 
\usepackage{tikz-cd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel} 
\usepackage{color}
\pagestyle{myheadings}
\begin{document}

\begin{tikzcd}
 A \arrow[dd, "p"'] \arrow[ddrr, phantom, "\Rightarrow"] \arrow[rr, "q"] &  & B \arrow[dd, "r"] \\
 &  &  \\
 C \arrow[rr, "s"] &  & D
 \end{tikzcd}

    \begin{tikzcd}
A \arrow[dd, "p"'] \arrow[rrdd, "q"]    &  & \\
&  &                                                  \\
B \arrow[rr, "r"] &  & C                                         
\end{tikzcd}

 \end{document}

这就是我为了得到交换图而写的。

我想在图表内添加一个箭头 (\Rightarrow),从左下角到右上角。有人能帮我做这个吗?我试过使用“phantom”添加,但没有按预期效果。我希望它从左上角指向右下角(或从左下角指向右上角)。

答案1

你可以shorten随心所欲Rightarrow

对于三角形,您可以命名标签并向其绘制箭头。

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{tikz-cd}
\tikzcdset{row sep/normal=50pt, column sep/normal=50pt}

\begin{document}

\begin{tikzcd}
    A\arrow[d, "p"']\arrow[Rightarrow, shorten >=25pt, shorten <=25pt, dr]\arrow[r, "q"] &  B\arrow[d, "r"]\\
    C\arrow[r, "s", swap] & D
\end{tikzcd}

\begin{tikzcd}
    A\arrow[d, "p"']\arrow[r, "q"] &  B\arrow[d, "r"]\\
    C\arrow[r, "s", swap]\arrow[Rightarrow, shorten >=25pt, shorten <=25pt, ur] & D
\end{tikzcd}

\begin{tikzcd}
    A\arrow[d, "p"']\arrow[rd, "q"{name=M}] \\
    B\arrow[r, "r", swap]\arrow[Rightarrow, shorten >=10pt, shorten <=10pt, to=M] & C
\end{tikzcd}

\end{document}

在此处输入图片描述

答案2

为什么不简单地这样来指定图表通勤?无关:我擅自简化了您的代码,特别是删除了不必要的包(已由另一个包加载)。

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{extsizes}
\usepackage{blindtext}
\textheight 9.3in \textwidth 6.5in
\calclayout
\usepackage{mathtools}
\usepackage{amsthm,amssymb}
\usepackage{hyperref}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage[normalem]{ulem}
\usepackage{tikz-cd}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\pagestyle{myheadings}

\begin{document}

\begin{tikzcd}[row sep = large, column sep = large]
 A \arrow[d, "p"'] \arrow[r, "q"] & B \arrow[d, "r"] \\
 C \arrow[ur, phantom, "\scalebox{1.5}{$\circlearrowleft$}" description]\arrow[r, "s"] & D
 \end{tikzcd}

 \end{document} 

在此处输入图片描述

答案3

description您可以使用幻影箭头,并通过和位于中间的标签sloped

\documentclass[12pt,reqno,a4paper]{amsart}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}[sep=huge]
A \arrow[dr,phantom,"\to" description, sloped]
  \arrow[d, "p"'] \arrow[r, "q"] & B \arrow[d, "r"] \\
C \arrow[r, "s"] & D
\end{tikzcd}

\end{document}

在此处输入图片描述

答案4

这里有两个使用xy包的版本。第一种模式有经典提示(见下面的示例),

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage[all]{xy}
\usepackage{amssymb}
\newcommand{\RLongrightarrow}{\rotatebox{45}{$\Longrightarrow$}}
\usepackage{graphicx}
\begin{document}
\xymatrix@R=3pc@C=3pc{\ar @{} [dr] |{\RLongrightarrow}
A \ar[d] \ar[r] & B \ar[d] \\
C \ar[r] & D}
\end{document}

第二个有相同的提示tikz-cd,我之前忘记了在哪里添加标签。请参阅下面的代码和图片:

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage[all,cmtip]{xy}
\usepackage{amssymb}
\newcommand{\RLongrightarrow}{\rotatebox{45}{$\Longrightarrow$}}
\usepackage{graphicx}
\begin{document}
\xymatrix@R=3pc@C=3pc{\ar @{} [dr] |{\RLongrightarrow}
A \ar[d]_p \ar[r]^q & B \ar[d]^r \\
C \ar[r]_s & D}
\end{document}

相关内容