1

I'm sure this is a common problem: Sometimes, the header of a table is way too big for the columns:

You end up with a table that is either too high, too wide or just ugly to look at.

enter image description here

Previously, I sticked to rotating the table header, but in this case that table is rotated, too. Which means the reader must turn around the page two times before being able to understand the table. Rotating the text the other way around would be kind of wrong in a typography sense or at least not best practice.

The table is currently created by the following code:

\renewcommand{\arraystretch}{1.5}
\begin{landscape}
  \footnotesize
  \begin{longtable}{ p{2.5cm} p{11cm} l l l p{1cm} l p{1cm} }
    & \textbf{Beschreibung}                                                                                                                                                                                                                                                                  & \rot{\textbf{Beliebtheit\footnotemark}} & \rot{\textbf{Skalierbarkeit}} & \rot{\textbf{Kompatabilität}}  &  \rot{\parbox[t]{4cm}{\textbf{Größe des Ökosystems}\\\textbf{und der Community}}} & \rot{\textbf{Gesamtbewertung}} & \rot{\textbf{Kommerziell}} \\
    \toprule
    \textbf{ElasticSearch\footurl{https://www.elastic.co/de/}}                                         & ElasticSearch ist in Java geschrieben und basiert auf Lucene. Die Suchmaschine ist Teil eines großen Ökosystems, des sogenannten Elastic Stacks. Durch eine große Skalierbarkeit und Flexibilität ist sie auf Enterprise-Applikationen ausgelegt. & 5 &  &  &  &  & nein \\
    \textbf{Solr\footurl{https://lucene.apache.org/solr/}}                                             & Solr ist eine Suchmaschine, die auf Lucene basiert und in Java geschrieben ist. Die Entwickler beschreiben das Tool als \enquote{zuverlässig, skalierbar und fehlertolerant} \cite{ASF2019}.                                                      & 2 &  &  &  &  & nein \\
    \textbf{Splunk\footurl{https://www.splunk.com/de_de}}                                              & Splunk bietet verschiedene Lösungen an, mit denen eine Enterprise Search umgesetzt werden kann, hauptsächlich Splunk Enterprise und Splunk Cloud. Der Entwickler legt Fokus auf eine flexible, anpassbare Lösung \cite{Splunk>2019}.              & 2 &  &  &  &  & ja \\
    \textbf{Amazon CloudSearch\footurl{https://aws.amazon.com/de/cloudsearch/}}                        & Amazon CloudSearch ist ein Cloud-Service, der eine vollumfängliche Suchlösung bereitstellt. Anwender können Daten hochladen aus denen automatische ein Suchindex erstellt wird.                                                                   & 1 &  &  &  &  & ja \\
    \textbf{Google Cloud Search\footurl{https://gsuite.google.com/intl/de/products/cloud-search/}}     & Mit Google Cloud Search können unternehmensinterne Datenquellen durchsuchbar gemacht, die Lösung setzt dabei wie Amazon CloudSearch auf Cloud-Technologie. Der Service löst 2019 Google Search Appliance vollständig ab.                          & - &  &  &  &  & ja \\
    \bottomrule
    \caption{Bewertung wichtiger Suchmaschinen als Entscheidungsgrundlage}
    \label{table:engine-rating}
  \end{longtable}
\end{landscape}
\footnotetext{Die Beliebtheit wurde einer Statistik von DB-Engines \cite{DBEngines2019} entnommen und auf den Bereich $[1, 5]$ normalisiert.}

To rotate the table header, I currently use the code proposed in this tex SE answer, I just changed it to 90 degrees.

What is the best way to create a table header that just references a legend somewhere else (Header: "A" "B" "C", bottom of the page: A: "Beliebtheit" and so on...)?

Here you can see what I mean (please excuse the bad quality, that's the best I can do at my workplace...):

enter image description here

7
  • You can use threeparttable and write the legend as a table note. Other posssibility: rotate the column heads by only, say, 30°. To avoid having too wide columns in the latter case, you may use the \rlap command. – Bernard Aug 16 '19 at 12:52
  • I have rotated them by only a few degrees, but the table is just too big that way, plus as I said, it's not convenient for the reader, as the table is already inside a \begin{landscape}, I will try the threeparttable, though – Thomas Pötzsch Aug 16 '19 at 13:03
  • Did you use \rlap for the column heads? – Bernard Aug 16 '19 at 13:32
  • No, I do not, i will add my table as a snippet in a moment – Thomas Pötzsch Aug 16 '19 at 13:45
  • Another possibility is to use \tikzmark to locate the headers and tikz in overlay mode to add the headers, either rotated or offset with arrows. You might need to add some blank space for the tikzpicture. – John Kormylo Aug 16 '19 at 14:55
2

Here is my suggestion using the threeparttablex package in combination with xltabular. This is based on the assumption that your actual table will be longer than the one shown in your question so a pagebreak inside of the table will be needed.

enter image description here

Depending on the contents of the last columns of the table, you could also comment out the landscape environment in teh MWE below and obtain teh following table:

enter image description here

If your table will not be longer than a single age, I'd recommend to use threeparttable instead of threeparttablex and tabularxinstead of xltabular.

\documentclass{article}
\usepackage{pdflscape}
\usepackage{booktabs}

\usepackage{xltabular}
\usepackage{threeparttablex}
\usepackage{calc}


\usepackage{csquotes}
\usepackage{url}


\begin{document}

\renewcommand{\arraystretch}{1.5}
\begin{landscape}
  \footnotesize
  \begin{ThreePartTable}
  \begin{TableNotes}
     \item[1] Die Beliebtheit wurde einer Statistik von DB-Engines \cite{DBEngines2019} entnommen und auf den Bereich $[1, 5]$ normalisiert.
     \item[2] \url{https://www.elastic.co/de/}
     \item[3] \url{https://lucene.apache.org/solr/}
     \item[4] \url{https://www.splunk.com/de_de}
     \item[5] \url{https://aws.amazon.com/de/cloudsearch/}
     \item[6] \url{https://gsuite.google.com/intl/de/products/cloud-search/}
  \end{TableNotes}
  \begin{xltabular}{\linewidth}{ >{\raggedright\arraybackslash}p{2cm} X l l l l l l }
      \caption{Bewertung wichtiger Suchmaschinen als Entscheidungsgrundlage}\\
      \endhead
      \bottomrule
      \multicolumn{8}{p{\textwidth-2\tabcolsep}}{\textbf{A}: Beliebtheit, \textbf{B}: Skalierbarkeit, \textbf{C}: Kompatabilität, \textbf{D}: Größe des Ökosystems und der Community, \textbf{E}: Gesamtbewertung, \textbf{F}: Kommerziell}\\
      \insertTableNotes
      \endfoot
    & \textbf{Beschreibung}                                                                                                                                                                                                                                                                  & \textbf{A\tnote{1}} & \textbf{B} & \textbf{C}  &  \textbf{D} & \textbf{E} & \textbf{F} \\
    \toprule
    \textbf{ElasticSearch\tnote{2}}                                         & ElasticSearch ist in Java geschrieben und basiert auf Lucene. Die Suchmaschine ist Teil eines großen Ökosystems, des sogenannten Elastic Stacks. Durch eine große Skalierbarkeit und Flexibilität ist sie auf Enterprise-Applikationen ausgelegt. & 5 &  &  &  &  & nein \\
    \textbf{Solr\tnote{3}}                                             & Solr ist eine Suchmaschine, die auf Lucene basiert und in Java geschrieben ist. Die Entwickler beschreiben das Tool als \enquote{zuverlässig, skalierbar und fehlertolerant} \cite{ASF2019}.                                                      & 2 &  &  &  &  & nein \\
    \textbf{Splunk\tnote{4}}                                              & Splunk bietet verschiedene Lösungen an, mit denen eine Enterprise Search umgesetzt werden kann, hauptsächlich Splunk Enterprise und Splunk Cloud. Der Entwickler legt Fokus auf eine flexible, anpassbare Lösung \cite{Splunk>2019}.              & 2 &  &  &  &  & ja \\
    \textbf{Amazon CloudSearch\tnote{5}}                        & Amazon CloudSearch ist ein Cloud-Service, der eine vollumfängliche Suchlösung bereitstellt. Anwender können Daten hochladen aus denen automatische ein Suchindex erstellt wird.                                                                   & 1 &  &  &  &  & ja \\
    \textbf{Google Cloud Search\tnote{6}}     & Mit Google Cloud Search können unternehmensinterne Datenquellen durchsuchbar gemacht, die Lösung setzt dabei wie Amazon CloudSearch auf Cloud-Technologie. Der Service löst 2019 Google Search Appliance vollständig ab.                          & - &  &  &  &  & ja \\
    \label{table:engine-rating}
  \end{xltabular}
  \end{ThreePartTable}
\end{landscape}

\end{document}
1
  • I played around with threeparttable yesterday and came up with a similar solution, I just got hung up on the columns not being references to the notes (I looked into it, because of the formatting this would require a lot more work). This is perfect, though. I will update my questing to add the missing information. – Thomas Pötzsch Aug 19 '19 at 9:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.