这是我的第一篇帖子。我希望尽快为这个伟大的社区做出贡献,但现在我需要帮助……
我正在编写的文档既需要带有表格的大标题,也需要需要 split=repeat 的长表格。
请注意,标题实际上是由几个框架和一个表格组成,全部放在 \vbox 内。
我正在使用自然表。
每个发生分割的页面上都会发生一些奇怪的事情:就好像长表“嵌入”在标题表中一样……
这是我的代码:
\setuppapersize[A4]
\setuplayout[topspace=1.25cm,
backspace=1in,
width=17cm,
topdistance=0cm,
footer=1.2cm,
header=8cm]
\defineframedtext[myFramedTitle]
\setupframedtext[myFramedTitle][after={\blank[none]}, background=color, backgroundcolor=lightgray, width=max, align=middle, toffset=-1.5ex, boffset=-1.5ex, backgroundoffset=frame, style=bold]
\startsetups[myHeader]
\vbox{
\myFramedTitle{RECORD SHEET \\ {\tx Instrument Serial Number {{tag_instr_sn}} }}\\ \blank[medium]
\myFramedTitle[toffset=-0.5ex, boffset=-0.5ex]{ \tfb\bf P&ID Walkdown }\\ \blank[medium]
\bTABLE[before={\nowhitespace}, split=no]
\setupTABLE[style=\tx]
\setupTABLE[column][1][width=4cm]
\setupTABLE[c][2][width=broad]
\setupTABLE[c][3][width=2cm, align=middle]
\setupTABLE[c][4][width=3cm, align=middle]
\setupTABLE[background=color, backgroundcolor=lightgray]
\bTR \bTD {\bf Document Reference:} \eTD \bTD Instrument-{{tag_instr_sn}} \eTD \bTD[width=2cm] {\bf Rev}: 01 \eTD \bTD[width=3cm] {\bf Page:} \userpage\ of \lastpagenumber \eTD \eTR
\bTR \bTD {\bf Parent Document Reference:} \eTD \bTD[nc=2] Instrument-{{tag_instr_sn}}-IQP \eTD \bTD {\bf Rev}: 01 \eTD \eTR
\bTR \bTD {\bf Customer Name:} \eTD \bTD[nc=3] {{tag_cust_name}} \eTD \eTR
\bTR \bTD {\bf Customer Location:} \eTD \bTD[nc=3] {{tag_cust_location}} \eTD \eTR
\bTR \bTD {\bf Author Name:} \eTD \bTD {{tag_author_name}} \eTD \bTD[nc=2] {\bf Date of issue:} {\date[][day,{ },m:mnem,year]} \eTD \eTR
\eTABLE
}
\stopsetups
\setupheadertexts[\setups{myHeader}]
\showframe
\starttext
\bTABLE[width=broad, split=repeat]
\bTABLEhead
\bTR \bTH First\eTH\bTH Second\eTH\bTH Third\eTH\bTH Fourth\eTH\eTR
\eTABLEhead
\bTABLEbody
\dorecurse{100}{
\bTR
\bTD q\eTD\bTD w\eTD\bTD e\eTD\bTD r\eTD
\eTR}
\eTABLEbody
\eTABLE
\stoptext
有人能帮助我理解为什么 Context 会表现得像这样吗?
谢谢!
答案1
确实如此:Henri 提到的内存共享机制正在扰乱我的代码。
按照 Wolfgang 的建议,我使用重写了标题程序集tabulate
,并且一切都按预期进行。
作为奖励,就像 Henri 暗示的那样,编译得到了相当大的提升,至少可以这么说 :-)
感谢大家的意见!