如何在保留大段落空间的同时删除章节标题和第一行文本之间的空格?
我尝试了多种变化\setuphead[section][after=...]
(例如{\blank[-1cm]}
和{\blank[none]}
),但无法完全删除空格。
\setupwhitespace[big]
\starttext
\startsection[title={Section A}]
\input knuth
\stoptext
答案1
使用
after={\blank[nowhite]},
或者
after=\nowhitespace,
这是一个完整的例子:
\setupwhitespace[big]
\setuphead[section][after={\blank[nowhite]}]
\starttext
\startsection[title={Section A}]
\input knuth
\stoptext
这使
解释
如果你理解 TeX 基元,这就是发生的事情。\setupwhitespace
设置\parskip
而\blank[...]
为\par\vskip
。因此,当你使用
\setupwhitespace[big]
\blank[none]
由于 ,您仍会看到空白\parskip
。要删除\parskip
,您可以使用\nowhitespace
,这相当于\blank[nowhite]
。
如何\vskip
摆脱\parskip
?这是 ConTeXt 中实验代码的一部分,其中垂直空间有多个类别(如spac-ver.mkiv
):
% category:
%
% 0 == discard discard
% 1 == only if larger largest
% 2 == force even if smaller force
% 3 == only take penalty component penalty
% 4 == add to existing skip add
% 5 == disable (ignore following) disable
% 6 == kill whitespace nowhite
% 7 == discard previous back
% 10 == no topskip
%
% penalty: larger wins
% order: larger wins
% category:2,order:5,penalty:10000,skip:value|kw
进而 ...
\definevspacing[\v!always] [category:0] % hm, internally it's discard
\definevspacing[\v!max] [category:1]
\definevspacing[\v!force] [category:2]
\definevspacing[\v!disable] [category:5]
\definevspacing[\v!nowhite] [category:6]
\definevspacing[\v!back] [category:7]
% together [category:8]
\definevspacing[\v!overlay] [category:9]
\definevspacing[\v!enable] [category:10]
\definevspacing[\v!weak] [order:0]
\definevspacing[\v!strong] [order:100]
\definevspacing[\s!default] [\v!white] % was big for a while
实际实施是在spac-ver.lua
(但我理解得不够深入,无法发表评论)。