如何消除LaTeX附录中表格与图片间的多余垂直空间?
LaTeX scrbook文档类附录中表格与图片间多余垂直空间问题
我使用scrbook文档类编写附录时,发现表格与图片之间存在不必要的垂直空白。尝试给figure环境添加[H]参数来解决,结果不仅无效,[H]还被直接打印成了文本。
原代码
\documentclass{scrbook} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{tabularray} \begin{document} \chapter{Appendix} \begin{table}[!ht] \centering \begin{tabular}{|l|l|l|l|} \hline Sender & Receiver & Total(Bits) & Frame Rate (ms) \\ \hline VCU & ACU & 88 & 10 \\ \hline VCU & BCU & 488 & 10 \\ \hline VCU & DataRecorder & 536 & 10 \\ \hline \end{tabular} \end{table} \begin{figure} \centering \includegraphics[width = \textwidth,trim={2.3cm 2.3cm 2.3cm 2.3cm},clip]{Device Graphics.pdf} \caption{Device Block} \label{fig:DeviceOverview} \end{figure} \end{document}
效果截图

解决方法
1. 修复[H]参数无效的问题
[H]是float宏包提供的强制定位选项,scrbook默认未加载该宏包,所以直接使用会被识别为普通文本输出。只需在导言区添加:
\usepackage{float}
之后给figure环境加上[H],就能强制图片固定在当前位置,但这种方式可能破坏文档整体排版的连贯性,仅建议在特殊场景下使用。
2. 更合理的间距调整方案
如果只是想减少表格与图片间的空白,无需强制固定位置,可通过以下方式调整:
- 调整标题间距:修改
\belowcaptionskip(标题下方间距)或\abovecaptionskip(标题上方间距)的值,比如\setlength{\belowcaptionskip}{-0.5em} - 直接添加负间距:在表格和图片之间插入
\vspace{-1em}(数值可按需调整) - 全局调整浮动体间距:用
\setlength{\intextsep}{0pt}修改浮动体周围的默认空白,此设置会影响所有浮动体,需谨慎使用
修正后的示例代码
\documentclass{scrbook} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{tabularray} \usepackage{float} % 导入float宏包支持[H]参数 \begin{document} \chapter{Appendix} \begin{table}[!ht] \centering \begin{tabular}{|l|l|l|l|} \hline Sender & Receiver & Total(Bits) & Frame Rate (ms) \\ \hline VCU & ACU & 88 & 10 \\ \hline VCU & BCU & 488 & 10 \\ \hline VCU & DataRecorder & 536 & 10 \\ \hline \end{tabular} \end{table} % 可选:添加负间距减少空白 %\vspace{-1em} \begin{figure}[H] \centering \includegraphics[width = \textwidth,trim={2.3cm 2.3cm 2.3cm 2.3cm},clip]{Device Graphics.pdf} \caption{Device Block} \label{fig:DeviceOverview} \end{figure} \end{document}
内容的提问来源于stack exchange,提问作者Sanchit Jain
相关产品推荐
相关产品推荐

