如何强制一个元素与另一个元素具有相同的宽度?(幻影?)

如何强制一个元素与另一个元素具有相同的宽度?(幻影?)

(背景:我有一个案例,我正在使用 MathJax 和一个 HTML 表,其中包含我想要对齐的各种表达式的单元格,因此我无法使用环境align。)

有没有办法强制一个元素与另一个元素具有相同的宽度?我知道\phantom,因此例如这些片段应该具有相同的宽度:

a+x^2+b 

a+\phantom{x^2}+b  

但是,如果我想显示a+0+b而不是a+x^2+b,并且想0将其置于与 具有相同宽度的 hbox 的中心,该怎么办x^2

答案1

您可以将 0 放在与省略的表达式大小相同的框中

在此处输入图片描述

\documentclass{article}

\begin{document}

$a+x^2+b $

$a+\phantom{x^2}+b  $


\sbox0{$x^2$}

$a+\makebox[\wd0]{$0$}+b$

\end{document}

答案2

啊哈,使用\rlap\llap对我来说可以实现左对齐和右对齐的内容:

a+\phantom{x^2}\llap{0}+b

我不知道如何获得中心上下文,但如果有必要,我可以放宽该要求。

答案3

当然这在 MathJax 中不起作用。

\documentclass{article}
\usepackage{mathtools,calc}

\begin{document}

$a+x^2+b $

$a+\phantom{x^2}+b  $

$a+\mathmakebox[\widthof{$\displaystyle x^2$}]{0}+b$

\end{document}

在此处输入图片描述

答案4

使用包的解决方案eqparbox:它定义标记框命令,因此标记框具有共享相同标记的框中最宽内容的宽度(需要两次编译):

\documentclass{article}
\usepackage{mathtools,calc}
\usepackage{eqparbox}
\newcommand\eqmathbox[2][]{\eqmakebox[1]{$#2$}}

\begin{document}

$a+\eqmathbox[M]{x^2}+b $

 $ a+\eqmathbox[M]{0}+b $

\end{document} 

在此处输入图片描述

相关内容