
Ich versuche, eine TABELLE als Überschrift im Kontext zu verwenden (sieheVerwenden einer Tabelle als Überschrift in Context). Die Befehle \setupTABLEs und \bTABLE[head|foot]s im Hauptteil des Dokuments wirken sich jedoch auf die TABLE in der Kopfzeile aus. Der folgende Ausschnitt veranschaulicht das Problem:
- Die TABELLE in der Kopfzeile hat eine Kopfzeile.
- Diese Kopfzeile hat einen gelben Hintergrund.
Ist das ein Fehler? Oder gibt es eine Möglichkeit, den Umfang der \setupTABLE \bTABLE[head|foot]-Befehle so zu beschränken, dass nur eine bestimmte TABELLE betroffen ist?
Mit Bezug aufhttps://mailman.ntg.nl/pipermail/ntg-context/2015/083192.html, ich habe versucht, \egroup und \sgroup zu verwenden. Meine \setupTABLEs sind auch bereits im \bTABLE-Block definiert.
\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
Antwort1
Eine Problemumgehung besteht darin, ConTeXt mitzuteilen, dass die Tabelle in der Kopfzeile eine verschachtelte Tabelle ist. Auf diese Weise ignoriert ConTeXt die auf der vorherigen Ebene definierten Einstellungen. Sie können dies wie folgt tun:
\unprotect
\startsetups[header]
\tabl_ntb_next_level
\bTABLE
\bTR
\bTD Header \eTD
\eTR
\eTABLE
\tabl_ntb_prev_level
\stopsetups
\protect
Die \unprotect
und \protect
werden benötigt, da \tabl_ntb_next_level
es sich um einen internen Befehl handelt.