考虑以下输出:
如何搬家仅有的 =
稍微往上一点?等号离下面的线太近了。
我努力了
\newcommand{\seta}[1][]{\xrightarrow[\raisebox{1pt}{\makebox[1ex]{\ensuremath{\scriptstyle=}}}]{#1}}
但改变1pt
为4pt
例如也会移动下面的线(至少在我看来)。
平均能量损失
\documentclass[11pt,a4paper]{report}
\usepackage{amsmath,lipsum}
\newcommand{\seta}[1][]{\xrightarrow[=]{#1}}
\begin{document}
$a\seta b$ \quad
$a\seta[G]b$ \quad
$a\seta[\mathcal{F}(G)]b$ \lipsum*[2]
\end{document}
答案1
也许与\vphantom
和\smash
。
\documentclass[11pt,a4paper]{report}
\usepackage{amsmath,lipsum}
\newcommand{\seta}[1][]{\xrightarrow[\vphantom{=}\smash{\raisebox{0.3ex}{=}}]{#1}}
\begin{document}
$a\seta b$ \quad
$a\seta[G]b$ \quad
$a\seta[\mathcal{F}(G)]b$ \lipsum*[2]
\renewcommand{\seta}[1][]{\xrightarrow[\vphantom{=}\smash{\raisebox{0ex}{=}}]{#1}}
$a\seta b$ \quad
$a\seta[G]b$ \quad
$a\seta[\mathcal{F}(G)]b$ \lipsum*[2]
\end{document}
下面的例子只是为了比较。
答案2
我会使用较低级别但更灵活的构造。
\documentclass{article}
\makeatletter
\newcommand{\eqxrightarrow}[1]{\mathrel{\eq@xrightarrow{#1}}}
\newcommand{\eq@xrightarrow}[1]{%
\mathop{%
\vtop{%
\m@th % no extra space around math
\offinterlineskip % disable glue between lines
\ialign{%
% one column, center align
\hfil##\hfil\cr
% fill the row with a right arrow
\rightarrowfill\cr
% width is at least the superscript plus 16 mu
\hphantom{$\scriptstyle\mskip8mu{#1}\mskip8mu$}\cr
% and at least 1.5em
\vrule height0pt width 1.5em\cr
% bottom row is =
$\scriptstyle=$\cr
}%
}%
}\limits^{#1}%
}
\makeatother
\begin{document}
$a\eqxrightarrow{} b$ \quad
$a\eqxrightarrow{G} b$ \quad
$a\eqxrightarrow{\mathcal{F}(G)} b$
\end{document}