无法编译带有数学环境和 \NewColumnType 的 Tabularray

无法编译带有数学环境和 \NewColumnType 的 Tabularray

我有这个代码

\documentclass{report}
\usepackage{tabularray}
\usepackage{mathtools}
\NewColumnType{C}{>{$}c<{$}}
\def\myformula{Area = side \times side \\ Perimeter = side \times 4}
\begin{document}
    \begin{tblr}{
            colspec={cX},
            row{2}={C,fg=white,bg=black}
        }
        {One} & {Two} & \SetCell[c=2]{C}{\myformula} \\
    \end{tblr}
\end{document}

该代码无法编译,编译期间最相关的错误(第 12 行报告)是:

Missing $ inserted. \end

我知道在表格中使用数学环境比平时更复杂,因此我尝试使用它\NewColumnType来让我的生活更轻松,但显然我错过了一些东西,而且我已经尝试了很多变化。

我遗漏了什么?与 Latex3 的工作方式有关吗?

答案1

  • \tabularray你用的是哪一个版本的?
  • 您的 MWE(最小工作示例)包含许多错误。从定义myformula到定义列的数量...
  • 该包的语法tabularray与“经典”表包的语法不同。例如,它定义了列的数学模式选项。有关详细信息,请参阅包文档。
  • 我猜您正在寻找以下结果:

在此处输入图片描述

使用最新版本\tabularray(2022A) 你的 MWE 应该是:

\documentclass{report}

\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\def\myformula{\begin{gathered}
    \mathrm{Area} = \mathrm{side} \times \mathrm{side} \\ \mathrm{Perimeter} = \mathrm{side} \times 4
                \end{gathered}}

\begin{document}
\noindent%    
\begin{tblr}{colspec={cc X[c, m] X[c, m] },
                  row{1}={fg=white,bg=black}
                }
One &   Two & \SetCell[c=2]{c,$$}{\myformula} 
                    &       \\
\end{tblr}
\end{document}

编辑: 有时,当您希望在=符号处对齐方程式时,您需要gatheredaligned环境替换(两者均在包中定义amsmath):

\def\myformula{\begin{aligned}
    \mathrm{Area}   & = \mathrm{side} \times \mathrm{side}
\mathrm{Perimeter}  & = \mathrm{side} \times 4
               \end{aligned}}

在建议的 MWE 中使用上述内容会得到以下结果。

在此处输入图片描述

如果您还有一些未解决的问题,我建议您提出新的问题,并清楚地(可能带有指向此问题的链接)解释您的问题是什么。

相关内容