33

I want to automatically enumerate the text rows of a table. Is there an option within tabular, or another package? (Of course I do not want the rules to be enumerated.)

36

First define your own counter -- in this case rowcount. Now you can use the the declaration by @{} to print out the counter:

Here the code:

\documentclass{article}
\usepackage{array}
\newcounter{rowcount}
\setcounter{rowcount}{0}
\begin{document}

\begin{tabular}{@{\stepcounter{rowcount}\therowcount.)\hspace*{\tabcolsep}}ll}
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
\end{tabular}

\end{document}

enter image description here


EDIT

The alignment of the row numbers can be down by adding a \makebox with a specific with and adjustment.

\makebox[3em][r]{\therowcount.)}

In this case the number rowcount will be printed in a box with a width of 3em and right aligned.

enter image description here


Colored Background

To get a colored background you can use packages like tcolorbox, framed, mdframed or adjustbox

Here an example with adjustbox. Unfortunately there is no fontcolor option.

In the newest of of adjustbox the author Martin Scharrer provided a new key fgcolor to setup the font color of the environment.

https://bitbucket.org/martin_scharrer/adjustbox/changeset/943f7cb95271

\documentclass{article}
\usepackage{array}
\usepackage{adjustbox}
\newcounter{rowcount}
\setcounter{rowcount}{0}
\usepackage[framemethod=tikz]{mdframed}
\begin{document}
\adjustbox{bgcolor=black, tabular=@{\stepcounter{rowcount}\makebox[3em][r]{\color{white}\therowcount.)}\hspace*{\tabcolsep}}>{\color{white}}l>{\color{white}}l}{% 
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
foo & bar\\
} 

\end{document}

enter image description here

  • 1
    From the highest number to the lowest. – kiss my armpit Jun 3 '12 at 13:39
  • 1
    @Forgiver: Therefor you can use the package totcount. See also: tex.stackexchange.com/questions/58221/… – Marco Daniel Jun 3 '12 at 13:41
  • 2
    @user21916: Put \multicolumn{1}{>{\makebox[3em][r]{}}l}{foo} & bar\\ in the first row. – user11232 Nov 18 '12 at 23:52
  • 1
    @Chernoff you can use \roman{\therowcount} to get lowercase roman numerals. Other options are \Roman{} for upper case roman numeral (I, II, ...), \alph{} for lower case letters (a, b, ...) and \Alph{}. Default is \arabic{}. – mythealias Dec 8 '12 at 19:52
  • 1
    What if there is a header, and I only want to show the number as of the next line, and in header show the column title, like # ?! – Ivan Machado Oct 31 '13 at 21:20

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.