上下文 - 文件正文中的 TABLE 指令影響標題中的表

上下文 - 文件正文中的 TABLE 指令影響標題中的表

我正在嘗試使用表作為上下文中的標題(請參閱在 Context 中使用表格作為標題)。然而,文檔正文中的 \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

一種解決方法是告訴 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它是內部命令。

相關內容