控制表格上方标题下方的垂直空间

控制表格上方标题下方的垂直空间

我正在编写一个包含多个tables 的较大的文档,在某些情况下,其内容是内联的,而在其他情况下,则包含外部文件(由其他程序创建)。

标题放在这些表格上方,而不是下方,我注意到,当表格的内容从外部文件包含时,其下方会有额外的垂直空间,而内容内联时则不会有这种空间。

这是一个 FMWE(相当简单的工作示例):

\documentclass{article}
\usepackage{booktabs}
\begin{filecontents*}{tabular-external.tex}
\begin{tabular}{c}
\toprule
Stuff goes here \\
\bottomrule
\end{tabular}
\end{filecontents*}
\begin{document}
\begin{table}[h]
\centering
\caption{Inline}
\begin{tabular}{c}
\toprule
Stuff goes here \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[h]
\centering
\caption{Included}
\include{tabular-external.tex}
\end{table}
\end{document}

结果:

在此处输入图片描述

其实我额外的垂直空间。那么 a) 为什么当内容是内联时它不在那里,以及 b) 获取它的最佳(最干净)方法是什么?

答案1

首先,\include这绝对不是您想要的正确工具\input

为什么?因为\include它适用于可以有条件编译的较大文本块。在处理大型文档需要大量时间的旧时代,它非常有用。

它的一个特点\include是它\clearpage在执行之前发出一个命令\input,这是造成垂直空间的原因,因为 \clearpage在浮动中是不合法的。

也许 LaTeX 应该对这里的错误使用发出警告\include,但老实说,\include这有点像过去的遗物。

\include如果用正确的命令替换,即\input,两个表格的排版相同。

在此处输入图片描述

第二个问题:标准课程设置有标题以下表。

您可以通过加载caption包来修复此问题,该包设置表格上方(和图形下方)标题​​的默认值。

\begin{filecontents*}{\jobname-tab.tex}
\begin{tabular}{c}
\toprule
Stuff goes here \\
\bottomrule
\end{tabular}
\end{filecontents*}

\documentclass{article}
\usepackage{booktabs}
\usepackage{caption}

\begin{document}

\begin{table}[htp]
\centering
\caption{Inline}
\begin{tabular}{c}
\toprule
Stuff goes here \\
\bottomrule
\end{tabular}
\end{table}

\begin{table}[htp]
\centering
\caption{Included}
\input{\jobname-tab.tex}
\end{table}

\end{document}

在此处输入图片描述

相关内容