Нужен вертикально центрированный текст в таблице Latex

Нужен вертикально центрированный текст в таблице Latex

Мне нужно, чтобы текст в каждой ячейке был выровнен по вертикали и центрирован.

\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}

решение1

Решение без определения новых типов столбцов и вычисления ширины столбцов. Просто используйте пакеты makecell, captionи multirow, а также plus hhlineдля улучшения внешнего вида двойных линий. Таблицу можно вписать в поля двумя способами: уменьшить tabcolsepдо 4pt и либо использовать меньший размер шрифта для документа (я привожу пример в 11pt), либо уменьшить размер шрифта locallyдо 10 pt ( \smallкоманда в 12pt подойдет).

Кстати, не используйте booktabs с вертикальными линиями.

    \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} 

введите описание изображения здесь

решение2

Это то, о чем вы просили? Здесь решение определяет \mcмакрос, принимающий текст в качестве аргумента для multirowструктуры, которая будет переносить текст в две строки, выровненные по левому краю.

\newcommand\mc[1]{\multicolumn{1}{l||}{\multirow{2}{0.9cm}{#1}}}

введите описание изображения здесь

Код

\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}

Связанный контент