
Estou usando o align
ambiente junto com o \overset
comando para colocar algum texto sobre um símbolo de relação. Aqui está meu 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}
E a saída é
Como você pode ver o alinhamento está errado, ou pelo menos não é o que eu quero! Gostaria que os dois sinais de igual estivessem alinhados um ao outro, enquanto com meu código obtenho o alinhamento do primeiro sinal de igual com o início do texto sobre o símbolo!
Eu já tentei com
\overset{something}{&=} h(x)
e
\overset{something}&{=} h(x)
mas ambas as soluções levaram a um erro.
Como posso obter o alinhamento correto?
Editar: a pergunta original era sobre \buildrel
, mas, como @egreg disse em um comentário, este comando não é suportado no LaTeX, então substituí-o por \overset
.
Responder1
Oaligned-overset
pacote agora fornece uma solução fácil para isso: basta escrever
\documentclass{article}
...
\usepackage{aligned-overset}
\begin{document}
\begin{align*}
f(x)&=g(x)\\
\overset{something}&{=} h(x)
\end{align*}
\end{document}
Responder2
Eu empilharia algo em cima de uma relação usando \stackrel{<stack>}{<relation>}
(de algo semelhante como \overset
) e usariamathtools
é \mathclap
. As correções de espaço podem ser acomodadas usando um apropriado \hspace
:
\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}
No entanto, evite frases longas em símbolos. Em vez disso, você poderia definir um novo símbolo para representar a relação.
Responder3
Você não deveria usar \buildrel
, que não é um comando compatível com LaTeX, mas \overset
.
Você pode obter alinhamento usando um fantasma, mas na minha opinião é melhor adicionar uma condição secundária:
\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}
Responder4
Aqui está uma versão usando \stackon
. A lacuna excedente é definida como 2pt usando o argumento opcional. O texto foi definido em \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}