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.

I'm pulling my hair with the rendering of table cell borders when using multirow and multicol. In the below example, the double-lines in the table's "header" do not extend to the table top, and even more annoying, there is a gap in the top-right corner of the table. Any clues?

\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage{multirow}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\begin{tabular}{|l|c||c|c|c|c||c|c|c|c|} \hline \\
\multirow{2}{*}{} & \multirow{2}{*}{\rotatebox{90}{Target}} & \multicolumn{4}{|c||}{Banana} & \multicolumn{4}{|c|}{Pear} \\
& & \rotatebox{90}{Apple 1} & \rotatebox{90}{Apple 2} & \rotatebox{90}{Apple 3} & \rotatebox{90}{Apple 4} & \rotatebox{90}{Apple 1} & \rotatebox{90}{Apple 2} & \rotatebox{90}{Apple 3} & \rotatebox{90}{Apple 4} \\
    \hline
Apple 1 & $+$ &     & $*$ & $*$ & $*$ & $+$ &     &     &     \\ \hline
Apple 2 & $+$ & $*$ &     & $*$ & $*$ &     & $+$ &     &     \\ \hline
Apple 3 & $+$ & $*$ & $*$ &     & $*$ &     &     & $+$ &     \\ \hline
Apple 4 & $+$ & $*$ & $*$ & $*$ &     &     &     &     & $+$ \\ \hline
\end{tabular}
\end{figure}
\end{document}

enter image description here

share|improve this question

1 Answer 1

up vote 4 down vote accepted

Here's an improved alternative:

enter image description here

\documentclass{article}
\usepackage{multirow}% http://ctan.org/pkg/multirow
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\begin{document}
\begin{tabular}{|l|c||*{4}{c|}|*{4}{c|}} \hline
\multirow{2}{*}{} & \multirow{2}{*}[-1em]{\rotatebox{90}{Target}} & \multicolumn{4}{|c||}{Banana} & \multicolumn{4}{|c|}{Pear} \\
& & \rotatebox{90}{Apple 1} & \rotatebox{90}{Apple 2} & \rotatebox{90}{Apple 3} & \rotatebox{90}{Apple 4} & \rotatebox{90}{Apple 1} & \rotatebox{90}{Apple 2} & \rotatebox{90}{Apple 3} & \rotatebox{90}{Apple 4} \\
    \hline
Apple 1 & $+$ &     & $*$ & $*$ & $*$ & $+$ &     &     &     \\ \hline
Apple 2 & $+$ & $*$ &     & $*$ & $*$ &     & $+$ &     &     \\ \hline
Apple 3 & $+$ & $*$ & $*$ &     & $*$ &     &     & $+$ &     \\ \hline
Apple 4 & $+$ & $*$ & $*$ & $*$ &     &     &     &     & $+$ \\ \hline
\end{tabular}
\end{document}

You've inserted an additional row in the very first line using \hline \\. I've just removed the \\ and used some fine-tuning in the \multirow{<rows>}{<width>}[<fine-tune>]{<stuff>}. That is, pushed the content down 1em.

If you really want the empty row (for spacing), you need to complete the row with empty cells in order to have the vertical rules be placed correctly. In that sense, the following provides what you're after:

%...
\begin{tabular}{|l|c||*{4}{c|}|*{4}{c|}} \hline
& & \multicolumn{4}{c||}{} & \multicolumn{4}{c|}{} \\
%...

enter image description here

In order to control the spacing more precisely, you can use the e-TeX \dimexpr in the following way:

%...
\begin{tabular}{|l|c||*{4}{c|}|*{4}{c|}} \hline
& & \multicolumn{4}{c||}{} & \multicolumn{4}{c|}{} \\[\dimexpr-\normalbaselineskip+\jot]
%...

This will "back skip" \normalbaselineskip and then "forward skip" \jot, leaving you with a 3pt (the dimension of \jot) between the rules.

share|improve this answer
    
I don't recall why I added the extra first row, but your solution is perfectly fine. Thanks very much, also for the extra hints about \dimexpr –  Emit Taste Jun 1 '12 at 18:44

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.