浮动参数 [H] 垂直拉伸表格

浮动参数 [H] 垂直拉伸表格

我目前将[H]其用作附录中表格列表的浮动参数。这样做的目的是使附录中的表格在每一页上都从相同的垂直距离开始(多个连续表格的垂直对齐)。

现在的问题是,[H]表格被拉伸,因为行距变大。这从何而来?

相反,我只想使用[H]来消除浮动行为,但同时保持格式一致。请参见以下示例来说明问题。您可以交换[H]!h这样两个表看起来就完全一样了,就像您想要的那样,但与顶部的垂直距离被破坏了。

\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\usepackage[onehalfspacing]{setspace}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{float}


\begin{document}

\chapter{Tables}


\begin{table}[!h]
\centering
\caption{Table caption} 
\label{magic numbers}
{\scriptsize
\begin{tabular}{l*{7}{c}}
\toprule 
& \multicolumn{1}{c}{A} & \multicolumn{1}{c}{B} & 
\multicolumn{1}{c}{C} & \multicolumn{1}{c}{D} & \multicolumn{1}{c}{E} & \multicolumn{1}{c}{F} & \multicolumn{1}{c}{G}  \\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\    
\end{tabular}
}
\end{table}

\vspace*{18pt}
\begin{table}[H]
\centering
\caption{Table caption} 
\label{magic numbers}
{\scriptsize
\begin{tabular}{l*{7}{c}}
\toprule 
& \multicolumn{1}{c}{A} & \multicolumn{1}{c}{B} & 
\multicolumn{1}{c}{C} & \multicolumn{1}{c}{D} & \multicolumn{1}{c}{E} & \multicolumn{1}{c}{F} & \multicolumn{1}{c}{G}  \\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
A & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
B & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
C & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\ 
D & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\
E & 54.42 & 54.42 & 54.42 & 54.42 & 54.42& 54.42& 54.42\\  
\end{tabular}
}
\end{table}


\end{document}

因此,最终目标是一致地对齐多个表格(在附录中),即从顶部的同一点开始。也许有办法手动实现这一点?我可以手动为各个表格执行此操作,解决方案实际上不必自动化。此外,我只想在附录中实现此行为,而不是在主文档中实现此行为,因为那里的浮动运行良好。

谢谢。

答案1

这是包的加载顺序问题。您需要setspace在之后加载float;它们都与内部 LaTeX 命令交互\@xfloat

错误:\usepackage[onehalfspacing]{setspace}之前\usepackage{float}

Sample wrong output

\usepackage{float}在之前\usepackage[onehalfspacing]{setspace}

Sample correct output

\documentclass[a4paper]{book}
\usepackage{float}
\usepackage[onehalfspacing]{setspace}

\begin{document}

\chapter{Tables}

\begin{table}[H]
  \centering
  \begin{tabular}{c}
    1\\
    1\\
    1
  \end{tabular}
\end{table}

\begin{table}[h]
  \centering
  \begin{tabular}{c}
    1\\
    1\\
    1
  \end{tabular}
\end{table}

\end{document}

相关内容