Benötigen Sie vertikal zentrierten Text in der Latex-Tabelle

Benötigen Sie vertikal zentrierten Text in der Latex-Tabelle

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, captionund multirowplus, hhlineum die Darstellung doppelter Zeilen zu verbessern. Die Tabelle kann auf zwei Arten in Ihre Ränder eingepasst werden: Reduzieren Sie tabcolsepauf 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 locallyauf 10pt ( \smallBefehl 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} 

Bildbeschreibung hier eingeben

Antwort2

Ist es das, wonach Sie gefragt haben? Hier definiert die Lösung ein \mcMakro, das den Text als Argument für die multirowStruktur verwendet, die den Text linksbündig in zwei Zeilen umbricht.

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

Bildbeschreibung hier eingeben

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}

verwandte Informationen