Ich möchte, dass der Text in jeder Zelle vertikal zentriert ist.
\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}
Antwort1
Eine Lösung ohne Definition neuer Spaltentypen oder Berechnung der Spaltenbreiten. Verwenden Sie einfach die Pakete makecell
, caption
und multirow
plus, hhline
um die Darstellung doppelter Zeilen zu verbessern. Die Tabelle kann auf zwei Arten in Ihre Ränder eingepasst werden: Reduzieren Sie tabcolsep
auf 4pt und verwenden Sie entweder eine kleinere Schriftgröße für das Dokument (ich gebe ein Beispiel in 11pt) oder reduzieren Sie die Schriftgröße locally
auf 10pt ( \small
Befehl in 12pt reicht aus).
Übrigens nicht booktabs
mit vertikalen Linien verwenden.
\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}
Antwort2
Ist es das, wonach Sie gefragt haben? Hier definiert die Lösung ein \mc
Makro, das den Text als Argument für die multirow
Struktur verwendet, die den Text linksbündig in zwei Zeilen umbricht.
\newcommand\mc[1]{\multicolumn{1}{l||}{\multirow{2}{0.9cm}{#1}}}
Code
\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}