![方程式の水平方向の間隔](https://rvso.com/image/309858/%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AE%E6%B0%B4%E5%B9%B3%E6%96%B9%E5%90%91%E3%81%AE%E9%96%93%E9%9A%94.png)
単純な多項式に対して、単純な数式モードとまったく同じ出力を再現しようとしていますが、多項式の項を右揃えにしたり、一部を空白のままにしたりしたいので、 を使用しています。他の理由でどちらも\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
表形式のスタックをオプションとして検討しますか?
ここでは、1 回限りの呼び出しで設定しました。
\usepackage{tabstackengine}
\stackMath
\setstacktabulargap{0pt}
\TABbinary
次に、表形式の区切り文字を模倣した構文を使用して、さまざまな形式の表形式スタックの 1 つを呼び出します。
\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}