86

How can I change the color of the lines (the frame) in a tabular environment? In the following MWE:

\begin{tabular}{c|c|c}
a&b&c \\ \hline
d&e&f \\ \hline
g&h&i
\end{tabular}

I would like the horizontal and vertical lines of the table to have, say a blue color.

lockstep
  • 250,273
Loic Rosnay
  • 8,167

3 Answers3

111

You can use the colortbl package for this. It works as follows:

\documentclass{article}
\usepackage{colortbl}
\begin{document}
  \begin{tabular}{l!{\color{green}\vrule}l}
    \arrayrulecolor{red}\hline
    test & test\\\arrayrulecolor{blue}\hline
  \end{tabular}
\end{document}

Looks like this:

Array with coloured rules

Roelof Spijker
  • 17,663
  • 5
  • 55
  • 63
  • 21
    Or the xcolor package with the table option (internally loading colortbl and giving access to the full xcolor capacity). – Gonzalo Medina Jan 10 '12 at 16:08
  • 3
    the command \arrayrulecolor{red} is exactly what i need. – Loic Rosnay Jan 10 '12 at 19:09
  • 1
    Note that the arrayrulecolor command also applies to the \toprule, \midrule and \bottomrule commands defined in the booktabs package. – ph0t0nix May 18 '16 at 09:03
  • 1
    How do you reset this to the default color afterward? I am guessing that the default is usually black, but I am not sure. – Randy Cragun Jul 21 '19 at 20:52
  • @RandyCragun Have you found out? – Clément Oct 18 '19 at 16:14
  • 1
    Yes. An answer here suggests that the current color is defined as .. Thus, . is the default color at the beginning of the document. That means that you can define a new color to match . at the beginning of the document and then use that color to reset to the default. In the preamble: \AtBeginDocument{\colorlet{defaultcolor}{.}}. Where you want to reset the rule color: \arrayrulecolor{defaultcolor}. – Randy Cragun Oct 19 '19 at 18:45
27

The tabu package could also be helpful here.

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{tabu}

\begin{document}
  \taburulecolor{blue}
  \begin{tabu}{c|c|c}
    a & b & c \\ \hline
    d & e & f \\ \hline
    g & h & i
  \end{tabu}
\end{document}
  • i voted for wh1t3's solution, because, i need this in a very long document, with many tabular that are already written, and i don't want to change the environment. But the package tabu seems looks very interesting. Thank you – Loic Rosnay Jan 10 '12 at 19:11
  • 2
    @nicolasroy: You can still upvote Thorsten's answer as well of course. – Roelof Spijker Jan 10 '12 at 19:36
  • i've have been fighting in understanding how ot officially registerd in this forum... precisely with this purpose :) – Loic Rosnay Jan 10 '12 at 20:01
1

An alternative solution with tblr environment of tabularray package:

\documentclass{article}

\usepackage{xcolor} \usepackage{tabularray}

\begin{document}

\begin{tblr}{ cells = {c}, hlines = {red3}, vlines = {blue3}, } a & b & c \ d & e & f \ g & h & i \ \end{tblr}

\end{document}

enter image description here

L.J.R.
  • 10,932