LaTeX размещает таблицу за пределами поля страницы

LaTeX размещает таблицу за пределами поля страницы

Я использую класс KOMA scrbook со шрифтом Tex Gyre Pagella (11pt) и полуинтервалом. Я размещаю плавающую таблицу с параметрами позиции "htb", но и pdflatex, и lualatex размещают таблицу за пределами текстового поля. Таблица располагается внизу страницы, но заходит далеко в нижнее поле.

Я использую TeXLive 2014 на Archlinux x64. lualatex --versionпечатает Version beta-0.79.1 (TeX Live 2014/Arch Linux) (rev 4971).

MWE (включая Tex Gyre Pagella и половинный интервал). Я использовал showframeдля визуализации полей:

\documentclass[paper=a4,
                twoside=true,
                parskip=half,
                fontsize=11pt,
                BCOR=3mm]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
% both font and onehalfspacing are imperative for this example
\usepackage{tgpagella}
\usepackage{setspace}
\onehalfspacing{}
\usepackage{booktabs}

\usepackage{multirow}
\usepackage{blindtext}
\usepackage{showframe}

\begin{document}
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.

Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.


\begin{table}[htb]
\caption{Table caption}
\label{tab:label1}
\vspace{2mm}
{\small
\begin{quote} 
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben. Dies hier ist ein Blindtext zum Testen von Textausgaben.
Dies hier ist ein Blindtext zum Testen von Textausgaben.
\end{quote}
}
\begin{center}
    \begin{tabular}{cccc}
        \toprule 
        \multirow{2}{*}{
            Parameter~$b$
        } & \multicolumn{3}{c}{Parameter $h$} \\
        \cmidrule{2-4}
         & 4 & 2 & 1\\ \midrule     
        360 & 0.0123 & 0.0123 & 0.0123\\[-2mm]
         ~ & {\scriptsize $\times 20$} & {\scriptsize $\times 20$}& {\scriptsize $\times 20$}\\[1mm]
        360 & 0.0123 & 0.0123 & 0.0123\\[-2mm]
         ~ & {\scriptsize $\times 20$} & {\scriptsize $\times 20$}& {\scriptsize $\times 20$}\\[1mm]
        360 & 0.0123 & 0.0123 & 0.0123\\[-2mm]
         ~ & {\scriptsize $\times 20$} & {\scriptsize $\times 20$}& {\scriptsize $\times 20$}\\[1mm]
        360 & 0.0123 & 0.0123 & 0.0123\\[-2mm]
         ~ & {\scriptsize $\times 20$} & {\scriptsize $\times 20$}& {\scriptsize $\times 20$}\\
        \bottomrule
    \end{tabular}
\end{center}
\end{table}

\subsection{next subsection}
\blindtext{}

\end{document}

Таблица размещается внутри поля страницы.

Может кто-нибудь мне помочь?

PS: Пробовать разные варианты размещения, такие как "bt" или "tb", помогает в этом MWE, но это не меняет того факта, что поведение с использованием "htb" не ожидается. Я не могу менять каждый float.

PPS: В зависимости от размера текста, я также использовал латекс, чтобы разместить плавающий элемент над текстом: Таблица размещается над текстом

решение1

Использование \centeringвместо \begin{center}...\end{center}устранило проблему (Miktex с Lualatex на Windows) [2].

При использовании \begin{center}...\end{center}дополнительного вертикального пространства вводится внутри среды float. Я подозреваю, что это может сбить расчет полей LaTeX.

В целом, использование \begin{center}...\end{center}не рекомендуется в плавающих средах, вместо этого следует использовать \centering[1].

Обновлять:

Как предположил пользователь egreg, сочетание пакета setspaceи centerокружения в float особенно опасно. Несмотря на то, что позиционирование таблицы с использованием centerокружения работает при удалении setspaceпакета, я бы рекомендовал придерживаться этого, \centeringчтобы избежать будущих проблем.


Пример использования\centering

\begin{table}[htb]
    \caption{Table caption}
    \label{tab:label1}
    \centering
    Descriptive text
    \begin{tabular}{cccc}
        ...
    \end{tabular}
\end{table}

[1] Раздел 3.1 «Основного руководства по использованию LATEX 2ε — Устаревшие команды и пакеты» (http://mirrors.ctan.org/info/l2tabu/english/l2tabuen.pdf)

[2]

позиционирование неподвижного стола

Связанный контент