独立类、vcenter 和 xymatrix

独立类、vcenter 和 xymatrix

使用 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

vcenter也不要使用$$...$$

使用仅有的 $\xymatrix{A \ar[d] \ar[r] & B \ar[d] \\C \ar[r] & D}$

\documentclass{standalone}
\usepackage[all]{xy}

\begin{document}
$\xymatrix{
A \ar[d] \ar[r] & B \ar[d] \\
C \ar[r] & D
}$
\end{document}

在此处输入图片描述

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

相关内容