\overset y alinear el entorno: ¿cómo conseguir una alineación correcta?

\overset y alinear el entorno: ¿cómo conseguir una alineación correcta?

Estoy usando el alignentorno junto con el \oversetcomando para poner texto sobre un símbolo de relación. Aquí está mi MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsmath}

\begin{document}
\begin{align*}
f(x)&=g(x)\\
    &\overset{something}{=} h(x)
\end{align*}
\end{document}

Y la salida es

alineación incorrecta

Como puedes ver la alineación está mal, ¡o al menos no es lo que quiero! ¡Me gustaría que los dos signos iguales estén alineados uno con el otro, mientras que con mi código obtengo la alineación del primer signo igual con el inicio del texto sobre el símbolo!

ya lo he probado con

\overset{something}{&=} h(x)

y

\overset{something}&{=} h(x)

pero ambas soluciones condujeron a un error.

¿Cómo puedo conseguir la alineación correcta?

Editar: la pregunta original era sobre \buildrel, pero, como dijo @egreg en un comentario, este comando no es compatible con LaTeX, así que lo sustituí por \overset.

Respuesta1

Elaligned-oversetEl paquete ahora proporciona una solución fácil para esto: simplemente escriba

\documentclass{article}
...
\usepackage{aligned-overset}
\begin{document}
\begin{align*}
  f(x)&=g(x)\\
  \overset{something}&{=} h(x)
\end{align*}
\end{document}

Salida correspondiente

Respuesta2

Apilaría algo encima de una relación usando \stackrel{<stack>}{<relation>}(de algo similar como \overset) y usaríamathtools's \mathclap. Las correcciones de espacio se pueden realizar utilizando un apropiado \hspace:

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{align*}
  f(x) &= g(x) \\
       &\buildrel{something}\over{=} h(x)
\end{align*}

\begin{align*}
  f(x) &= g(x) \\
       &\stackrel{\mathclap{\text{something}}}{=} \hspace*{1.5em} h(x) \\
       &\overset{\mathclap{\text{something}}}{=} \hspace*{1.5em} h(x)
\end{align*}

\end{document}

Sin embargo, evite frases largas sobre símbolos. En su lugar, podría definir un nuevo símbolo para representar la relación.

Respuesta3

No deberías utilizar \buildrel, que no es un comando compatible con LaTeX, pero \overset.

Puedes alinearte usando un fantasma, pero en mi opinión es mejor agregar una condición lateral:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsmath}

\begin{document}
Possible way
\begin{align*}
f(x)&\overset{\hphantom{\text{something}}}{=}g(x)\\
    &\overset{\text{something}}{=} h(x)
\end{align*}

Better way
\begin{alignat*}{2}
f(x) &= g(x) \\
     &= h(x) &&\qquad\text{(something)}
\end{alignat*}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta4

Aquí hay una versión que usa \stackon. La brecha desbordada se establece en 2 puntos usando el argumento opcional. El texto ha sido ambientado en \scriptsize.

\documentclass{article}
%\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
%\usepackage[italian]{babel}
\usepackage{amsmath,stackengine}
\stackMath
\begin{document}
\begin{align*}
f(x)&\stackon{=}{\phantom{\text{\scriptsize something}}}g(x)\\
    &\stackon[2pt]{=}{\text{\scriptsize something}} h(x)
\end{align*}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada