¿Cómo forzar que un elemento tenga el mismo ancho que otro? (¿fantasma?)

¿Cómo forzar que un elemento tenga el mismo ancho que otro? (¿fantasma?)

(Contexto: tengo un caso en el que estoy usando MathJax y una tabla HTML con celdas para varias expresiones que quiero alinear, por lo que no puedo usar un alignentorno).

¿Hay alguna manera de forzar que un elemento tenga el mismo ancho que otro? Lo sé \phantom, por lo que, por ejemplo, estos fragmentos deberían tener el mismo ancho:

a+x^2+b 

a+\phantom{x^2}+b  

Pero, ¿qué pasa si quiero mostrar a+0+ben lugar de a+x^2+by quiero 0estar centrado en un hbox con el mismo ancho que x^2?

Respuesta1

Puedes centrar el 0 en un cuadro del tamaño de la expresión omitida.

ingrese la descripción de la imagen aquí

\documentclass{article}

\begin{document}

$a+x^2+b $

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


\sbox0{$x^2$}

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

\end{document}

Respuesta2

Ajá, el uso de \rlapy \llapfuncionó para mí para contenido justificado a la izquierda y a la derecha:

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

No sé cómo centrar el contexto, pero puedo relajar ese requisito si es necesario.

Respuesta3

Por supuesto, esto no funcionará en 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}

ingrese la descripción de la imagen aquí

Respuesta4

Una solución con el eqparboxpaquete: define comandos de cuadros etiquetados para que un cuadro etiquetado tenga el ancho del contenido más amplio en cuadros que comparten la misma etiqueta (requiere dos compilaciones):

\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} 

ingrese la descripción de la imagen aquí

información relacionada