![如何在 alignat 中将方程式的一部分居中对齐?](https://linux22.com/image/275717/%E5%A6%82%E4%BD%95%E5%9C%A8%20alignat%20%E4%B8%AD%E5%B0%86%E6%96%B9%E7%A8%8B%E5%BC%8F%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%E5%B1%85%E4%B8%AD%E5%AF%B9%E9%BD%90%EF%BC%9F.png)
我正在使用环境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
一个可能的解决方案\mathmakebox
是mathtools
:
\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}
结果: