Контекст - команды TABLE в тексте документа, влияющие на TABLE в заголовке

Контекст - команды TABLE в тексте документа, влияющие на TABLE в заголовке

Я пытаюсь использовать ТАБЛИЦУ в качестве заголовка в Context (см.Использование таблицы в качестве заголовка в контексте). Однако команды \setupTABLEs и \bTABLE[head|foot]s в теле документа влияют на TABLE в заголовке. Фрагмент ниже иллюстрирует проблему:

  1. ТАБЛИЦА в заголовке имеет строку заголовка.
  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это внутренняя команда.

Связанный контент