ConTeXt:defineframed 前后的空白垂直空间

ConTeXt:defineframed 前后的空白垂直空间

我正在尝试定义一个框架环境(如果这是正确的术语),它本质上是一个前后都有一些空间的盒子。我无法找出一种惯用的方式来自动在它前后添加空间。

这是我所拥有的骨架:

%&context

\defineframed
  [Callout]
  [offset=1em]

\starttext

I want an automatic space after this paragraph.

\Callout{There is no space above or below the frame}

I want an automatic space before this paragraph.

\stoptext

我找到了top和选项,但它们在框架内而不是框架周围添加了空间。我可能遗漏了某些内容,但在 wiki 上bottom找不到类似before和的内容(after设置框架)。

我已经能够使用 添加一些空格\prependvalue{Callout}{\blank[big]},但这似乎不符合习惯。

答案1

从您的简短示例来看,我假设您正在寻找framedtext而不是framed。那个支持beforeafter

\defineframedtext
  [Callout]
  [offset=1em,
   width=fit,
   before={\blank[big]},
   after={\blank[2*big]}]

\starttext

I want an automatic space after this paragraph.

\startCallout
  There is no space above or below the frame
\stopCallout

I want an automatic space before this paragraph.

\stoptext

enter image description here


如果您出于某种原因不喜欢该\start...\stopCallout变体而想要使用\Callout{...}并保留前后的空间,只需覆盖 的定义\Callout

\starttexdefinition unexpanded singleempty Callout [#1]#2
  \startCallout[#1]#2\stopCallout
\stoptexdefinition

相关内容