22

I have a table and I want to make the font color red for just one row (not the background). How do I do that? Here's my table:

  \begin{tabular}{ l | l l l l }
        & 1 & 2 & 3 & 4 \\ 
    \hline 
    1   & A & B & C & D \\ 
    2   & A & B & C & D \\ 
    3   & A & B & C & D \\ 
    4   & A & B & C & D \\ 
  \end{tabular}
Eddy
  • 1,875

3 Answers3

37

If you don't want to use the tabu package you can define a \rowstyle command together with supporting column types + and = as follows:

\documentclass{article}

\usepackage{array}
\usepackage{xcolor}

\makeatletter

\newcommand*{\@rowstyle}{}

\newcommand*{\rowstyle}[1]{% sets the style of the next row
  \gdef\@rowstyle{#1}%
  \@rowstyle\ignorespaces%
}

\newcolumntype{=}{% resets the row style
  >{\gdef\@rowstyle{}}%
}

\newcolumntype{+}{% adds the current row style to the next column
  >{\@rowstyle}%
}

\makeatother

\begin{document}

\begin{tabular}{ =l | +l +l +l +l }
  \rowstyle{\color{red}}
      & 1 & 2 & 3 & 4 \\
  \hline
  1   & A & B & C & D \\
  2   & A & B & C & D \\
  3   & A & B & C & D \\
  4   & A & B & C & D \\
\end{tabular}

\end{document}
David Carlisle
  • 757,742
mhp
  • 8,692
17

You could use the tabu environment of the tabu package with the command \rowfont, for example:

\documentclass{article}
\usepackage{tabu}
\usepackage{xcolor}
\begin{document}
  \begin{tabu}{ l | l l l l }
  \rowfont{\color{red}}
        & 1 & 2 & 3 & 4 \\ 
    \hline 
    1   & A & B & C & D \\ 
    2   & A & B & C & D \\ 
    3   & A & B & C & D \\ 
    4   & A & B & C & D \\ 
  \end{tabu}
\end{document}

enter image description here

Stefan Kottwitz
  • 231,401
  • 1
    Much better than my idea of a per-column \color{red}. – Werner Aug 23 '11 at 17:52
  • Is an unaltered tabu environment equivalent to an unaltered tabular environment? – doncherry Aug 23 '11 at 17:58
  • 1
    @doncherry: unaltered it behaves very similarly. Differences are explained in the manual, there's a section dedicated to it. – Stefan Kottwitz Aug 23 '11 at 19:10
  • That's annoying, my texlive package doesn't come with tabu.sty. I've even installed texlive-full. I'm using xubuntu 10.04 by the way. I can't figure out how to install tabu.sty manually could someone point me in the right direction? Thanks – Eddy Aug 23 '11 at 20:02
  • 1
    @Eddy: don't worry, installation is not hard, and by trying that you will get further knowledge. You can download it from CTAN, and see How do I install a dtx file, Placing sty files and if you use TeX Live (not Xubuntu repositories) Installing tabu.sty. – Stefan Kottwitz Aug 23 '11 at 20:24
  • 2
    Figured out how to do it: 1. Download tabu.dtx and tabu.ins 2. run latex tabu.ins 3. move tabu.sty to $HOME/texmf/tex/latex/commonfiles 4. run texhash $HOME/texmf – Eddy Aug 28 '11 at 11:49
  • @StefanKottwitz thanks for sharing that solution. I tried it on a table in a blank tex file and it works wonderfully. However, when trying to implement it in the same table part of a much longer document, this causes a timeout in compilation (I am using overleaf). Are you aware of any possible clashes with other packages? – Andreuccio Mar 28 '19 at 11:43
  • 2
    Unfortunately, the tabu package appears to be broken and unmaintained these days. – mat May 13 '21 at 11:21
3

In {NiceTabular} of nicematrix, you have a command \RowStyle to specify formatting instructions for the current row.

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{l|llll} \RowStyle{\color{red}} & 1 & 2 & 3 & 4 \ \hline 1 & A & B & C & D \ 2 & A & B & C & D \ 3 & A & B & C & D \ 4 & A & B & C & D \ \end{NiceTabular}

\end{document}

Output of the first code

There is also a key color for that command \RowStyle. color=red will insert \leavevmode\color{red} with the \leavevmode which is necessary in columns of type p, m, b and X (otherwise, there is an extra vertical space).

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{l|p{1cm}p{1cm}p{1cm}p{1cm}} \RowStyle[color=red]{} & 1 & 2 & 3 & 4 \ \hline 1 & A & B & C & D \ 2 & A & B & C & D \ 3 & A & B & C & D \ 4 & A & B & C & D \ \end{NiceTabular}

\end{document}

Output of the second code

F. Pantigny
  • 40,250