我正在尝试使用 TABLE 作为 Context 中的标题(请参阅在 Context 中使用表格作为标题)。但是,文档正文中的 \setupTABLEs 和 \bTABLE[head|foot]s 命令会影响页眉中的 TABLE。下面的代码片段说明了这个问题:
- 标题中的表格有一个标题行。
- 此标题行的背景为黄色。
这是错误吗?或者有没有办法将 \setupTABLE \bTABLE[head|foot] 命令“限定”为仅影响特定的 TABLE。
参考https://mailman.ntg.nl/pipermail/ntg-context/2015/083192.html,我尝试使用 \egroup 和 \sgroup。我的 \setupTABLEs 也已在 \bTABLE 块中定义。
\startsetups[header]
\bTABLE
\bTR
\bTD Header \eTD
\eTR
\eTABLE
\stopsetups
\setupheadertexts[\setups{header}]
\starttext
\bTABLE[split=repeat, header=yes]
\setupTABLE[r][first]
[background=color,
backgroundcolor=yellow]
\bTABLEhead
\bTR
\bTH Header \eTH
\eTR
\eTABLEhead
\bTABLEbody
\dorecurse{100} {
\bTR
\bTD Body \eTD
\eTR
}
\eTABLEbody
\eTABLE
\stoptext
答案1
一种解决方法是告诉 ConTeXt 标题中的表格是嵌套表格。这样,ConTeXt 将忽略上一级别定义的设置。您可以按如下方式执行此操作:
\unprotect
\startsetups[header]
\tabl_ntb_next_level
\bTABLE
\bTR
\bTD Header \eTD
\eTR
\eTABLE
\tabl_ntb_prev_level
\stopsetups
\protect
需要和,因为这\unprotect
是一个内部命令。\protect
\tabl_ntb_next_level