我正在尝试定义一个框架环境(如果这是正确的术语),它本质上是一个前后都有一些空间的盒子。我无法找出一种惯用的方式来自动在它前后添加空间。
这是我所拥有的骨架:
%&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
。那个支持before
和after
。
\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
如果您出于某种原因不喜欢该\start...\stopCallout
变体而想要使用\Callout{...}
并保留前后的空间,只需覆盖 的定义\Callout
。
\starttexdefinition unexpanded singleempty Callout [#1]#2
\startCallout[#1]#2\stopCallout
\stoptexdefinition