
我正在嘗試使用表作為上下文中的標題(請參閱在 Context 中使用表格作為標題)。然而,文檔正文中的 \setupTABLEs 和 \bTABLE[head|foot]s 指令會影響標題中的 TABLE。下面的程式碼片段說明了這個問題:
- 標題中的 TABLE 有一個標題行。
- 該標題行具有黃色背景。
這是一個錯誤嗎?或者有沒有辦法將 \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
它是內部命令。