What's the quickest way to write "2nd" "3rd" etc in LaTeX?

You should not use math, when it is normal text. Use \textsuperscript instead: 2\textsuperscript{nd}. You can also define a shortcut for this, e.g.

\newcommand{\ts}{\textsuperscript}

Then you could use 2\ts{nd} in the text.

Edit:
An even nicer solution is to load the package nth with the option super and use the \nth command:

\usepackage[super]{nth}
\nth{1}, \nth{2}, \nth{3}, \nth{4}

I guess the quickest and easiest solution is to simply write "2nd", "3rd", etc.

Superscripts aren't really necessary.


An alternative to nth package is fmtcount.

In this case the command is \ordinalnum. By default the ordinal is formatted as superscript, but this is optional, as it is also in nth:

\usepackage{fmtcount} % equivalent to \usepackage[super]{nth}
\usepackage[level]{fmtcount} % equivalent to \usepackage{nth}

But there are some advantages over nth:

  1. Limited multilingual support (English, French, Spanish, Portuguese, German and Italian). For example, in a Spanish document \nth{3} is formatted incorrectly as "3th" but \ordinalnum{3} is rendered almost correctly as "3º" (see addendum).

  2. Optional gender. For example \ordinalnum{3}[f] produces in Spanish the feminine ordinal "3ª" (tercera). There is also a neuter option (n). By default the gender is m (masculine).

  3. Is if possible switch between raise and level versions of ordinals in the same document (I can't imagine why, but who know!) with \fmtcountsetoptions{fmtord=raise} or \fmtcountsetoptions{fmtord=level}

  4. For English-only users, obviously (1) and (2) features are useless, but the ftmcount package has also many other ordinal commands, as \ordinal{counter} or \ordinalstring{counter} to print a counter as section as an ordinal ("3th") or as textual ordinal ("third") and more.

A third package, engord, also print numbers (\engordnumber{12}), counters (\engord{page}) and can switch between styles with \engordraisetrue or \engordraisefalse, but there are not multilingual or gender support.

On the other hand, for enumerated lists you can use the moreenum package with the labels \raisenth or \levelnth. A MWE:

\documentclass{article}
\usepackage{moreenum}
\begin{document}
\begin{enumerate}[label=\raisenth* --- ,start=1]
\item one
\item two
\item three
\end{enumerate}
\end{document}

Addendum: Ordinals in Spanish.

Although often not used, according to the RAE there must be a dot before the superscript, as in any abbreviation ended with a superscript as explained here. Then, the correct ordinal is "3.o" (tercero) or "3.er" (tercer) but not "3º".

In most cases one can just typing 1.º or 1.ª because is Spanish keyboards there are a key for the º ª \ symbols. However, the problem remain with numbers that can be ended by .er (1,3,13,21,23,31,33,etc.). Moreover, in some fonts the º and ª symbols are underlined (as in the keyboard), that it is correct in Spanish, but can produce inconsistencies if one type, for example, 1º,2º,3\textsuperscript{er},4º. Another problem is that these symbols are only in lower case even using \MakeUppercase.

The babel package take care of the format of Spanish abbreviations with a superscript suffix, and thus with the spanish option one can use n\sptext{os} to obtain for example n.os ("numbers" in plural), but moreover provide a shorthands for masculine and feminine ordinals (also in uppercase) using " which is not used in LaTeX for quotes. In this way, instead of 1\sptext{er} on can use just 1"er for example. In summary:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{bera}
\usepackage[spanish,es-noindentfirst]{babel}
\begin{document}

\subsubsection*{Lowercase}

1º, 2º, 3º ... 1ª, 2ª, 3ª \dotfill 
Keyboard input, incorrect (no dots). \\
1.º, 2.º, 3.º ... 1.ª, 2.ª, 3.ª 
\dotfill Keyboard input, correct but underlined.\\ 
1\sptext{o}, 2\sptext{o}, 3\sptext{o} ... 
1\sptext{a}, 2\sptext{a}, 3\sptext{a} 
\dotfill With Babel \verb|\sptext{}| command.\\
1"o, 2"o, 3"o ... 1"a 2"a 3"a \dotfill 
With "\ Babel shorthand.\\
1"er 2"o 3"er ... 1"a 2"a 3"a 
\dotfill Apocopate version (primer, tercer, etc.).

\subsubsection*{Upppercase}

\MakeUppercase{1.º, 2.ª, 3.\textsuperscript{er}} ...  
or ... 1.º, 2.ª, 3.\textsuperscript{ER}  
\dotfill (wrong way)\\
1"o 2"a  3"er  $\neq$ \MakeUppercase{1"o 2"a  3"er ... }  
or ...  1"O 2"A  3"ER 
\dotfill (babel way, correct)

\end{document}

MWE