9

I understand that this request may sound stupid, but my eyes are just bleeding when I see how $\frac{x^-}{2}$ is rendered:

enter image description here

I'm wondering if there's a moderately simple way to make it look like this?

enter image description here

(Please do not suggest $\frac{x^-}{2^{\phantom{-}}}$ or $\frac{{}^{\phantom{-}}x^-}{2}$.)

UPDATE

Well, OK, I've realized that \frac{x}{2}^{-} may work as a temporary solution, but now my eyes are bleeding when looking at the source code.

5
  • 1
    How about \frac{x^{\mathmakebox[0pt][l]{-}}}{2} with mathtools?
    – user121799
    Nov 30, 2018 at 4:28
  • Cool, thanks. What exactly is happening here?
    – mavzolej
    Nov 30, 2018 at 4:30
  • (Even though, it would be preferable to ensure that minus does not stay above the following symbols.)
    – mavzolej
    Nov 30, 2018 at 4:30
  • 3
    Maybe the result of \frac{x^{-}}{2} is not that pretty, but the proposed layout is much worse to my eyes.
    – egreg
    Nov 30, 2018 at 11:31
  • Not only your eyes are bleeding when you look at the code $\frac{x}{2}^{-}$, it gives undesired output in non-display mathmode, especially if the denominator is not a single character, as in $\frac{x}{222}^{-}$. Putting two ~ in front of x does a reasonable job, no matter what the denominator is, as in $\displaystyle \frac{~~x^{-}}{2}$ Dec 5, 2018 at 4:26

2 Answers 2

3

My eyes bleed with your proposal. Anyway

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

enter image description here

First I typeset the standard fraction, then the same but with the “reduced numerator” in two boxes, so I can use their widths. I also measure the reduced numerator.

Then I typeset the fraction with the numerator having the same width as the reduced one (aligned left). This fraction is as wide as box 2, so I back up by this amount and reinstate the width of the standard fraction, which is the width of box 0.

2
  • Oh God, I will not even ask how this works.
    – mavzolej
    Nov 30, 2018 at 18:03
  • @mavzolej Added short explanation.
    – egreg
    Nov 30, 2018 at 18:16
11

I'll be happy to remove this but you could do

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[\frac{x^{\mathrlap{-}}}{2}\hphantom{\scriptstyle -}x\]
\end{document}

enter image description here

1
  • Not bad! This is smth that can be easily generalised for more complicated cases.
    – mavzolej
    Nov 30, 2018 at 4:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .