Graphics, Figures & TablesProblem with large table in landscape mode

Information and discussion about graphics, figures & tables in LaTeX documents.
Post Reply
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Problem with large table in landscape mode

Post by Cham »

I have a large table (30 columns !) that I don't want to split into parts. I should have a proper space in landscape mode, but I still have difficulties in setting the table which have problems on its right side.

The table should take all the space available on the text page, and the font size should be as large as possible. Here's a MWE showing the problem. Any help would be greatly appreciated !

Code: Select all

\documentclass[11pt,oneside]{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage[left=0.75in,right=0.75in,top=0.5in,bottom=0.5in,includehead,includefoot]{geometry}
\usepackage{tabularx}
\usepackage{hhline}
\usepackage{here}
\usepackage{pdflscape}

\begin{document}

\begin{landscape}
\begin{center}
	\Large\textbf{Some extremely boring title}
\end{center}

\bigskip

\tabcolsep=0.15cm
\begin{table}[H]
	\tiny  % A bit too small.  Could be larger.
	\centering
	\renewcommand{\arraystretch}{2}
	\begin{tabularx}{\textwidth}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
	\hline
		\multicolumn{30}{|c|}{Some funny title}
		\\ \hline
		\multicolumn{1}{|>{\centering\arraybackslash}X|}{$t$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{1}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{2}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{3}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{4}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{5}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{6}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{7}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{8}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{9}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{10}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{11}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{12}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{13}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{14}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{15}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{16}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{17}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{18}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{19}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{20}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{21}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{22}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{23}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{24}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{25}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{26}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{27}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{28}$}
		& \multicolumn{1}{>{\centering\arraybackslash}X|}{$N_{29}$}
		\\ \hline
		\multicolumn{1}{|c|}{$L$}
		& \multicolumn{29}{c|}{some hilarious unit}
		\\ \hhline{|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|}
		0 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300
		\\ \hline
		1 & 281 & 282 & 283 & 285 & 283 & 282 & 283 & 283 & 277 & 285 & 279 & 282 & 285 & 279 & 284 & 278 & 284 & 276 & 281 & 286 & 279 & 290 & 277 & 284 & 290 & 282 & 290 & 286 & 281
		\\ \hline
	\end{tabularx}
	\caption{Some very funny caption.  LOL !}
\end{table}
\end{landscape}

\end{document}
Here's a preview of the table and its problem :
funnytable.jpg
funnytable.jpg (24.72 KiB) Viewed 9918 times

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p

Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Problem with large table in landscape mode

Post by Cham »

I think I've found a solution : the adjustbox package :

Code: Select all

\documentclass[11pt,oneside]{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage[left=0.75in,right=0.75in,top=0.5in,bottom=0.5in,includehead,includefoot]{geometry}
\usepackage{tabularx}
\usepackage{hhline}
\usepackage{here}
\usepackage{pdflscape}
\usepackage{adjustbox}

\begin{document}

\begin{landscape}
\begin{center}
	\Large\textbf{Some extremely boring title}
\end{center}

\bigskip

\tabcolsep=0.15cm
\begin{table}[H]
	\centering
	\tabcolsep=0.15cm
	\renewcommand{\arraystretch}{1.5}
	\begin{adjustbox}{max width=\linewidth}
	\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
	\hline
		\multicolumn{30}{|c|}{Some hilarious title}
		\\ \hline
		\multicolumn{1}{|>{\centering\arraybackslash}c|}{$t$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{1}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{2}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{3}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{4}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{5}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{6}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{7}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{8}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{9}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{10}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{11}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{12}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{13}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{14}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{15}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{16}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{17}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{18}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{19}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{20}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{21}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{22}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{23}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{24}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{25}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{26}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{27}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{28}$}
		& \multicolumn{1}{>{\centering\arraybackslash}c|}{$N_{29}$}
		\\ \hline
		\multicolumn{1}{|c|}{$L$}
		& \multicolumn{29}{c|}{Wow !  LaTeX is fun !}
		\\ \hhline{|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|}
		0 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300 & 300
		\\ \hline
		1 & 281 & 282 & 283 & 285 & 283 & 282 & 283 & 283 & 277 & 285 & 279 & 282 & 285 & 279 & 284 & 278 & 284 & 276 & 281 & 286 & 279 & 290 & 277 & 284 & 290 & 282 & 290 & 286 & 281
		\\ \hline
	\end{tabular}
	\end{adjustbox}
	\caption{Some very funny caption.  LOL!}
\end{table}
\end{landscape}

\end{document}
Is this the best way of doing this ? I need opinions on the code above.

Any suggestions to improve the code and the output ?
User avatar
Stefan Kottwitz
Site Admin
Posts: 10328
Joined: Mon Mar 10, 2008 9:44 pm

Problem with large table in landscape mode

Post by Stefan Kottwitz »

Well, output: I generally don't like a full grid for tables, locking all in cells. I like some supporting structure by decent horizontal lines only. I never do double lines.

Code: I would put repeated things into a macro, such as for \multicolumn{1}{>{\centering\arraybackslash}c|}{$...$}

Stefan
LaTeX.org admin
rais
Posts: 419
Joined: Sun Nov 16, 2014 8:51 pm

Problem with large table in landscape mode

Post by rais »

Well, considering that in the tabular's column declaration, you already stated `c' as the column type to use, a \multicolumn{1}{[[|]>{...}]c[|]} seems superfluous.
Even if those differ (`those' meaning the column specifications in {tabular} and within the matching \multicolumn statement), a construct like
\multicolumn{1}{|>{\centering\arraybackslash}c|}{$t$} seems odd in its own way: `centering' a centered cell?
Not to mention that \arraybackslash is---usually---just needed in the last cell of a row.

In short, I'd replace those `\multicolumn{1}{<something with `c' as column spec>}{<...>} with <...>, e.g.,

Code: Select all

\multicolumn{1}{|>{\centering\arraybackslash}c|}{$t$}
would come to:

Code: Select all

$t$
KR
Rainer
User avatar
Cham
Posts: 937
Joined: Sat Apr 02, 2011 4:06 pm

Problem with large table in landscape mode

Post by Cham »

Thanks for the feedback. I'll check all of these suggestions.
Post Reply