# Space between floats and text after special declaration of font size for scrbook

Our designer suggested a font size of 10.5. We passed this as an option to the srcbook class and everything seems to work fine except the space between main text and floats. With fontsize=10.5 much more space than usual is inserted. Is there a way to fix this?

\documentclass[fontsize=10.5pt]{scrbook}
%\documentclass[fontsize=10pt]{scrbook}
%\documentclass[fontsize=11pt]{scrbook}

\usepackage{lipsum}

\usepackage{float}

\begin{document}

\lipsum
\lipsum[3-8]

\begin{table}[H]
\centerline{%
\begin{tabular}{|c|c|c|c|c|c|}\hline
& Prefield & T/C & \multicolumn{3}{c|}{Sentence Field}\\ \hline
& & & & Verbal Field & \\ \hline\hline
(han siger) &   & & han ikke & har & lyst \\
(he says') & & & (he not') & (has') & (desire') \\ \hline
\end{tabular}
}
\end{table}
\lipsum[3-10]

\end{document}

• Are you using that font setup in your actual document, as apart from warnings from scrbook you get a warning from latex that it will use the 11pt font anyway: LaTeX Font Warning: Font shape 'OT1/cmr/m/n' in size <10.5> not available (Font) size <10.95> substituted on input line 1368. – David Carlisle Oct 6 '13 at 10:01
• We use XeLaTeX. There were no complaints. – Stefan Müller Oct 6 '13 at 11:49
• Note that if you add \RequirePackage{fix-cm} before \documentclass, a 10.5 base font is used. – egreg Oct 6 '13 at 13:00

If you add \showoutput you see that comparing your original document to the same with 11pt option, the space after the H in the first case is

...\glue 31.3488 plus 4.1697 minus 4.1697
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 4.9958
...\hbox(7.60416+2.12917)x373.44246, glue set - 0.48822


whereas in 11pt version the space is

...\glue 12.0 plus 2.0 minus 2.0
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 5.99585
...\hbox(7.60416+2.12917)x418.25555, glue set - 0.64508
....\hbox(0.0+0.0)x10.95003


The same 11pt font is used in both cases (at least with the fonts used here) as LaTeX warns:

LaTeX Font Warning: Font shape OT1/cmr/m/n' in size <10.5> not available
(Font)              size <10.95> substituted on input line 1368.


Without looking too deeply into scrbook presumably most lengths are not set up for non-standard size options. It warns in the log:

Class scrbook Warning: Using fallback calculation to setup font sizes
(scrbook)              for basic size 10.5pt' on input line 1368.


In other words, if you choose 11pt you get human chosen designer lengths set, but if you choose 10.5pt it just does what it does.

Since you get the same 11pt font in either case, the simplest thing appears to be to use the 11pt option.

Note that if you use H the insert is not a float at all, it is essentially a captioned minipage and does not get the same spacing as a figure that has floated with say t. generally speaking it is at best an option of last resort as preventing floating makes it hard to get good page breaks.

• Thanks! I guess I am misusing the float environment to get some space between the text and my tabular. I have a lot of such sentences and they should not float. Is there a more cannonical way to do this? – Stefan Müller Oct 6 '13 at 11:23
• @StefanMüller perhaps \begin{center}\begin{tabular} – David Carlisle Oct 6 '13 at 11:28
• The KOMA-Script warning about the fallback calculation unfortunately only is explained in the KOMA-Script book (which is only available in German IIRC). There has been a question about it: tex.stackexchange.com/q/108569/5049 – cgnieder Oct 6 '13 at 11:33

Note that you don't get a 10.5pt font with that declaration, because Computer Modern fonts, by default, come in fixed sizes: 10pt, 11pt (actually 10.95pt), 12pt and so on.

However, one can fix this and use freely scalable fonts (but choosing the nearest fixed type size before scaling) with

\RequirePackage{fix-cm}
\documentclass[fontsize=10.5pt]{scrbook}


There is another problem. The computations made by scrbook of the various parameters give wrong results, at least for \intextsep that turns out to be 31.3488pt plus 4.1697pt minus 4.1697pt, while \baselineskip is fixed to 12.59996pt.

When 11pt size is chosen, the two parameters are 12.0pt plus 2.0pt minus 2.0pt and 13.6pt respectively. At 10pt size, they are 12.0pt plus 2.0pt minus 2.0pt and 12.0pt.

A workaround would be to add

\setlength{\intextsep}{12pt plus 2pt minus 2pt}


to the preamble (or any value you think fit). However, this does not solve all problems. For instance, the \large font is computed to be 12.6/15.12 (size/baselineskip) and \small to be 9.5/11.5, whereas with 11pt base size we'd have 12/14 for \large and 10/12 for \small.

A comparison for \huge doesn't show big gaps like for \large.

In conclusion, using pointsize=10.5pt is risky and all parameters should be checked for consistency.