有没有更简洁的方法来获得此 alignedat 中的适当间距?

有没有更简洁的方法来获得此 alignedat 中的适当间距?

这是我正在排版的一个方程的摘录。输出是正确的,看起来就像我想要的那样。

电流输出(根据需要)

以下是生成此输出的 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\}

相关内容