我正在尝试生成比例表,如下所示:
从这个答案我知道可以更改单元格的背景,所以我尝试更改最后一列的背景。以下代码显示了我能做到的一切
\startuseMPgraphic{TableArrow}
path p ; p := halfcircle scaled OverlayHeight ;
drawarrow reverse(p) ;
clip currentpicture to OverlayBox;
\stopuseMPgraphic
\defineoverlay[TableArrow][\useMPgraphic{TableArrow}]
\starttext
\bTABLE
\setupTABLE[last][first][background=TableArrow]
\setupTABLE[c][each][width=0.150\textwidth]
\bTABLEbody
\bTR\bTD Number of Bottles \eTD
\bTD $2$ \eTD
\bTD $3$ \eTD
\bTD $4$ \eTD
\bTD $\cdots$ \eTD
\bTD $x$ \eTD
\bTD[nr=2]\eTD\eTR
\bTR\bTD Price (\$)\eTD
\bTD $2.40$ \eTD
\bTD $3.60$ \eTD
\bTD $4.80$ \eTD
\bTD $\cdots$ \eTD
\bTD $y$ \eTD\eTR
\eTABLEbody
\eTABLE
\stoptext
但我没有做到。
当我移动路径时,它“消失了”。我怎样才能在前一个单元格的边缘开始和结束箭头?而且,有点奇怪,为什么当我用它缩放时halfcircle
不起作用OverlayHeight/2
?无论如何,我可能应该使用其他东西,halfcircle
但我不知道具体是什么。
辅助问题。如何使用 操作倒数第二个单元格\setupTABLE
?我试过了\setupTABLE[row][last-1][]
,但似乎不起作用。
答案1
您可以将表格中最后一列的宽度设置为零,并使用 MetaFun 图形的边界框,而不是进行裁剪。我还更改了表格中的一些参数,使其看起来更像您附加的图片。路径 p 中 x 坐标中的 3pt 对应于表格和箭头之间的偏移量。
\startuseMPgraphic{TableArrow}
path p ; p := (3pt,0.9OverlayHeight){dir -50} .. {dir -130}(3pt,0.1OverlayHeight) ;
drawarrow p ;
label.rt("\im{\times} \$1.20/bottle", point 0.5 along p) ;
setbounds currentpicture to unitsquare xyscaled (OverlayWidth,OverlayHeight) ;
\stopuseMPgraphic
\defineoverlay[TableArrow][\useMPgraphic{TableArrow}]
\starttext
\bTABLE
\setupTABLE[last][first][background=TableArrow]
\setupTABLE[c][each][width=0.150\textwidth,align={middle,lohi},height=8ex]
\setupTABLE[c][last][width=0dk]
\bTABLEbody
\bTR\bTD Number of Bottles \eTD
\bTD $2$ \eTD
\bTD $3$ \eTD
\bTD $4$ \eTD
\bTD $\cdots$ \eTD
\bTD $x$ \eTD
\bTD[nr=2]\eTD\eTR
\bTR\bTD Price (\$)\eTD
\bTD $2.40$ \eTD
\bTD $3.60$ \eTD
\bTD $4.80$ \eTD
\bTD $\cdots$ \eTD
\bTD $y$ \eTD\eTR
\eTABLEbody
\eTABLE
\stoptext