38

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.)

1

1 Answer 1

39

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

13
  • 1
    From the highest number to the lowest. Jun 3, 2012 at 13:39
  • 1
    @Forgiver: Therefor you can use the package totcount. See also: tex.stackexchange.com/questions/58221/… Jun 3, 2012 at 13:41
  • 2
    @user21916: Put \multicolumn{1}{>{\makebox[3em][r]{}}l}{foo} & bar\\ in the first row.
    – user11232
    Nov 18, 2012 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, 2012 at 19:52
  • 2
    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 # ?! Oct 31, 2013 at 21:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .