Quero que o texto em cada célula seja centralizado verticalmente.
\documentclass[12pt,a4paper,onesided]{report}
\usepackage{array}
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Recognition with Haar Wavelet based image compression for $N=5$ features}
\label{tab: Recognition with Haar Wavelet based image compression for $N=5$ features}
\begin{tabular}{|C{1.8cm}||C{1.8cm}||C{2cm}||C{1.8cm}|C{1.8cm}||C{1.8cm}||C{2.5cm}|}
\toprule \bfseries Training folder
&\bfseries Training Time
&\bfseries Training Accuracy
& \multicolumn{2}{c|}{\bfseries Number of images}
&\bfseries Testing folder
& \bfseries Recognition accuracy\\
& & & \bfseries Training &\bfseries Testing & &\\ \midrule
1 & 0.52 & 70.00 & 10 & 90 & 9 & 14.44 \\
2 & 0.66 & 85.00 & 20 & 80 & 8 & 38.75 \\
3 & 0.74 & 86.66 & 30 & 70 & 7 & 40.00 \\
4 & 0.68 & 85.00 & 40 & 60 & 6 & 48.33 \\
5 & 0.88 & 88.00 & 50 & 50 & 5 & 62.00 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Responder1
Uma solução sem definir novos tipos de colunas nem calcular as larguras das colunas. Basta usar os pacotes , e plus makecell
para caption
melhorar a aparência das linhas duplas. A tabela pode caber nas suas margens de duas maneiras: reduza para 4pt e use um tamanho de fonte menor para o documento (dou um exemplo em 11pt) ou reduza o tamanho da fonte para 10pt ( o comando em 12pt serve).multirow
hhline
tabcolsep
locally
\small
Aliás, não use booktabs
com linhas verticais.
\documentclass[11pt,a4paper,onesided]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[showframe, nomarginpar, left=1.5in, right=1in, top=1.5in, bottom=1in,]{geometry}
\usepackage{array}
\usepackage[font = small]{caption}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
\renewcommand{\theadfont}{\bfseries}
\renewcommand{\theadalign}{cc}
\setlength{\tabcolsep}{4pt}
\usepackage{hhline}
\begin{document}
Table fontsize: 11 pt
\begin{table}[htbp]
\centering
\caption{Recognition with Haar Wavelet based image compression for $N=5$ features}
\label{tab: Recognition with Haar Wavelet based image compression for $N=5$ features}
\begin{tabular}{*{3}{|c|}|cc|*{2}{|c|}}%{|C{1.8cm}||C{1.8cm}||C{2cm}||C{1.8cm}|C{1.8cm}||C{1.8cm}||C{2.5cm}|}
\hhline{|-||-||-||--||-||-|}
\multirowthead{2}{Training\\ Folder}
&\multirowthead{2}{Training\\ Time}
&\multirowthead{2}{Training\\ Accuracy}
& \multicolumn{2}{c||}{\thead{Number of images}}
&\multirowthead{2}{Testing\\ Folder}
& \multirowthead{2}{Recognition\\ Accuracy}\\
& & & \thead*{Training} & \thead{Testing} & &\\
\hhline{|-||-||-||--||-||-|}
\Gape[6pt][0pt]{1} & 0.52 & 70.00 & 10 & 90 & 9 & 14.44 \\
2 & 0.66 & 85.00 & 20 & 80 & 8 & 38.75 \\
3 & 0.74 & 86.66 & 30 & 70 & 7 & 40.00 \\
4 & 0.68 & 85.00 & 40 & 60 & 6 & 48.33 \\
\Gape[0pt][6pt]{5} & 0.88 & 88.00 & 50 & 50 & 5 & 62.00 \\
\hhline{|-||-||-||--||-||-|}
\end{tabular}
\end{table}
\fontsize{12}{14}\selectfont
Table font size: 10 point
\begin{table}[htbp]
\small
\centering
\caption{Recognition with Haar Wavelet based image compression for $N=5$ features}
%\small
\label{tab: Recognition with Haar Wavelet based image compression for $N=5$ features}
\begin{tabular}{*{3}{|c|}|cc|*{2}{|c|}}%{|C{1.8cm}||C{1.8cm}||C{2cm}||C{1.8cm}|C{1.8cm}||C{1.8cm}||C{2.5cm}|}
\hhline{|-||-||-||--||-||-|}
\multirowthead{2}{Training\\ Folder}
&\multirowthead{2}{Training\\ Time}
&\multirowthead{2}{Training\\ Accuracy}
& \multicolumn{2}{c||}{\thead{Number of images}}
&\multirowthead{2}{Testing\\ Folder}
& \multirowthead{2}{Recognition\\ Accuracy}\\
& & & \thead*{Training} & \thead{Testing} & &\\
\hhline{|-||-||-||--||-||-|}
\Gape[6pt][0pt]{1} & 0.52 & 70.00 & 10 & 90 & 9 & 14.44 \\
2 & 0.66 & 85.00 & 20 & 80 & 8 & 38.75 \\
3 & 0.74 & 86.66 & 30 & 70 & 7 & 40.00 \\
4 & 0.68 & 85.00 & 40 & 60 & 6 & 48.33 \\
\Gape[0pt][6pt]{5} & 0.88 & 88.00 & 50 & 50 & 5 & 62.00 \\
\hhline{|-||-||-||--||-||-|}
\end{tabular}
\end{table}
\end{document}
Responder2
Era isso que você estava pedindo? Aqui a solução define uma \mc
macro tomando o texto como argumento para a multirow
estrutura que irá quebrar o texto em duas linhas, alinhadas à esquerda.
\newcommand\mc[1]{\multicolumn{1}{l||}{\multirow{2}{0.9cm}{#1}}}
Código
\documentclass[12pt,a4paper]{report}
\usepackage{array,graphicx}
\usepackage[margin=1cm]{geometry}
\usepackage{booktabs,dcolumn,multirow}
\newcolumntype{C}[1]{>{\centering \arraybackslash\hspace{0pt}}m{#1}}
\newcommand\mc[1]{\multicolumn{1}{l||}{\multirow{2}{0.9cm}{#1}}}
\begin{document}
Before:
\begin{table}[htbp]
\centering
\caption{Recognition with Haar Wavelet based image compression for $N=5$ features}
\label{tab: Recognition with Haar Wavelet based image compression for $N=5$ features}
\begin{tabular}{|C{1.8cm}||C{1.8cm}||C{2cm}||C{1.8cm}|C{1.8cm}||C{1.8cm}||C{2.5cm}|}
\toprule \bfseries Training folder
&\bfseries Training Time
&\bfseries Training Accuracy
& \multicolumn{2}{c|}{\bfseries Number of images}
&\bfseries Testing folder
& \bfseries Recognition accuracy\\
& & & \bfseries Training &\bfseries Testing & &\\ \midrule
1 & 0.52 & 70.00 & 10 & 90 & 9 & 14.44 \\
2 & 0.66 & 85.00 & 20 & 80 & 8 & 38.75 \\
3 & 0.74 & 86.66 & 30 & 70 & 7 & 40.00 \\
4 & 0.68 & 85.00 & 40 & 60 & 6 & 48.33 \\
5 & 0.88 & 88.00 & 50 & 50 & 5 & 62.00 \\
\bottomrule
\end{tabular}
\end{table}
After:
\begin{table}[htbp]
\centering
\resizebox{\textwidth}{!}{ % if resizebox is needed
\begin{minipage}{\textwidth} % if resizebox is needed
\caption{Recognition with Haar Wavelet based image compression for $N=5$ features}
\label{tab: Recognition with Haar Wavelet based image compression for $N=5$ features}
\begin{tabular}{|C{1.8cm}||C{1.8cm}||C{2cm}||C{1.8cm}|C{1.8cm}||C{1.8cm}||C{2.5cm}|}
\toprule
\multicolumn{1}{|l||}{\multirow{2}{0.9cm}{\bfseries Training folder}}
&\mc{\bfseries Training Time}
&\mc{\bfseries Training Accuracy}
&\multicolumn{2}{c||}{\bfseries Number of images}
&\mc{\bfseries Testing folder}
&\multicolumn{1}{l|}{\multirow{2}{0.9cm}{\bfseries Recognition accuracy}} \\
& & & \bfseries Training &\bfseries Testing & &\\
\midrule
1 & 0.52 & 70.00 & 10 & 90 & 9 & 14.44 \\
2 & 0.66 & 85.00 & 20 & 80 & 8 & 38.75 \\
3 & 0.74 & 86.66 & 30 & 70 & 7 & 40.00 \\
4 & 0.68 & 85.00 & 40 & 60 & 6 & 48.33 \\
5 & 0.88 & 88.00 & 50 & 50 & 5 & 62.00 \\
\bottomrule
\end{tabular}
\end{minipage} % if resizebox is needed
} % if resizebox is needed
\end{table}
\end{document}