答案1
原始图表是使用xy
包 100% 完成的。事实上,我知道这个包的经典技巧。我补充说,另一个使用xy
包的解决方案保留了技巧。如果您想要的技巧,tikz-cd
您可以将添加cmtip
到方括号选项中。改进了参数的值\xymatrixcolsep{...}
,\xymatrixrowsep{...}
您可以改进矩形。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage[all]{xy}
\begin{document}
{
\xymatrixcolsep{3.5pc}\xymatrixrowsep{3.8pc}
\xymatrix{
\mathbb{Z}\ar[r]^{m}\ar[d]_{\frac nd} & \mathbb{Z} \ar[r] \ar[d]_{\frac md} & \mathbb{Z}/m \ar[r]
\ar[r] \ar@{.>}[d]|*+<7pt>[o][F]{\scriptstyle\ell} & 0 \ar@{=}[d]\\
Z\mkern.2mu Z\ar[r]^{n} & \mathbb{Z} \ar[r] & \mathbb{Z}/n
\ar [r]
\ar [r] & 0,}
}
\end{document}
答案2
使用stackengine
和relsize
解决带圆圈的椭圆形的问题:
\documentclass{article}
\usepackage{tikz-cd, circledsteps}
\usepackage{mathtools, amsfonts, relsize, stackengine}
\newcommand{\circledell}{\stackinset{c}{}{c}{}{$ \ell $}{$\mathlarger{\bigcirc}$}}
\begin{document}
\begin{tikzcd}[column sep=large, row sep=huge]
\mathbb{Z}\dar["\frac{n}{d}",swap]\rar["m"] & \mathbb{Z}\dar["\frac{m}{d}",swap]\rar & \mathbb{Z}/m\dar[dotted, inner sep =3em, "\circledell", description]
\rar & 0 \dar[equal] \\\
Z\:Z\rar["n"] & \mathbb{Z}\rar & \mathbb{Z}/n\rar & 0
\end{tikzcd}
\end{document} $