当我加载数组或 siunitx 时如何消除错误?

当我加载数组或 siunitx 时如何消除错误?

当我加载arraysiunitx或(可能是其他我还没有尝试过的包)时,出现以下错误:

! 程序包数组错误:使用了非法前缀标记 (\specifier):`c'。

\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{mathtools,booktabs}

\newcommand\specifier{%
        r@{}r@{}l
        @{\quad}c@{\quad}
        r@{}r@{}l
        @{}c}

\newcommand\act[1]{\xrightarrow{\quad\mathclap{\times #1}\quad}}
\newcommand\ope[1]{~\smash{\raisebox{.8\normalbaselineskip}{$#1$}}}
\newcommand\equ[3]{{}#1 & {}#2 & {}=#3}

\begin{document}
$
    \begin{array}{\specifier}
     \equ{3x}{+3y}{7} & \act{1} & \equ{3x}{+3y}{7}            \\[\jot]
     \equ{3x}{}{22}   & \act{3} & \equ{3x}{}{66}   & \ope{-}  \\\cmidrule{5-7}
         &&           &         & \equ{}{{{-3y}}}{59}         \\[\jot]
         &&           &         & \equ{}{y}{-59/3}            \\
    \end{array}
$
\end{document}

如何消除加载时出现的错误arraysiunitx

答案1

您不能直接将命令用作array前言。但您可以按如下方式tabular使用。\newcolumntype

\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{mathtools,booktabs}
\usepackage{array}
\newcolumntype\specifier{%
        r@{}r@{}l
        @{\quad}c@{\quad}
        r@{}r@{}l
        @{}c}

\newcommand\act[1]{\xrightarrow{\quad\mathclap{\times #1}\quad}}
\newcommand\ope[1]{~\smash{\raisebox{.8\normalbaselineskip}{$#1$}}}
\newcommand\equ[3]{{}#1 & {}#2 & {}=#3}

\begin{document}
$
    \begin{array}{\specifier}
     \equ{3x}{+3y}{7} & \act{1} & \equ{3x}{+3y}{7}            \\[\jot]
     \equ{3x}{}{22}   & \act{3} & \equ{3x}{}{66}   & \ope{-}  \\\cmidrule{5-7}
         &&           &         & \equ{}{{{-3y}}}{59}         \\[\jot]
         &&           &         & \equ{}{y}{-59/3}            \\
    \end{array}
$
\end{document}

相关内容