上下文:删除子节下方的空白行

上下文:删除子节下方的空白行

我正在学习如何使用 Context,但在创建子节标题时遇到了麻烦,因为标题下方没有空行。我正在使用基线网格,并希望继续这样做。

有没有办法消除“子节 1”与其段落之间的空白行?我在“子节 2”中实现了我想要的外观,但它没有使用节标题,无法引用。

在此处输入图片描述

% macros=mkvi
\usemodule[ipsum]

\setuppapersize[A5]
\setupbodyfont[10pt]

\definefont [Heading] [Serif at 20pt]
\definefont [ParagraphHeading] [SerifItalic at 13pt]

\setuphead [section] [
  style=\Heading,
  number=no,
  align=middle,
  before=,
  after=
]

\setuphead [subsection] [
  style=\ParagraphHeading,
  number=no,
  align=flushleft,
  before=,
  after=
]

\setupinterlinespace[line=1.5em]
\setuplayout [grid=yes]
\showgrid

\starttext
  \section{Section}
  \ipsum[alternative=lines,n=2]

  \subsection{Sub-Section 1}
  \ipsum[alternative=lines,n=2]

  \blank[1.5em]
  {\it \switchtobodyfont[13pt]{Sub-Section 2}}\\
  \ipsum[alternative=lines,n=2]
\stoptext

答案1

网格捕捉可能会变得相当棘手。

这里的问题是,您在标题中使用了较大的字体大小,因此标题的“深度”将与下一行的“高度”重叠。您可以使用grid=high强制深度向下舍入而不是向上舍入:

% macros=mkvi
\usemodule[ipsum]

\setuppapersize[A5]
\setupbodyfont[10pt]

% Added: *default
\definefont [Heading] [Serif*default at 20pt]
\definefont [ParagraphHeading] [SerifItalic*default at 13pt]

\setuphead [section] [
  style=\Heading,
  number=no,
  align=middle,
  before=,
  after=,
  grid=high,
]

\setuphead [subsection] [
  style=\ParagraphHeading,
  number=no,
  align=flushleft,
  before=,
  after=,
  grid=high,
]

\setupinterlinespace[line=1.5em]
\setuplayout [grid=yes]
\showgrid

\showmakeup[line] % Visualize the line heights/depths

\starttext
  \section{Section}
  \ipsum[alternative=lines,n=2]

  \subsection{Sub-Section 1}
  \ipsum[alternative=lines,n=2]

  \blank[1.5em]
  {\it \switchtobodyfont[13pt]{Sub-Section 2}}\\
  \ipsum[alternative=lines,n=2]
\stoptext

“细节决定成败”手册中包含更多有关网格捕捉的信息,尽管它读起来比较技术性。

*default此外,您在使用时几乎总是应该添加\define(d)font以确保获得所有默认字体功能。

相关内容