我正在制作一些幻灯片,希望用点和箭头组成的小图来展示排列。下面是我尝试描绘排列 12345 --> 31245 的方法:
\documentclass{article}
\usepackage[all]{xy}
\begin{document}
\[ \left( \xymatrix@R=1 em@C=1 em{ \bullet \ar[rrd] & \bullet \ar[ld] & \bullet \ar[ld] & \bullet \ar[d] & \bullet \ar[d] \\ \bullet & \bullet & \bullet & \bullet & \bullet } \right) \]
\end{document}
如您所见,顶部有很多空白。我怎样才能使高度xymatrix
仅达到点的顶部?
答案1
问题在于矩阵的参考点放在哪里。
我建议不要使用原始命令,而是使用gathered
:
\documentclass{article}
\usepackage{amsmath}
\usepackage[all]{xy}
\begin{document}
\[
\left(
\!\begin{gathered}
\xymatrix@R=1em@C=1em{
\bullet \ar[rrd] & \bullet \ar[ld] & \bullet \ar[ld] & \bullet \ar[d] & \bullet \ar[d] \\
\bullet & \bullet & \bullet & \bullet & \bullet
}
\end{gathered}
\right)
\]
\end{document}
出于同样的原因,当图表必须放在编号方程中时,这种方法也很有用。\!
由于 中的“特征”, 是必需的amsmath
。
答案2
我找到了一种方法,使用这个技巧。
\[ \left( \vcenter{\vbox{ \xymatrix@R=1 em@C=1 em{ \bullet \ar[rrd] & \bullet \ar[ld] & \bullet \ar[ld] & \bullet \ar[d] & \bullet \ar[d] \\ \bullet & \bullet & \bullet & \bullet & \bullet }}} \right) \]
我必须承认我不清楚为什么这样做有效。我知道这会将 的中线放在xymatrix
文本基线上,这也是一件好事,但我不知道为什么上例中的\left(
,\right)
对会超出基线以补偿 xymatrix 的顶部对齐。