Fettgedruckte, horizontal und vertikal ausgerichtete, mehrzeilige Tabellenüberschriften

Fettgedruckte, horizontal und vertikal ausgerichtete, mehrzeilige Tabellenüberschriften

Ich versuche, eine Tabelle zu drucken, bei der die erste Zeile, die die Kopfzeile enthält, fett und sowohl horizontal als auch vertikal zentriert sein soll. Außerdem verwende ich longtabledie Umgebung vondieses Paket, da ich eine wirklich lange Tabelle habe, die sich über mehrere Seiten erstreckt. Aufgrund der horizontalen Belastung möchte ich auch einige der Tabellenüberschriften in 2 Zeilen unterbringen (aber nicht alle), was ich mitshortstack

Allerdings gelingt es mir immer noch nicht, den Inhalt der Kopfzeile vertikal auszurichten, da einige Zellen zwei Zeilen und andere nur eine haben. Unten sehen Sie ein MWE:

\documentclass{report}

\usepackage{booktabs}
\usepackage{longtable}
\newcommand*{\thead}[1]{\multicolumn{1}{c}{\bfseries #1}}

\begin{document}

\begin{center}
\begin{longtable}{rcrrcc}
    \toprule
    \thead{ID} & \thead{Database name} & \thead{\shortstack{Size\\(MB)}} & \thead{\shortstack{No. of\\records}} & \thead{\shortstack{Time stamp\\1st record}} & \thead{\shortstack{Time stamp\\last record}} \\
    \midrule
    %\input{tab-metadata} Really long table
    1 & dummie & 2.1 & 33 & dummie & dummie \\
    2 & dummie & 4.3 & 67 & dummie & dummie \\
    \bottomrule
\end{longtable}
\end{center}

\end{document}

Dieser Code erzeugt die folgende Tabelle:

Nicht ausgerichtete Tabellenüberschriften

Ich bitte um Ihre Hilfe, den einfachsten, korrektesten und elegantesten Weg zu finden, dieses Problem zu lösen und alle Kopfzellen vertikal zu zentrieren.

Antwort1

Die vertikale Zentrierung von Überschriften ist am einfachsten mit zu bewerkstelligen tabularund ich habe es entfernt, centerda es lange Tabellen nicht zentriert. Ich habe den Spaltenabstand etwas reduziert, da Ihre Tabelle für die Seite etwas zu breit war.

\documentclass{report}

\usepackage{booktabs}
\usepackage{longtable}
\newcommand*{\thead}[1]{%
\multicolumn{1}{c}{\bfseries\begin{tabular}{@{}c@{}}#1\end{tabular}}}

\begin{document}

\setlength\tabcolsep{5pt}
\begin{longtable}{@{}rcrrcc@{}}
    \toprule
 \thead{ID} &
 \thead{Database name} &
 \thead{Size\\(MB)} & 
\thead{No. of\\records} &
 \thead{Time stamp\\1st record} &
 \thead{Time stamp\\last record} \\
    \midrule
    %\input{tab-metadata} Really long table
    1 & dummie & 2.1 & 33 & dummie & dummie \\
    2 & dummie & 4.3 & 67 & dummie & dummie \\
    \bottomrule
\end{longtable}


\end{document}

Antwort2

Eine weitere Lösung mit dem makecellPaket, das genau darauf ausgelegt ist, sowohl vertikale als auch horizontale Ausrichtung und eine gemeinsame Formatierung in Zellen mit den Befehlen \theadund auszuwählen \makecell. Ich habe auch geladen, cellspaceum einen weniger engen vertikalen Abstand in Tabellen zu haben:

\documentclass{report}

\usepackage{booktabs}
\usepackage{longtable}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}

\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}

\begin{document}

\begin{center}
  \begin{longtable}{Srcrrcc}
    \toprule
    \thead{ID} & \thead{Database name} & \thead{\shortstack{Size & & & \\(MB)}} & \thead{\shortstack{No. of\\records}} & \thead{\shortstack{Time stamp\\1st record}} & \thead{\shortstack{Time stamp\\last record}} \\
    \midrule
    %\input{tab-metadata} Really long table
    1 & dummie & 2.1 & 33 & dummie & dummie \\
    2 & dummie & 4.3 & 67 & dummie & dummie \\
    \bottomrule
  \end{longtable}
\end{center}

\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen