答案1
你的求婚让我泪流满面。无论如何
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\fracto}[3]{%
{\mathpalette\frac@to{{#1}{#2}{#3}}}%
}
\newcommand{\frac@to}[2]{\frac@@to#1#2}
\newcommand{\frac@@to}[4]{%
% #1 = mathstyle
% #2 = full numerator
% #3 = denominator
% #4 = reduced numerator
\begingroup
\sbox\z@{$\m@th#1\frac{#2}{#3}$}%
\sbox\tw@{$\m@th#1\frac{#4}{#3}$}%
\settowidth\dimen@{$\m@th\frac@to@demote#1#4$}%
\frac{{}\makebox[\dimen@][l]{$\frac@to@demote#1#2$}}{#3}%
\kern-\wd\tw@
\kern\wd\z@
\endgroup
}
\newcommand\frac@to@demote[1]{%
\ifx#1\displaystyle\textstyle\else
\ifx#1\textstyle\scriptstyle\else
\scriptscriptstyle\fi\fi
}
\makeatother
\begin{document}
\begin{gather*}
X + \frac{x^{-}}{2} + \frac{x^{-}}{100} + X \\
X + \fracto{x^{-}}{2}{x} + \fracto{x^{-}}{100}{x} + X \\
\end{gather*}
\end{document}
首先,我排版了标准分数,然后排版相同,但“简化分子”位于两个框中,这样我就可以使用它们的宽度。我还测量了简化分子。
然后我排版分数,分子的宽度与缩小后的分数相同(左对齐)。这个分数与方框 2 一样宽,所以我将宽度向后缩减,并恢复标准分数的宽度,即方框 0 的宽度。