上下文 - 文档主体中的 TABLE 命令影响标题中的 TABLE

上下文 - 文档主体中的 TABLE 命令影响标题中的 TABLE

我正在尝试使用 TABLE 作为 Context 中的标题(请参阅在 Context 中使用表格作为标题)。但是,文档正文中的 \setupTABLEs 和 \bTABLE[head|foot]s 命令会影响页眉中的 TABLE。下面的代码片段说明了这个问题:

  1. 标题中的表格有一个标题行。
  2. 此标题行的背景为黄色。

这是错误吗?或者有没有办法将 \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

相关内容