scrbook 字体大小特殊声明后,浮动元素与文本之间的间距

scrbook 字体大小特殊声明后,浮动元素与文本之间的间距

我们的设计师建议使用 10.5 号字体。我们将其作为选项传递给类srcbook,除了主文本和浮动之间的空间外,一切似乎都运行良好。fontsize=10.5插入的空间比平常多得多。有办法解决这个问题吗?

\documentclass[fontsize=10.5pt]{scrbook}          
%\documentclass[fontsize=10pt]{scrbook}          
%\documentclass[fontsize=11pt]{scrbook}          

\usepackage{lipsum}  

\usepackage{float}

\begin{document}               

\lipsum 
\lipsum[3-8]  

\begin{table}[H]
\centerline{%
\begin{tabular}{|c|c|c|c|c|c|}\hline
  & Prefield & T/C & \multicolumn{3}{c|}{Sentence Field}\\ \hline
  & & & & Verbal Field & \\ \hline\hline
(han siger) &   & & han ikke & har & lyst \\
(`he says') & & & (`he not') & (`has') & (`desire') \\ \hline
\end{tabular}
}
\end{table}
\lipsum[3-10]  

\end{document}

答案1

如果您添加,\showoutput您会发现将原始文档与相同的选项进行比较,第一种情况下11pt后面的空格是H

...\glue 31.3488 plus 4.1697 minus 4.1697
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 4.9958
...\hbox(7.60416+2.12917)x373.44246, glue set - 0.48822

而在 11pt 版本中,空间是

...\glue 12.0 plus 2.0 minus 2.0
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 5.99585
...\hbox(7.60416+2.12917)x418.25555, glue set - 0.64508
....\hbox(0.0+0.0)x10.95003

正如 LaTeX 警告的那样,两种情况下都使用相同的 11pt 字体(至少这里使用的字体):

LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <10.5> not available
(Font)              size <10.95> substituted on input line 1368.

无需深入研究,scrbook就可以推测大多数长度都没有设置为非标准尺寸选项。它在日志中警告:

Class scrbook Warning: Using fallback calculation to setup font sizes
(scrbook)              for basic size `10.5pt' on input line 1368.

换句话说,如果您选择,11pt您可以获得人类选择的设计师长度设置,但如果您选择,10.5pt它只会执行它所做的操作。

由于在任何一种情况下您都会获得相同的 11pt 字体,因此最简单的方法似乎是使用 11pt 选项。

请注意,如果您使用的H插入根本不是浮动,它本质上是一个带标题的小页面,并且不会获得与浮动的图形相同的间距t。一般来说,它充其量只是最后的选择,因为防止浮动会使获得良好的分页符变得困难。

答案2

请注意,您不会通过该声明获得 10.5pt 字体,因为 Computer Modern 字体默认具有固定大小:10pt、11pt(实际上是 10.95pt)、12pt 等等。

但是,可以解决这个问题并使用可自由缩放的字体(但在缩放之前选择最接近的固定字体大小)

\RequirePackage{fix-cm}
\documentclass[fontsize=10.5pt]{scrbook}

还有一个问题。由各种参数进行的计算scrbook给出了错误的结果,至少对于\intextsep31.3488pt plus 4.1697pt minus 4.1697pt,而\baselineskip固定为12.59996pt

当选择11pt大小时,两个参数分别为12.0pt plus 2.0pt minus 2.0pt13.6pt。在10pt大小时,它们分别为12.0pt plus 2.0pt minus 2.0pt12.0pt

解决方法是添加

\setlength{\intextsep}{12pt plus 2pt minus 2pt}

到前言部分(或任何您认为合适的值)。但是,这并不能解决所有问题。例如,字体\large计算为 12.6/15.12(size/baselineskip)和\small9.5/11.5,而对于 11pt 基本大小,我们将得到 12/14\large和 10/12 \small

的比较\huge并未显示出像 那样的较大差距\large

总之,使用pointsize=10.5pt是有风险的,应该检查所有参数的一致性。

相关内容