字母“c”出现在带有 aastex 的 pmatrix 环境中

字母“c”出现在带有 aastex 的 pmatrix 环境中

我的日志最近更新了它的官方类文件,aastexemulateapj,从 5.2 版升级到 6.0 版。显然这是一次重大改写,因为期刊放弃了自己的类,而基于期刊发布类文件之前制作的古老第三方版本开发了 6.0 版。

现在,我在新版本的开头看到了斜体“c” pmatrix。以下是示例:

\documentclass{aastex}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
  \begin{pmatrix}
    -1 & 0 \\
    0  & 1
  \end{pmatrix}
\end{equation*}
\end{document}

使用 5.2 我得到这个:

5.2 的输出

而在 6.0 中我得到了这个:

6.0 的输出

这是从哪里来的?我该如何摆脱它?

答案1

问题在于的内部使用array环境。在某些时候amsmathpmatrix

\array{*\c@MaxMatrixCols c}

执行后将准备一个包含MaxMatrixCols列的表(默认为 10)。

(这样您就不必自己在表/矩阵中插入列数。可以做一些工作来确保括号的间距正确。)

如果定义\array{*{\c@MaxMatrixCols}c}了,则代码片段可以工作。

我不知道有什么aastex6变化,但它使用了很多\newcolumntype……

代码

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\env@matrix{\hskip -\arraycolsep % taken from amsmath.sty lines 895ff
  \let\@ifnextchar\new@ifnextchar
  \array{*{\c@MaxMatrixCols}c}}
\makeatother
\begin{document}
\begin{equation*}
  \begin{pmatrix}
    -1 & 0 \\
    0  & 1
  \end{pmatrix}
\end{equation*}
\end{document}

相关内容