컨텍스트 - 헤더의 TABLE에 영향을 미치는 문서 본문의 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

한 가지 해결 방법은 헤더의 테이블이 중첩 테이블임을 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

관련 정보