如何在 alignat 中将方程式的一部分居中对齐?

如何在 alignat 中将方程式的一部分居中对齐?

我正在使用环境alignat将方程组对齐到两个不同的点。现在,我不仅想对齐这两个点,还想让这两个对齐点之间的所有内容居中。

目前看起来像:

x = y                    + z
a = b + blablablablablab + u

但我想要看起来像:

x =           y          + z
a = b + blablablablablab + u

我当前的代码如下:

\centering
\begin{alignat*}{2}
x &= y &+ z\\
x &= b+blablablablablab &+ u
\end{alignat*}

感谢您的帮助!

答案1

一个可能的解决方案\mathmakeboxmathtools

\documentclass[a4paper]{article}
\usepackage{mathtools}

\newlength{\mymathln}
\newcommand{\aligninside}[2]{
  \settowidth{\mymathln}{#2}
  \mathmakebox[\mymathln]{#1}
}

\begin{document}

\begin{alignat*}{2}
x &= \aligninside{y}{b+blablablablablab} & &+ z\\
x &= b+blablablablablab & &+ u
\end{alignat*}

\end{document}

结果:

在此处输入图片描述

相关内容