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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.