Horizontal rule with adjustable height behaving like \cline{n-m}

How can I produce \noalign{\hrule height 1pt} only through a certain number of columns just like with \cline{n-m} (or basically \cline with adjustable thickness)?

Fig. 1: The approximate objective (digitally manipulated in a graphics editing program).

-

You can define a new command which changes the value of \arrayrulewidth, draws the \cline and then restores \arrayrulewidth to its original value:

\documentclass{book}

\newlength{\Oldarrayrulewidth}
\newcommand{\Cline}[2]{%
\noalign{\global\setlength{\Oldarrayrulewidth}{\arrayrulewidth}}%
\noalign{\global\setlength{\arrayrulewidth}{#1}}\cline{#2}%
\noalign{\global\setlength{\arrayrulewidth}{\Oldarrayrulewidth}}}
\begin{document}

\begin{tabular}{ccc}
a & b & c \\\Cline{2pt}{2-3}
d & e & f \\\Cline{3pt}{1-2}
\end{tabular}

\end{document}


The first argument of \Cline controls the "thickness" of the rule.

EDIT: The \cmidrule command provided by the booktabs package admits an optional argument controlling the thickness of the rule, so you can say:

\documentclass{book}
\usepackage{booktabs}

\begin{document}

\begin{tabular}{ccc}
a & b & c \\ \cmidrule[2pt]{2-3}
d & e & f \\ \cmidrule[3pt]{1-2}
\end{tabular}

\end{document}

-
Splendid! Thank you. – Harold Cavendish Jul 31 '11 at 13:55
Unfortunately, this does not seem to have any effect when used with the \multirow command from the multirow package. – O. R. Mapper Dec 19 '14 at 9:57
If I load the mathtools package, this doesn't seem to work... any ideas? – cmhughes Mar 15 '15 at 18:15

You may have a look at the tabu package. It supports optional parameters for the width of the rules in a table.

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{multirow,tabu}
\usepackage{graphicx}

\newcommand*{\rb}[1]{\raisebox{2ex}{\smash{#1}}}
\setlength{\extrarowsep}{10pt}

\begin{document}
\scriptsize
\noindent
\begin{tabu} to \textwidth {|[1pt] c|[1pt] c|[1pt] p{4cm} | X |[1pt]}\tabucline[1pt]{-}
\multirow{4}{*}[-5ex]{\rotatebox{90}{Ten}} & \multirow{2}{*}[-2ex]{\rotatebox{90}{Eight}} & \rb{One} & \rb{Two} \\ \tabucline{3-4}
& & \rb{Three} & \rb{Four} \\[2ex] \tabucline[1pt]{2-4}
& \multirow{2}{*}[-2ex]{\rotatebox{90}{Nine}} & \rb{Five} & \rb{Six} \\ \tabucline{3-4}
& &\multicolumn{2}{l|[1pt]}{\rb{Seven}} \\[4ex] \tabucline[1pt]{-}
\end{tabu}
\end{document}

-
I am indeed impressed by your solution of almost all issues I currently have. It is unfortunate that I did not come across the tabu package before, it looks very promising. There is just one more issue: If I want some of the rules thicker (as in your code), there are gaps between them. Do you know how to make them join seamlessly, please? – Harold Cavendish Jul 31 '11 at 15:38
I see what you mean. And I'm afraid that this is an issue that is better addressed to the package maintainer. – Thorsten Donig Jul 31 '11 at 15:42
I have just accidentally solved it by simply replacing \tabucline with \cline and \Cline defined by @Gonzalo Medina hereinbefore. Thank you very much! – Harold Cavendish Jul 31 '11 at 16:05