Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

In a table, how can I draw a horizontal line that goes only through some of the cells? I mean a line like the one in the Foo and in the Bar area of this table:

+----+-----+
|Foo |1 |2 |
|    |1 |2 |
|    +--+--+
|    |1 |2 |
|    |1 |2 |
+----+-----+
|Bar |1 |2 |
|    |1 |2 |
|    +--+--+
|    |1 |2 |
|    |1 |2 |
+----+--+--+
share|improve this question
    
If you need a nested table, visit: tex.stackexchange.com/questions/7958/how-to-nest-tables/… –  xport Jan 9 '11 at 19:17

3 Answers 3

up vote 47 down vote accepted

Instead of nested tables as xport_is_sleeping suggested, you can also use \cline{2-3} which draws a partial line starting on column 2 and ending on column 3 and use \multirow to center the words Foo and Bar on the lines if that's what you want:

alt text

\documentclass{article}
\usepackage{array,multirow}
\begin{document}
\begin{tabular}{|c|cc|}\hline
\multirow{4}{*}{Foo} & 1 & 2 \\
    & 1 & 2 \\\cline{2-3}
    & 1 & 2 \\
    & 1 & 2 \\\hline
\multirow{4}{*}{Bar} & 1 & 2 \\
    & 1 & 2 \\\cline{2-3}
    & 1 & 2 \\
    & 1 & 2 \\\hline
\end{tabular}
\end{document}

When making tables, you should also always use the array package which offers various additional features and improvements (most notably at the vertical and horizontal lines joins).

share|improve this answer
    
\multirow cannot accept graphics. –  xport Jan 9 '11 at 10:56
    
@xport: Why do you say that? I have no problems when replacing Foo by \includegraphics[height=4em]{image} inside the \multirow in the code above. –  Philippe Goutet Jan 9 '11 at 20:34
    
are you sure the image will be vertically centered? :-) –  xport Jan 9 '11 at 20:36
    
@xport: with a \raisebox{-\tabcolsep}{\includegraphics[height=4em]{image}}, it will be vertically centered, yes. –  Philippe Goutet Jan 9 '11 at 20:58

Here's a solution using booktabs and getting rid of of the vertical rules, which leads to a prettier result imho. Have a look at the introduction of the booktabs documentation, which offers some insights in basic table design.

The benefits of booktabs are: Much better table spacing, and \toprule, \midrule and \bottomrule, where \midrule is thinner than the other two, which looks nice.

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}\centering
\begin{tabular}{lll}
\toprule
Foo & 1 & 2 \\
    & 1 & 2 \\\cmidrule{2-3}% That's the rule you're looking for.
    & 1 & 2 \\
    & 1 & 2 \\
\midrule
Bar & 1 & 2 \\
    & 1 & 2 \\\cmidrule{2-3}% This too. The numbers designate the columns covered.
    & 1 & 2 \\
    & 1 & 2 \\
\bottomrule
\end{tabular}
\caption{1 and 2 in relation to Foo and Bar.}
\end{table}

\end{document}

output

share|improve this answer
    
doesn't work with longtable, i guess. –  Vineet Menon May 31 '13 at 14:56
    
@VineetMenon A quick check makes me think it does work. Also, the booktabs documentation explicitly mentions compatibility with longtable and provides some hints in section 5. Have a look at that, and if you still can’t work something out, feel free to ask a new question. –  doncherry May 31 '13 at 18:45
    
oh. my bad, there was a glitch in my source. It's working now. thanks –  Vineet Menon Jun 1 '13 at 8:28

Nested table can solve this beautifully.

alt text


\documentclass{article}
\begin{document}
\begin{tabular}{|c|@{}c@{}|}\hline
Foo
&
\begin{tabular}{cc}
1 & 2 \\
1 & 2 \\\hline
1 & 2 \\
1 & 2 \\
\end{tabular}
\tabularnewline\hline
Bar
&
\begin{tabular}{cc}
1 & 2 \\
1 & 2 \\\hline
1 & 2 \\
1 & 2 \\
\end{tabular}
\tabularnewline\hline
\end{tabular}

\end{document}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.