
컨텍스트에서 TABLE을 헤더로 사용하려고 합니다(참조:컨텍스트에서 테이블을 헤더로 사용). 그러나 문서 본문의 \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