Enumerated column in tabular

How can I have a column in a tabular environment so that the first column is automatically produced? Something like this:

\begin{table}
\begin{tabular}{lc}
1st & a \\
2nd & b \\
3rd & c \\
4th & d
\end{tabular}
\caption{}\label{}
\end{table}


Here I am envisaging that the first column is auto-generated and all I have to do is place an \item or some other iterator there. The first row is the column header. Any help getting started would be great!

You can use the array package to insert a counter increment into the cell:

\documentclass{article}

\usepackage{array}

\newcounter{mycount}
\renewcommand\themycount{%
\arabic{mycount}%
\ifcase\value{mycount}%
th\or st\or nd\or rd\else th\fi}

\begin{document}

\begin{table}
\begin{tabular}{>{\refstepcounter{mycount}\themycount}lc}
& a \\
& b \\
& c \\
& d
\end{tabular}
\caption{}\label{}
\end{table}

\end{document}

• Thanks David. Could you explain what part of the code makes the counter skip the first row? – tchakravarty Oct 15 '12 at 11:24
• the \multicolumn{1} replaces the preamble template for the first cell by a simple c so it loses the counter code. – David Carlisle Oct 15 '12 at 11:28