LaTeX coloca a tabela fora da margem da página

LaTeX coloca a tabela fora da margem da página

Estou usando o scrbook da classe KOMA com a fonte Tex Gyre Pagella (11pt) e espaçamento meio. Estou colocando uma tabela flutuante com as opções de posição "htb", mas tanto o pdflatex quanto o lualatex colocam a tabela fora do corpo do texto. A tabela está posicionada na parte inferior da página, mas vai até a margem inferior.

Estou usando o TeXLive 2014 no archlinux x64. lualatex --versionimpressões Version beta-0.79.1 (TeX Live 2014/Arch Linux) (rev 4971).

MWE (inclui Tex Gyre Pagella e meio espaçamento). Eu costumava showframevisualizar as margens:

\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}

A tabela é posicionada dentro da margem da página

Alguém pode me ajudar?

PS: Experimentar diferentes opções de posicionamento como "bt" ou "tb" ajuda neste MWE, mas isso não muda o fato de que o comportamento ao usar "htb" não é esperado. Não posso mudar todos os carros alegóricos.

PPS: Dependendo do tamanho do texto, também fiz com que o látex colocasse o flutuador acima do texto: A tabela é posicionada acima do texto

Responder1

Usar \centeringem vez de \begin{center}...\end{center}resolver o problema (Miktex com Lualatex no Windows) [2].

Ao usar \begin{center}...\end{center}espaço vertical adicional é introduzido dentro do ambiente flutuante. Suspeito que isso possa atrapalhar a computação de margens do LaTeX.

Em geral o uso de \begin{center}...\end{center}é desencorajado em ambientes flutuantes e você deve usar \centeringem seu lugar[1].

Atualizar:

Conforme sugerido pelo usuário egreg, a combinação do setspacepacote e do centerambiente em floats é especialmente perigosa. Apesar do posicionamento da mesa utilizando o centerambiente funcionar na hora de retirar a setspaceembalagem, sugiro continuar \centeringpara evitar futuras dores de cabeça.


Exemplo de uso de\centering

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

[1] Seção 3.1 de "Um guia essencial para o uso do LATEX 2ε - Comandos e pacotes obsoletos" (http://mirrors.ctan.org/info/l2tabu/english/l2tabuen.pdf)

[2]

posicionamento da mesa fixa

informação relacionada