使用 pdflatex 版本 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) 和独立 2015/07/15 v1.2
以下操作失败,显示“!缺少 $ 插入。”。使用 article 替换 standalone 可按预期工作。
\documentclass{standalone}
\usepackage[all]{xy}
\begin{document}
$$
\vcenter{
\xymatrix{
A \ar[d] \ar[r] & B \ar[d] \\
C \ar[r] & D
}
}
$$
\end{document}
答案1
答案2
的默认设置standalone
是排版一个水平框(\hbox
准确地说)。因此文本处于“受限水平模式”,其中$$
just 表示一个空的数学公式。因此\vcenter
以水平模式而不是数学模式扫描,并会出现错误。
当然,\vcenter
在中什么都不做standalone
,也不需要数学模式,因为\xymatrix
在文本模式下也是完全合法的。
\documentclass{standalone}
\usepackage[all,cmtip]{xy}
\begin{document}
\xymatrix{
A \ar[d] \ar[r] & B \ar[d] \\
C \ar[r] & D
}
\end{document}
顺便说一句,\vcenter
是一头野兽,使用它需要小心。你很幸运,因为\xymatrix
材料被封装在 中\hbox
,否则你就有麻烦了($\vcenter{a}$
在普通文档中试试)。
为了垂直居中\xymatrix
,最好使用
\begin{gathered}
\xymatrix{...}
\end{gathered}
这需要amsmath
。