flalign 中的多重比对

flalign 中的多重比对

我想调整以下公式:

\begin{flalign*} 
& 100000 & + 1 & = 100001 &\\
& 1      & + 1 & = 2 &\\
\end{flalign*}

我希望对齐方式与文本文件一样。因此,所有内容都左对齐,然后1在第二行后面留出一些空间,以便在第一行的+下方右对齐+。但是,我得到的是:

在此处输入图片描述

100000我怎样才能删除、1和之间所有不必要的空格+

答案1

这里有 4 种不同的左对齐方式\flalign*,以及\fleqn的环境nccmath允许的两种左对齐方式\displayindent

    \documentclass{article}
\usepackage[showframe]{geometry}%
 \usepackage{mathtools, nccmath}
    \usepackage{array}
\usepackage{stackengine}
\setstackEOL{\\}

    \begin{document}

\begin{flalign*}
\intertext{with \texttt{flalign*}: }
 100000 + 1 & = 100001 &\\
  1 + 1 & = 2 &
\end{flalign*}

\begin{flalign*}
 &    100000 + 1  = 100001 &   \\
 &  1 + 1  = 2
\end{flalign*}


\begin{flalign*}
        100000   & + 1  = 100001 &    \\
   \mathrlap{1}  \phantom{000000}  & + 1  = 2
\end{flalign*}

\begin{flalign*}
\begin{gathered}
    100000 + 1  = 100001   \\
  1 + 1  = 2
 \end{gathered}
  & &
\end{flalign*}

\begin{fleqn}[2em]
\begin{align*}
\intertext{with \texttt{fleqn}: }
 100000 + 1 & = 100001  \\
  1 + 1 & = 2
\end{align*}
\end{fleqn}

\begin{fleqn}[2em]
\begin{gather*}
     100000 + 1  = 100001   \\
  1 + 1  = 2
\end{gather*}
\end{fleqn}

    \end{document} 

在此处输入图片描述

答案2

在我看来,只左对齐一些方程式是没有意义的,所以我首先提供了一个版本fleqn

\documentclass{article}

\usepackage[fleqn]{amsmath}
\usepackage{lipsum} % just for the example

\setlength{\mathindent}{0pt} % don't do this, please!

\begin{document}

\lipsum*[2]
\begin{alignat*}{3}
&10000 &&+1  &&= 10001 \\
&1     &&+10 &&= 11
\end{alignat*}
\lipsum[3]

\end{document}

不过,\mathindent我不建议将其设置为零。

如果您不想使用fleqn而只想左对齐这些方程式,则可以alignedat在内部使用flalign

\documentclass{article}

\usepackage{amsmath}
\usepackage{lipsum} % just for the example

\begin{document}

\lipsum*[2]
\begin{flalign*}
\begin{alignedat}{3}
&10000 &&+1  &&= 10001 \\
&1     &&+10 &&= 11
\end{alignedat}
&&
\end{flalign*}
\lipsum[3]

\end{document}

两种情况下的输出是相同的(flalign当然,没有的其他方程式会有不同的位置)。

在此处输入图片描述

答案3

您可以使用 TABstack(取决于 OP 的 MWE 是否描述了完整要求)。间隙定义为\setstackaligngap{<length>}(默认 1em)。

注意:tabstackengine默认对齐需要=&而不是&=

\documentclass[a4paper]{article}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\noindent\alignLongstack{
& 100000 & + 1 = & 100001\\
& 1      & + 1 = & 2\\
}

\setstackaligngap{3em}
\noindent\alignLongstack{
& 100000 & + 1 = & 100001\\
& 1      & + 1 = & 2\\
}
\end{document}

在此处输入图片描述

答案4

请尝试以下操作:

\documentclass{article}
\usepackage{amsmath}
\setlength{\arraycolsep}{1pt}

% only for demonstrate page layout and show some dummy text
\usepackage{lipsum}
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
%%%%
        \begin{document}
\lipsum[2]
\begin{flalign*}
\begin{array}{@{}lll}
100000 & + 1 & = 100001 \\
1      & + 1 & = 2 
\end{array} &&   
\end{flalign*}
\lipsum[2]
        \end{document}

在此处输入图片描述

但是,如果所有方程式都应该左对齐,则使用 amsmath 中的选项是明智的,例如

\usepackage[fleqn]{amsmath}

对文档中的所有方程式都执行此操作。

相关内容