I define a columntype which wrap its contens automatically and needs an argument for its width. As I want that my tables are exactly starting at the left margin and ending at the right one I used some kind of percentage from my textwidth.
However, when summing the percentages up to 100 the table gets to wide. It is every time try and error. When having more columns I must land way under 100%, when using less columns the "aim"-value differs.
Of course I could use tabularx but there were some things not working correct for my issue (to be honest I don't really can remeber what this thing was as it was far in the past).
Mayber there is some workaround that when my column-percentages ends at 1 the table is the excact width of my paper.
MWE:
\documentclass{scrbook}
\usepackage{tikz}
\usepackage[showframe,includeheadfoot, left=3cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{array} % Tabellen
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\begin{document}
\begin{table}[]
\centering
\caption{My caption}
%\resizebox{\textwidth}{!}{%
\begin{tabular {C{.10\textwidth}C{.10\textwidth}C{.50\textwidth}C{.30\textwidth}} % 100% without resizbox
\toprule
Test & Test &Test & Test \\ \midrule
Test & Test &Test & Test \\
Test & Test &Test & Tes \\ \bottomrule
\end{tabular}
%}
\end{table}
\begin{table}[]
\centering
\caption{My caption}
%\resizebox{\textwidth}{!}{%
\begin{tabular}{C{.04\textwidth}C{.04\textwidth}C{.50\textwidth}C{.30\textwidth}} % 88% without resizebox
\toprule
Test & Test &Test & Test \\ \midrule
Test & Test &Test & Test \\
Test & Test &Test & Tes \\ \bottomrule
\end{tabular}
%}
\end{table}
\begin{table}[]
\centering
\caption{My caption}
\resizebox{\textwidth}{!}{%
\begin{tabular}{C{.10\textwidth}C{0.10\textwidth}C{.50\textwidth}C{.30\textwidth}} % 100% with resizebox
\toprule%
Test & Test &Test & Test \\ \midrule%
Test & Test &Test & Test \\%
Test & Test &Test & Tes \\ \bottomrule%
\end{tabular}%
}
\end{table}
\end{document}
This result in this image:
- 1) 100% without resizebox
- 2) 88% without resizebox
- 3) 100% with resizebox
When using resizebox and my value is 100% the font inside is scaled.
Best Answer
There is a gap of
\tabcolsep
added to both sides of each column, so for 4 columns you need another8\tabcolsep
of space (unless you put@{}
between columns}.