我想绘制一个带有向右箭头和向下箭头的图表。
因此我首先尝试:
\begin{alignat*}{3}
M_n&(D) \overset{\alpha'}&\longrightarrow M_n&(R)\\
\det &\downarrow & &\downarrow \det\\
&D \overset{\alpha}&\longrightarrow &R
\end{alignat*}
然后它给了我:
但是带有 alpha 的 rightarrow 左对齐。
我接下来做的事情是:
\begin{equation*}
\arraycolsep=1pt\def\arraystretch{1}
\begin{array}{cccccc}
& &M_n(D)\quad &\overset{\alpha'}\longrightarrow\quad &M_n(R) &\\
&\det &\downarrow &\quad &\downarrow &\det\\
& &D &\overset{\alpha}\longrightarrow &R &
\end{array}
\end{equation*}
这给了我:
它看起来更好,但我真正想要的是第一个向下箭头看起来与第二个向下箭头相同,也就是说,它从“n”和“(”之间开始。而且右箭头看起来根本没有对齐。
我应该怎么办?
答案1
欢迎使用 TeX-SE!我推荐tikz-cd
它。
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=3em,row sep=3em]
M_n(D) \arrow[r,"\alpha'"] \arrow[d,"\det"] & M_n(R)\arrow[d,"\det"]\\
D \arrow[r,"\alpha"] &R
\end{tikzcd}
\end{document}
如果需要,您可以将det
其放大。(s 的字体大小\alpha
可以以相同的方式增加。)
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=3em,row sep=3em]
M_n(D) \arrow[r,"\alpha'"] \arrow[d,"\displaystyle\det"] & M_n(R)\arrow[d,"\displaystyle\det"]\\
D \arrow[r,"\alpha"] &R
\end{tikzcd}
\end{document}
答案2
考虑到我完全同意非常好的用户@marmot 的意见,我添加了另一个使用包的代码。仔细查看和xy
之间的几乎相似的比较,除了箭头的尖端。tikz-cd
xy
\documentclass{book}
\usepackage[all]{xy}
\begin{document}
\xymatrix@R=3pc@C=3pc{
M_n(D) \ar[r]^{\alpha'} \ar[d]^{\det} & M_n(R) \ar[d]^{\det}\\
D \ar[r]^{\alpha} & R\\
}
\end{document}
如果你只添加cmtip
,你可以获得相同的提示tikz-cd
。
\documentclass{book}
\usepackage[all,cmtip]{xy}%%%%%%%% <---------add only cmtip
\begin{document}
\xymatrix@R=3pc@C=3pc{
M_n(D) \ar[r]^{\alpha'} \ar[d]^{\det} & M_n(R) \ar[d]^{\det}\\
D\ar[r]^{\alpha} & R\\
}
\end{document}
答案3
当然,我还是喜欢用纯 TikZ 绘图,而不使用诸如tikzcd
、之类的包xy
,甚至不使用 TikZ 的库positioning
。
\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
\path
(0,0) node (MD) {$M_n(D)$}
+(0:3) node (MR) {$M_n(R)$}
++(-90:2) node (D) {$D$}
+(0:3) node (R) {$R$};
\draw[->] (MD)--(MR) node[midway,above]{$\alpha'$};
\draw[->] (D)--(R) node[midway,above]{$\alpha$};
\draw[->] (MD)--(D) node[midway,right]{$\rm det$};
\draw[->] (MR)--(R) node[midway,right]{$\rm det$};
\end{tikzpicture}
\end{document}