当使用其中一个主要的 KOMA-Script 类 — — scrartcl
、,但不是 — — 时,环境中标题的垂直位置会随着加载或卸载包而发生变化scrreprt
:如果加载后者,则标题上方会有额外的间距。scrbook
scrlttr2
longtable
xcolor
这是一个最小的工作示例。
\documentclass[a4paper]{scrartcl}% scrartcl, scrreprt, scrbook
\usepackage{xcolor}% comment and uncomment to see the effect
\usepackage{longtable}
\begin{document}
%
\noindent%
\centering%
Blah blah blah blah.
\begin{longtable}{l l l l}
\hline
\caption{Caption} \\
\hline
\endfirsthead
\hline
\endfoot
Cell & Cell & Cell & Cell \\
Cell & Cell & Cell & Cell \\
\end{longtable}
Blah blah blah blah.
%
\end{document}
结果如下图所示。
xcolor
如果我之后加载longtable
或者将标题放在表格底部,也会出现此问题。但,如果我加载caption
包,额外的空间就会消失,结果在每种情况下都是第一个 — 预期的 — 一个。我只是不需要这个额外的包,只要我可以使用 KOMA-Script 类中的命令和选项获得我想要的东西。最后,无论是否caption
加载包,标准类都不会出现这种情况。
(关于我的代码仅需几点说明:我只\hline
在标题前插入了 以使情况更清楚,但没有它问题仍然会出现;此外,在最终版本中,我显然会使用\captionabove
或\caption
KOMA-Script 选项captions=tableheading
,以及booktabs
!)
问题是:如何在不加载软件包的情况下摆脱额外的空间caption
?
我还有一个次要的问题:为什么环境后的间距longtable
比环境前的间距大?默认情况下,在包中,长度\LTpre
和\LTpost
都定义为等于。\bigskipamount
longtable
答案1
无需加载任何额外软件包的解决方法是
\def\capfont{\leavevmode\normalfont\normalcolor}
添加\leavevmode