\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
答案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}