[Tex/LaTex] Midrule that extends only over some of the columns in booktabs

booktabsrulestables

I hope this isn't a silly question, the thing is that I want to create a table with a midrule applied in just some cells, I mean something like that (just between Item, Animal and Description):

enter image description here

I've always used the comand midrule in order to insert a horizontal line in the table, but it is always applied to the whole row and thats just what I don't want to.

I hope somebody could help me out.

Best Answer

booktabs provides the command \cmidrule for rules that extend over only certain columns. One example would be:

Sample output

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{tabular}{lcr}
  \toprule
  A & B & C \\
  \cmidrule{1-2}
  D & E & F\\
  \cmidrule(lr{1em}){2-3}
  G & H & I\\
  \cmidrule[2pt](lr){1-1}
  J & H & K\\
  \bottomrule
\end{tabular}

\end{document}

The general syntax is

\cmidrule[thickness](shortening){colstart-colend}

where shortening specifies which end(s) l left or r right should be shortened. As standerd the shortening amount is 0.5em when l or r is specified; it can be changed for a given end by writing e.g. r{1em} instead of r.

The table in your example is exactly one of the examples in the booktabs manual, which also contains the code to generate it, see the top of page 5.

Related Question