我想定义一个新的浮点数,将我的文档示例封闭在带有灰色背景的框架中。这是我到目前为止的序言代码:
\setupcolumns[n=2]
\definefloat[example][examples]
\definemeasure[atdmexampleoffset][10pt]
\definemeasure[atdmexamplewidth][\dimexpr\textwidth-2\measure{atdmexampleoffset}]
\setupfloat[example][
location=middle,
frame=on,
width=\measure{atdmexamplewidth}, % <------
offset=\measure{atdmexampleoffset},
background=color,
backgroundcolor=atdm-lightgrey%
]
我使用浮点数作为此代码:
\starttext
\startcolumns
\placeexample[here][ex:foo]{Foo}{%
For instance: foo. Or bar. Or both. etc.
}
\stopcolumns
\stoptext
我遇到的问题是示例文本恰好跨越 \textwidth,因此导致框架突出于2*offset
标准文本主体的右侧(参见红色和绿色规则之间的间隙)。
不幸的是,宽度参数似乎没有效果。
请注意,单列文本也会出现同样的问题,只有浮动保持居中并在offset
左侧和右侧突出。
我怎样才能使浮动占据与其下方和上方的文本相同的宽度?
答案1
您应该将文本放在framedtext
可以偏移边距的环境中。
\starttext
\startcolumns
\input knuth
\startplacefloat[title=Zapf]
\startframedtext[width=max,background=color,backgroundcolor=gray]
\input zapf
\stopframedtext
\stopplacefloat
\input tufte
\startplacefloat[title=Ward]
\startframedtext[width=max,background=color,backgroundcolor=gray]
\input ward
\stopframedtext
\stopplacefloat
\input weisman
\stopcolumns
\stoptext