是否可以让奇数列隐式地带有前缀 {}?

是否可以让奇数列隐式地带有前缀 {}?

为(和){}的偶数列隐式插入前缀。因此,(或等) 成为二元运算符。alignedatalignat+-

下面的“左对齐”部分

\begin{alignedat}[t]{3}
  {}+abc   &&{}+abcd &&{}+abcde\\
  {}+abcde &&{}+abcdef
\end{alignedat}

{}展示了如何使用隐式前缀来对齐运算符。

下面的“右对齐”部分

\begin{alignedat}[t]{3}
  &+abc   &&+abcd   &&+abcde\\
  &+abcde &&+abcdef
\end{alignedat}

显示相同的方程,但变量(而不是运算符)是对齐的。

我的问题:是否可以让alignedat(以及)为奇数列alignat提供隐式前缀,以使我免于容易出错的手动插入?{}{}

\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage{mathtools}


\begin{document}

\section*{Right aligned}
$
\text{LHS} = \!
\begin{alignedat}[t]{3}
&+abc &&+abcd &&+abcde\\
&+abcde &&+abcdef
\end{alignedat}\\
$

\section*{Left aligned}
$
\text{LHS} = \!
\begin{alignedat}[t]{3}
{}+abc   &&{}+abcd &&{}+abcde\\
{}+abcde &&{}+abcdef
\end{alignedat}\\
$

\end{document}

在此处输入图片描述

答案1

你可以,但我问的是为什么有人愿意以这种方式显示事物。

\documentclass[landscape]{article}
\usepackage{mathtools,regexpatch}
\newcommand\hiddenplus{\hphantom{{}+{}}}

\makeatletter
\begingroup
\regexpatchcmd{\start@aligned}
  {\cP.\cP.}             % change \displaystyle{##}
  {\cB\{\cE\}\cP\#\cP\#} % to \displaystyle{{}##}
  {}{}
\global\let\xstart@aligned\start@aligned
\endgroup
\newenvironment{lalignedat}
 {\let\start@aligned\xstart@aligned
  \let\@testopt\alignsafe@testopt
  \alignedat@a}
 {\endaligned}
\makeatother

\begin{document}


\begin{align*}
(x^2 +x +1)(3x^4 +13x^3 -18x^2 +11x -3)
&= \!
   \begin{alignedat}[t]{7}
     3x^6  &&{}+13x^5 &&{}-18x^4 &&{}+11x^3  &&{}-3x^2 \\
           &&{}+3x^5  &&{}+13x^4 &&{}-18x^3  &&{}+11x^2  &&{}-3x \\
           &&         &&{}+3x^4  &&{}+13x^3  &&{}-18x^2  &&{}+11x  &&{}-3
   \end{alignedat}\\
&= 3x^6 +16x^5 -2x^4 +6x^3 -10x^2 +8x -3
\end{align*}

\begin{align*}
(x^2 +x +1)(3x^4 +13x^3 -18x^2 +11x -3)
&= \!
   \begin{lalignedat}[t]{7}
     3x^6  &&+13x^5 &&-18x^4 &&+11x^3  &&-3x^2 \\
           &&+3x^5  &&+13x^4 &&-18x^3  &&+11x^2  &&{}-3x \\
           &&       &&+3x^4  &&+13x^3  &&-18x^2  &&{}+11x  &&{}-3
   \end{lalignedat}\\
&= 3x^6 +16x^5 -2x^4 +6x^3 -10x^2 +8x -3
\end{align*}

\end{document}

对于相同align和类似的环境,您必须进行类似的修补\align@preamble;例如,您可以lalign*通过以下方式定义

\makeatletter
\begingroup
\regexpatchcmd{\align@preamble}
  {\cP.\cP.}             % change \displaystyle{##}
  {\cB\{\cE\}\cP\#\cP\#} % to \displaystyle{{}##}
  {}{}
\global\let\xalign@preamble\align@preamble
\endgroup
\newenvironment{lalign*}
  {\let\align@preamble\xalign@preamble
   \start@align\@ne\st@rredtrue\m@ne}
  {\endalign}
\makeatother

以下是比较结果

在此处输入图片描述

\regexpatchcmd您可以复制相关宏的定义amsmath.sty并添加如图所示的括号,而不是使用。

相关内容