ConTeXt 自然表头高度的意外行为

ConTeXt 自然表头高度的意外行为

我正在使用 TABLE 设计地图图例。第一行合并单元格时我遇到了麻烦。当我使用此代码时,一切都按预期运行:

\starttext
%\setupTABLE[column][1,3][width=3em,align={middle,lohi}]
\setupTABLE[column][2,4][width=0.42 \textwidth,align=lohi]
\setupTABLE[row][first][align=flushleft]
\bTABLE
\bTR \bTH[nc=2] I. My first part \eTH \bTH[nc=2] II. My second part\eTH \eTR
\bTR \bTD sqr \eTD \bTD some text \eTD \bTD sqr \eTD \bTD some text \eTD \eTR
\eTABLE

汇编 1

但是,如果我取消注释第 1 列和第 3 列的设置行,我的第一行就会出现意外的、不需要的大垂直空格。

\starttext
\setupTABLE[column][1,3][width=3em,align={middle,lohi}]
\setupTABLE[column][2,4][width=0.42 \textwidth,align=lohi]
\setupTABLE[row][first][align=flushleft]
\bTABLE
\bTR \bTH[nc=2] I. My first part \eTH \bTH[nc=2] II. My second part\eTH \eTR
\bTR \bTD sqr \eTD \bTD some text \eTD \bTD sqr \eTD \bTD some text \eTD \eTR
\eTABLE

汇编 2

我不明白为什么。删除对齐选项不会改变任何东西。我该怎么办?这种意外行为从何而来?

答案1

我不知道第一行的高度计算会发生什么,但你可以强制一些合理的值,例如4ex

\starttext
    \setupTABLE[column][1,3][width=3em,align={middle,lohi}]
    \setupTABLE[column][2,4][width=0.42 \textwidth,align=lohi]
    \setupTABLE[row][first][align=flushleft,height=4ex]

    \bTABLE
        \bTR \bTH[nc=2] I. My first part \eTH \bTH[nc=2] II. My second part\eTH \eTR
        \bTR \bTD sqr \eTD \bTD some text \eTD \bTD sqr \eTD \bTD some text \eTD \eTR
    \eTABLE
\stoptext 

在此处输入图片描述

编辑

当然,您可以切换到xtables更好地计算表的大小:

\startxtable[option=stretch]
\startxtablehead
    \startxrow 
        \startxcell[nx=2] I. My first part   \stopxcell 
        \startxcell[nx=2] II. My second part \stopxcell 
    \stopxrow
\stopxtablehead
\startxtablebody
    \startxrow 
        \startxcell[width=3em,align={middle,lohi}] sqr \stopxcell 
        \startxcell[width=.4\textwidth] sometext \stopxcell     
        \startxcell[width=3em,align={middle,lohi}] sqr \stopxcell 
        \startxcell[width=.4\textwidth] sometext \stopxcell 
    \stopxrow
 \stopxtablebody
\stopxtable

在此处输入图片描述

相关内容