这是我正在排版的一个方程的摘录。输出是正确的,看起来就像我想要的那样。
以下是生成此输出的 MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\newcommand{\mC}{\mathcal}
\pagestyle{empty}
\begin{document}
\begin{equation*}
\newcommand\spaced[1]{{}#1{}}
\left. \begin{alignedat}{4}
& I_1 &\spaced-&I_2 &\spaced-&I_3 &\spaced=& 0 \\
& I_1 (-2 R_1) &\spaced+& I_2 (-R_2) && &\spaced=& \mC E_1 - \mC E_2 \\
& &&I_2 (R_2) &\spaced+& I_3 (-2 R_1) &\spaced=& \mC E_2 - \mC E_3
\end{alignedat} \right\}
\iff
\text{(more stuff here)}
\end{equation*}
\end{document}
\spaced
但是,我不喜欢在代码中为每个 −、+ 和 = 符号添加命令。如果我不添加它,那么间距就太紧了(因为alignedat
不包括列之间的空间)。
有没有更简洁的方法来实现正确的间距和对齐?像“强制二元运算符在偶数列中”这样的东西就很好了。
某种阵列环境是否是比更好的选择alignedat
?
答案1
在这种情况下,我会使用array
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{array}
\newcommand{\mC}{\mathcal}
\pagestyle{empty}
\begin{document}
\begin{equation*}
\left.\setlength{\arraycolsep}{0pt}\renewcommand{\arraystretch}{1.2}
\begin{array}{l >{{}}c<{{}} l >{{}}c<{{}} l >{{}}c<{{}} l}
I_1 &-& I_2 &-& I_3 &=& 0 \\
I_1(-2 R_1) &+& I_2(-R_2) & & &=& \mC E_1 - \mC E_2 \\
& & I_2(R_2) &+& I_3(-2 R_1) &=& \mC E_2 - \mC E_3
\end{array} \right\}
\iff
\text{(more stuff here)}
\end{equation*}
\end{document}
附加列>{{}}c<{{}}
在二元运算符周围添加了正确的间距。\arraycolsep
和的设置是–组\arraystretch
中的局部设置。\left
\right
答案2
您可以alignedat
进行一些小的修改来使用。删除运算和关系符号后面的“与”符号,然后将第一个“与”符号后的所有“与”符号加倍。通过“与”符号交替(右/左)来定位,因为假定“相等”。
如果“缩进”元素前面没有运算或关系符号,那么就必须在其上留出空间来补偿。我已经重新定义了\spaced
如果所有运算符都是相同的大小(加、减和等号),则做“正确的事情” 。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\newcommand{\mC}{\mathcal}
%\newcommand\spaced[1]{{}#1{}}
\newcommand\spaced{\phantom{{}+{}}}
\pagestyle{empty}
\begin{document}
\begin{equation*}
\left. \begin{alignedat}{4}
& I_1 &&-I_2 &&-I_3 &&= 0 \\
& I_1 (-2 R_1) &&+ I_2 (-R_2) && &&= \mC E_1 - \mC E_2 \\
& &&\spaced I_2 (R_2) &&+ I_3 (-2 R_1) &&= \mC E_2 - \mC E_3
\end{alignedat} \right\}
\iff
\text{(more stuff here)}
\end{equation*}
\end{document}
答案3
我没有对您的数据区域进行任何更改,我只是替换了您的\begin{alignedat}{4}
by\vcenter{...\haling{...
和您的\end{alignat}
by }}
。 仅\\
在最后一行添加了。 您的对齐材料由简单的 TeX 基元解决\halign
:
\left. \vcenter{\let\\=\cr \halign{&${}#{}$&$#$\hfil\cr
& I_1 &-&I_2 &-&I_3 &=& 0 \\
& I_1 (-2 R_1) &+& I_2 (-R_2) && &=& \mC E_1 - \mC E_2 \\
& &&I_2 (R_2) &+& I_3 (-2 R_1) &=& \mC E_2 - \mC E_3 \\
}} \right\}