364

What is the easiest way to superscript text outside of math mode?

For example, let's say I want to write the $n^{th}$ element, but without the math mode's automatic italicization of the th. And what if I still want the n to be in math mode, but the th outside?

  • 17
    See this column in TUGboat for information about not using a superscript "th" – egreg Mar 8 '12 at 22:41
  • 7
    @Bernhard My summary is: it is an abbreviation style unique to English, people stopped using it because of the spread of typewriters where it looked bad and was cumbersome to produce and then Microsoft decided to bring it back. Thus we shouldn't use it. It seemed like a non-sequitur to me. – Eponymous Apr 14 '14 at 17:20
  • 41
    this is so typical of this community, you ask for vertical lines in tables or superscripts and people step up to tell you DONT because style. the writer of the TUGboat article is wrong in claiming superscript ordinal suffixes are solely a 'Victorian fetish' peculiar to English; his text, confessedly a 'rant', is riddled with loaded words like 'obscenity' and 'ilk'. in fact, superscript used to be common in many languages. The rant gives not a single reason, it's just a rant. – flow Dec 22 '14 at 14:51
  • 9
    @flow: I fully agree, in particular because the authors' claims about multi-letter suffixes and endings derived from the alphabetic form being unique to English are rather baseless. – O. R. Mapper Mar 6 '15 at 11:01
  • 20
    @flow I agree too. What I read in the article is: we used superscript form, until we started using clunky devices that couldn't handle it properly. My opinion: now that we have devices that can render superscript beautifully, let's use them again! – dr. Sybren Apr 2 '15 at 13:52
536
+200

You can use \textsuperscript{th}. It sets its contents in text mode and can be used in math or text mode.

  • 1
    Actually, this only really works outside math mode. If I try $n^\textsuperscript{th}$, the superscript gets raised too high, creating an awkwardly large space between lines. But $n$\textsuperscript{th} works great--thanks! – jamaicanworm Mar 9 '12 at 0:49
  • 23
    @jamaicanworm: You should use $n\textsuperscript{th}$. – Werner Mar 9 '12 at 0:50
  • 17
    $n^\textsuperscript{th}$ is a double superscript. – Philipp Mar 9 '12 at 0:51
  • 2
    Right! Silly mistake... :) – jamaicanworm Mar 9 '12 at 0:52
  • 6
    @Werner: What is the difference between $n$\textsuperscript{th} and $n\textsuperscript{th}$? Is it the spacing at the end of the inline math environment or why, if else, do you prefer the second one? – strpeter Apr 30 '14 at 8:44
52

For 99% of applications, Werner's answer is good enough. But since Marienplatz has offered a bounty, there presumably is interest in other ways to do this. So here, I show it done with a stack over a null entry. My preamble definition (output on the second line) appears to give the exact same result as \textsuperscript (output on the first line).

But then, I show how both the size of the script as well as the height of it can be simply changed with my stacking approach, shown in \footnotesize (and lowered) in the 3rd line of output, and in \tiny (and raised) in the last line.

While I stick just to the standard text font sizes, it would be trivial to instead use a \scalebox to get exactly the size of script text desired.

If there is a desire to place the script, not at a fixed elevation, but relative to the height of the character being scripted, that is easy too (just ask).

\documentclass{article}
\usepackage{stackengine}[2013-10-15]
\newcommand\textss[1]{\stackengine{.9ex}{}{\scriptsize#1}{O}{l}{F}{F}{L}}
\begin{document}
\noindent
a\textsuperscript{th}A\textsuperscript{th}\\
a\textss{th}A\textss{th}\\
\renewcommand\textss[1]{\stackengine{.7ex}{}{\footnotesize#1}{O}{l}{F}{F}{L}}
a\textss{th}A\textss{th}\\
\renewcommand\textss[1]{\stackengine{1ex}{}{\tiny#1}{O}{l}{F}{F}{L}}
a\textss{th}A\textss{th}\\
\end{document}

enter image description here

  • 2
    I am very very sorry for disappointing you. The bounty target has been set in advance. It is for Werner's answer. :-) Anyway, +1 for your solution. – kiss my armpit Oct 26 '13 at 6:53
  • 1
    @Marienplatz Oops. No problem. Thanks for the consideration. – Steven B. Segletes Oct 26 '13 at 12:32
15

In ConTeXt, you can use

\high{th}

to get the superscripts in text mode.

11

The old-school solution:

29\raise0.5ex\hbox{th}

(TeXbook, Chapter 11)

  • Thanks! And if you don't want the superscript to affect the inter-line spacing: \smash{29\raise0.5ex\hbox{th}} – Jim Van Zandt May 31 at 12:47
6

I use $n^{\text{th}}$. It seems to work okay for me.

2

After experimenting with variations of \textsuperscript{} and the $n^{}$ math mode superscript with \footnotesize{} and \scriptsize{} (I needed smaller superscript), I found the \uplett{} macro from the phonetic package, thanks to Scott Pakin's The Comprehensive LaTeX Symbol List, (last updated January 2017). It uses a smaller font than \textsuperscript{}, and achieved a better top-right alignment than \footnotesize{$^{}$}, without the automatic italicization.

  • 1
    The question is not about how to change the fonts to suit your needs. For example, you could also \usepackage{relsize} ... a\textsuperscript{\smaller abc} which produces similar results to \usepackage{phonetic} ... a\uplett{abc}. – Werner Dec 11 '17 at 23:01
  • Thanks, I didn't know relsize! My initial question was halfway between jamaicanworm's and his comment on double superscript $n^\textsuperscript{th}$. In my case, as I was used to the italicized math mode, changing math mode for text superscript (assuming it's best practice for true text) made the text look heavier than I needed. Is \uplett{abc} more computationally intensive than \textsuperscript{\smaller{abc}}}? Is \mathrm{abc}a simpler fix since it does not involve an additional package? (unless it does). Thanks for your time. – Pier-Eric Chamberland Dec 12 '17 at 0:45
  • 1
    \mathrm doesn't require an additional package, but it's probably more intuitive to use \text (from amsmath) if you want to print text. I don't think there's much to consider in terms of computational complexity. One should rather consider the contextual syntax that's used and whether it makes sense while providing consistency across your document. By the way \smaller is a switch and doesn't take an argument; so it's {\smaller abc} and not \smaller{abc}. – Werner Dec 12 '17 at 0:56
  • Thanks, much obliged. I would remove those extra brackets in my comment but it is now locked. – Pier-Eric Chamberland Dec 12 '17 at 1:04
  • You could change your answer, because \footnotesize and \scriptsize are also switches and should be used the same way as shown for \smaller. – TeXnician Jan 2 at 9:15
1

I use $^{\mathrm{th}}$ - the \mathrm command removes the math-mode formatting and leaves you with a superscript in the format of your text.

  • That does not work if the surrounding text is in italics (for instance). Mathrm will always produce upright text. The better solution is to use \text from amsmath which is shown in Natalya's answer. – TeXnician Jan 2 at 9:12

protected by TeXnician Jan 3 at 9:13

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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