我对表格格式有点困惑,希望有人能帮我一下。
这是我现在拥有的桌子。
\bTABLE
\startTABLEhead
\bTR \bTD No. \eTD \bTD[nc=2] Length \eTD \eTR
\bTR \bTD \bTD [m] \eTD \bTD [inch] \eTD \eTR
\stopTABLEhead
\startTABLEbody
\bTR \bTD 1. \eTD \bTD 1 \eTD \bTD 25.4 \eTD \eTR
\stopTABLEbody
\eTABLE
现在我想在第一行的顶部和第二行的底部设置一条规则。这很简单,我只想使用类似这样的方法来实现
\setupTABLE[frame=off]
\setupTABLE[header][first][topframe=on]
\setupTABLE[header][last][bottomframe=on]
这样,我就可以在文档中的所有表格上使用此设置。
这能做到吗?
答案1
\setupTABLE{header]
不接受first
或last
键。您只能使用
\setupTABLE[header][1]
等,但这会设置表头第一列的样式。目前,无法设置表头行的样式。
但是,您可以轻松定义自己的 Metapost 背景,将其添加topframe
到bottomframe
表头并与多页表一起使用。
\setupTABLE[frame=off]
\setupTABLE[header][each][background=tableheader, framecolor=darkblue, rulethickness=2bp]
\defineoverlay[tableheader][\useMPgraphic{tableheader}]
\startuseMPgraphic{tableheader}
if \positiverow = 1 : % first row
draw topboundary OverlayBox
elseif \positiverow = \noftblheadlines : % last row
draw bottomboundary OverlayBox
fi
withcolor OverlayLineColor
withpen pensquare scaled OverlayLineWidth;
setbounds currentpicture to OverlayBox;
\stopuseMPgraphic
\starttext
\bTABLE[split=repeat]
\startTABLEhead
\bTR \bTD No. \eTD \bTD[nc=2] Length \eTD \eTR
\bTR \bTD \eTD \bTD{} [m] \eTD \bTD{} [inch] \eTD \eTR
\stopTABLEhead
\startTABLEbody
\dorecurse{100}
{\bTR \bTD 1. \eTD \bTD 1 \eTD \bTD 25.4 \eTD \eTR}
\stopTABLEbody
\eTABLE
\stoptext