ConTeXt:在表中添加比例箭头

ConTeXt:在表中添加比例箭头

我正在尝试生成比例表,如下所示:

这个答案我知道可以更改单元格的背景,所以我尝试更改最后一列的背景。以下代码显示了我能做到的一切

\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

结果表

相关内容