我试图复制与普通数学模式为简单多项式公式提供的完全相同的输出,但使用是\matrix
因为我想右对齐多项式中的项或将其中一些项留空。\alignat
由于其他原因,我无法使用任何一个。
我取得了一些进展,但间距很难正确。在下图中,您可以看到纯数学模式下的输出,使用
\alignat
和我尝试使用\matrix
(我使用便利宏
\arr
)。
如您所见,我的版本有些偏差。我认为最大的错误在于等号周围的间距。
\documentclass[a4paper,11pt]{article}
\usepackage{amsmath}
\makeatletter
% http://tex.stackexchange.com/questions/2233/
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols r]{%
\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{#1}}
\newcommand{\arr}{\@ifstar\arr@star\arr@nostar}
\newcommand{\arr@nostar}[2][*\c@MaxMatrixCols r]{%
\begin{bmatrix}[#1]#2\end{bmatrix}%
}
\newcommand{\arr@star}[2][*\c@MaxMatrixCols r]{%
\begin{matrix}[#1]#2\end{matrix}%
}
\makeatother
\begin{document}
\begin{equation}
C + 3D = 2
\end{equation}
%
\begin{alignat}{3}
C &+{}& 3D &={}& 2 & \notag
\end{alignat}
%
\begin{equation}
\arr*[@{}r@{\,}c@{\,}r@{\,}c@{\,}r@{}]{
C &+{}& 3D &=& 2 \notag
}
\end{equation}
\end{document}
答案1
您会考虑将表格堆栈作为一种选择吗?
在这里我使用一次性调用进行设置:
\usepackage{tabstackengine}
\stackMath
\setstacktabulargap{0pt}
\TABbinary
然后我使用模仿表格分隔符的语法来调用各种形式的表格堆栈之一。
\documentclass[a4paper,11pt]{article}
\usepackage{amsmath}
\usepackage{tabstackengine}
\stackMath
\setstacktabulargap{0pt}
\TABbinary
\begin{document}
\begin{equation}
C + 3D = 2
\end{equation}
%
\begin{alignat}{3}
C &+{}& 3D &={}& 2 & \notag
\end{alignat}
%
\begin{equation}
\tabularCenterstack{rcrcr}{
C&+&3D&=&2
}
\end{equation}
\begin{equation}
\tabularCenterstack{rcrcr}{
C&+&3D&=&2\\
4C&-&D&=&27
}
\end{equation}
\end{document}