コンテキスト - 文書本文の TABLE コマンドがヘッダーの TABLE に影響する

コンテキスト - 文書本文の TABLE コマンドがヘッダーの TABLE に影響する

コンテキストのヘッダーとしてテーブルを使用しようとしています(コンテキストでテーブルをヘッダーとして使用する)。ただし、ドキュメント本体の \setupTABLEs コマンドと \bTABLE[head|foot]s コマンドは、ヘッダーの TABLE に影響します。次のスニペットは、この問題を示しています。

  1. ヘッダー内の TABLE にはヘッダー行があります。
  2. このヘッダー行の背景は黄色です。

これはバグでしょうか? または、\setupTABLE \bTABLE[head|foot] コマンドを特定のテーブルにのみ影響するように「スコープ」する方法はありますか。

参照するとhttps://mailman.ntg.nl/pipermail/ntg-context/2015/083192.html、\egroup と \sgroup の使用を試みました。\setupTABLE も \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

回避策の 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

関連情報