I'd appreciate advise in centering a multirow text. In the MWE below the multirow text "spring" is NOT centered over the three rows that it spans.
\documentclass[10pt,a4paper,twoside,open=right,headinclude,footinclude]{scrreprt}
\usepackage{classicthesis-ldpkg}
\usepackage{multirow}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{table}[htbf]
\centering
\begin{tabular}{|M{20mm}|M{20mm}|M{20mm}|} \hline
Type & Specs & Uses\\ \hline
-- & Model 1 & blah blah blah blah blah blah blah blah \\ \hline
\multirow{3}*{spring} & Model 2 & blah blah blah blah blah blah blah blah \\ \cline{2-3}
& Model 3 & blah blah blah blah blah blah blah blah \\ \cline{2-3}
& Model 4 & blah blah blah blah blah blah blah blah \\ \hline
\end{tabular}
\end{table}
\end{document}
However, in the trivial case where each entry in the table contains only one line, the multirow text is correctly centered as the following MWE shows:
\documentclass[10pt,a4paper,twoside,open=right,headinclude,footinclude]{scrreprt}
\usepackage{classicthesis-ldpkg}
\usepackage{multirow}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{table}[htbf]
\centering
\begin{tabular}{|M{20mm}|M{20mm}|M{20mm}|} \hline
Type & Specs & Uses \\ \hline
-- & Model 1 & blah \\ \hline
\multirow{3}*{spring} & Model 2 & blah \\ \cline{2-3}
& Model 3 & blah \\ \cline{2-3}
& Model 4 & blah \\ \hline
\end{tabular}
\end{table}
\end{document}
Best Answer
I suggest that you also load the
array
package, as it'll help center (vertically) the contents of a cell; in fact, if you load this package, you needn't bother withmultirow
at all.Separately, and identical to the thrust of egreg's answer, I would strongly recommend you use the
booktabs
package to get (much!) better vertical spacing above and below "rules" (horizontal lines), resulting in a much more "professional" look of your tables. In the code and image below, observe the use of the command\cmidrule{1-3}
to draw a line across the entire width of the table with a thickness of "cmidrule" rather than the thickness of "midrule". Finally, for the the layout of your tabular material, I'd recommend using the ordinary "p" column type for columns 1 and 2 to get their contents left-justified. :-)