我使用的是 KOMA 类 scrbook,字体为 Tex Gyre Pagella (11pt),间距为一半。我放置了一个带有位置选项“htb”的表格浮动,但 pdflatex 和 lualatex 都将表格放在了文本主体之外。表格位于页面底部,但深入到底部边距。
我在 archlinux x64 上使用 TeXLive 2014。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”的行为不符合预期的事实。我无法更改每个浮点数。
PPS:根据文本大小,我还让乳胶将浮动内容放置在文本上方:
答案1
使用\centering
而不是\begin{center}...\end{center}
解决了问题(Windows 上将 Miktex 与 Lualatex 一起使用)[2]。
当\begin{center}...\end{center}
在浮动环境中引入额外的垂直空间时,我怀疑这可能会影响 LaTeX 的边距计算。
\begin{center}...\end{center}
一般来说,在浮动环境中不鼓励使用,而应该使用\centering
[1]。
更新:
setspace
正如用户 egreg 所建议的,将包和环境组合成浮动包尤其危险。尽管在移除包时center
使用环境定位表格是可行的,但我建议坚持这样做,以避免将来出现麻烦。center
setspace
\centering
使用示例\centering
\begin{table}[htb]
\caption{Table caption}
\label{tab:label1}
\centering
Descriptive text
\begin{tabular}{cccc}
...
\end{tabular}
\end{table}
[1] 《LATEX 2ε 使用基本指南 - 过时的命令和包》第 3.1 节 (http://mirrors.ctan.org/info/l2tabu/english/l2tabuen.pdf)
[2]