Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Is there any way to get automatic row numbers in table?

For example, if I define table contents as

\begin{tabular} % black magic column definition
   \rownumber & foo\\
   \rownumber & bar\\
   \rownumber & baz\\

and get something like

1 | foo
2 | bar
3 | baz
share|improve this question
add comment

3 Answers 3

up vote 8 down vote accepted

\begin{tabular}{@{\makebox[3em][r]{\rownumber\space}} | r}
  Something \\
  Other stuff \\

share|improve this answer
Is it possible to start numbering at the second line? i.e. have a header row? TIA. –  Fabian Tamp Oct 10 '12 at 12:00
@Herbert Is it possible what Fabian asked? Starting at the second or third line? –  Isai Jun 29 '13 at 5:22
edit the command \rownumber that it test the value: \ifnum\themagicrownumber>2\relax\arabic{magicrownumbers}\fi` then it puts only the number at the third row –  Herbert Jun 30 '13 at 7:08
@Herbert Do you mean replace \begin{tabular}{@{\makebox[3em][r]{\rownumber\space}} | r} with \begin{tabular}{@{\makebox[3em][r]{\ifnum\themagicrownumber>2\relax\arabic{magic‌​rownumbers}\fi\space}} | r} ? When I do that, I get "Undefined control sequence" errors. –  David Doria Jul 7 at 14:21
@FabianTamp: for the first (column in the first) line use \multicolumn{1}{r}{stuff} and it should not be numbered. –  Herbert Jul 7 at 14:40
add comment

You could just make it use a counter...

  \rownumber & Something \\
  \rownumber & Other stuff \\
  \rownumber & MAGIC!
share|improve this answer
Is there any frendly way to reset the counter between tables? –  miah Jun 21 '11 at 11:56
@miah: Load etoolbox and say \preto\tabular{\setcounter{magicrownumbers}{0}} –  egreg Jun 21 '11 at 11:58
@egreg I put that before my second table but the counter did not reset. I had to use simply \setcounter{magicrownumbers}{0} instead –  David Doria Jul 7 at 14:27
@DavidDoria That code should go in the preamble. –  egreg Jul 7 at 14:29
@egreg Hm, even with that in the preamble, the row numbers do not reset for me unless I clear the counter manually as I explained. –  David Doria Jul 7 at 15:05
show 4 more comments

A quick plain-format version as well for completenes:

\def\myhalign#1{\halign{\global\advance\rowcount by 1 \the\rowcount\quad##&#1}\rowcount=0}
% Yes, yes, next up in *sniping*: "One problem: you can't use repeating preamble"...
share|improve this answer
Two problems. 1. Every subsequent \halign will advance the counter even if it doesn't need it. 2. If a row shouldn't be numbered (a header), omitting \the\rowcount would not avoid stepping the counter. The stepping should go in the table preamble. –  egreg Jun 21 '11 at 14:48
@egreg I wasn't aiming for a be-all-end-all solution; just an answer to the question. –  morbusg Jun 21 '11 at 14:51
@egreg: You don't need the @<username>-notation when you're addressing your comment to the answerer/questioner. –  morbusg Jun 21 '11 at 14:57
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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