为(和){}
的偶数列隐式插入前缀。因此,(或等) 成为二元运算符。alignedat
alignat
+
-
下面的“左对齐”部分
\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
并添加如图所示的括号,而不是使用。