What's the recommend way of changing the font size in a particular table? Is there a better way than enclosing all values with, for example, the \tiny
function.
Scale down your table to the textwidth
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{table}
\resizebox{\textwidth}{!}{%
\begin{tabular}{cc}
Knuth & Lamport
\end{tabular}}
\end{table}
\end{document}
then you have the optimal font size. However, all tabular lines are also scaled down which doesn't matter because it looks nicer.
-
Now if this would only work with text wrapping as well and eliminate the need to manually specify columns widths, that would be awesome. Is there a way to use your functionality and also have automatic text wrapping? – Veridian Aug 9 '13 at 2:57
-
5use a
tabularx
withX
columns – user2478 Aug 9 '13 at 20:50 -
4It was not stated but the caption,
\caption{demo table}
, and label,\label{tab:demo}
, go outside of the\resizebox
area. – Steven C. Howell Feb 1 '17 at 19:09 -
2I have a table in landscape
\begin{landscape}
. When I used\textwidth
for defining the width of the resized box, the resulting box had the width of the text of a portrait oriented page. For anybody having the same problem, use\linewidth
instead of\textwidth
, it solved the problem in my case. Source: tex.stackexchange.com/a/7686/118906 – a tiger Apr 26 '17 at 13:14 -
1This is one of the most helpful tips I have ever seen on LaTeX. Thanks a lot. – Mike Aug 21 '20 at 9:03
Write \tiny
immediately after \begin{table}
. If you don't use a (floating) table
environment, enclose your (e.g.) tabular
environment in a group and write \tiny
after \begingroup
.
\documentclass{article}
\begin{document}
\begin{table}
\tiny
\centering
\begin{tabular}{cc}
Knuth & Lamport
\end{tabular}
\end{table}
\end{document}
EDIT: To change the fontsize for all tables (or even floats of every type), one may use the floatrow
package (this also saves typing \centering
in every table):
\documentclass{article}
\usepackage{floatrow}
\DeclareFloatFont{tiny}{\tiny}% "scriptsize" is defined by floatrow, "tiny" not
\floatsetup[table]{font=tiny}
\begin{document}
\begin{table}
\begin{tabular}{cc}
Knuth & Lamport
\end{tabular}
\end{table}
\end{document}
-
7Just one quick additional remark: whenever your figure/table has a caption, be sure to change the font size only after you've specified the caption. This is particularly important if you're specifying
tiny
orscriptsize
for the font size. – Mico Aug 31 '11 at 17:26 -
Anyway to specify font sizes between \tiny and \small? \tiny is too small for me to read and \small is the same as normal font size – Veridian Aug 13 '13 at 0:16
-
3
-
1Dredging up the past... @Mico, I don't see this behaviour at all. None of my captions (specified with
\caption
) are affected in any way with a fontsize declaration before them inside atable
environment. – a different ben Jan 21 '14 at 23:21
An easier way to change the font size for ALL tables:
\usepackage{etoolbox}
\AtBeginEnvironment{tabular}{\tiny}
-
Very, very dangerous. A
tabular
may be hidden in places you do not suspect. For example in\maketitle
. – campa Dec 2 '20 at 15:00 -
I tried but didn't find any differences using
\maketitle
. If it happens, we should set a particular font size for any special tables. – DianChao Lin Dec 16 '20 at 16:35 -
That was just an example; not every class defines
\maketitle
using atabular
but some do (e.g. the standard classes for the author). My point is that there might be atabular
hidden somewhere where you do not expect it, and changing the default behaviour oftabular
might have unforeseeable consequences. So I stand by my opinion that this is dangerous. (I haven't said "bad" or "wrong". Just dangerous.) – campa Dec 16 '20 at 16:45
\scalebox{}{}
of thegraphicx
package as mentioned here: tex.stackexchange.com/a/56035/92521 – daniel.heydebreck Apr 6 '16 at 10:09