我有一个分项列表。在几行中有一些用 MetaPost 绘制的框。我过去常常\inframed[location=line]
将它们垂直居中。问题是,它们相互重叠:
\define[1]\drawbox{%
\scale[width=.1\textwidth]{%
\startMPcode
draw (0,0)--(100,0)--(100,100)--(0,100)--(0,0);
\stopMPcode%
}%
}
\define[3]\showfacts{%
\inframed[frame=off, location=line]{%
\drawbox{#1}%
}%
{\it #2}\ #3%
}%
\starttext
This is some text.
\startitemize[n]
\item \showfacts{a}{x}{3}
\item \showfacts{b}{y}{4}
\stopitemize
\stoptext
有没有办法让下一个项目(项目 #2)显示得更低,这样 MetaPost 图片就不会重叠?此外,这样它就不会太接近“这是一些文本”?外观应该更像这样:
This is some text.
_____
| |
1. | | x 3
|_____|
_____
| |
2. | | y 4
|_____|
当行有一个 MetaPost 对象时,如何自动提供更大的空间?
答案1
使用location=middle
。 选项location=line
只是将封闭物体的高度和深度都设置为.5\lineheight
。
注意: \inframed
只是 的快捷方式\framed[location=low]
,因此通过覆盖位置,您可以取消此快捷方式。不妨使用普通的\framed
then。
\define[1]\drawbox{%
\scale[width=.1\textwidth]{%
\startMPcode
draw (0,0)--(100,0)--(100,100)--(0,100)--(0,0);
\stopMPcode%
}%
}
\define[3]\showfacts{%
\framed[frame=off,location=middle]{%
\drawbox{#1}%
}%
{\it #2}\ #3%
}%
\starttext
This is some text.
\startitemize[n]
\item \showfacts{a}{x}{3}
\item \showfacts{b}{y}{4}
\stopitemize
\stoptext