
Я использую класс 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]