Wie kann man ein Element dazu zwingen, die gleiche Breite wie ein anderes zu haben? (Phantom?)

Wie kann man ein Element dazu zwingen, die gleiche Breite wie ein anderes zu haben? (Phantom?)

(Kontext: Ich habe einen Fall, in dem ich MathJax und eine HTML-Tabelle mit Zellen für verschiedene Ausdrücke verwende, die ich ausrichten möchte, sodass ich keine alignUmgebung verwenden kann.)

Gibt es eine Möglichkeit, ein Element dazu zu zwingen, die gleiche Breite wie ein anderes zu haben? Ich weiß davon \phantom, also sollten zum Beispiel diese Fragmente die gleiche Breite haben:

a+x^2+b 

a+\phantom{x^2}+b  

a+0+bWas aber, wenn ich anstelle von anzeigen möchte a+x^2+bund 0in einer Hbox mit der gleichen Breite wie zentriert sein möchte x^2?

Antwort1

Sie können die 0 in einem Kästchen in der Größe des ausgelassenen Ausdrucks zentrieren

Bildbeschreibung hier eingeben

\documentclass{article}

\begin{document}

$a+x^2+b $

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


\sbox0{$x^2$}

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

\end{document}

Antwort2

Aha, die Verwendung von \rlapund \llaphat bei mir für links- und rechtsbündigen Inhalt funktioniert:

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

Ich weiß nicht, wie ich einen zentrierten Kontext erhalte, aber ich kann diese Anforderung notfalls lockern.

Antwort3

Natürlich funktioniert das in MathJax nicht.

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

Bildbeschreibung hier eingeben

Antwort4

Eine Lösung mit dem eqparboxPaket: Es definiert getaggte Box-Befehle, sodass eine getaggte Box die Breite des breitesten Inhalts in Boxen hat, die dasselbe Tag verwenden (erfordert zwei Kompilierungen):

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

Bildbeschreibung hier eingeben

verwandte Informationen