Johannes Graumann wrote: > Hello, > > Does anybody have an insight into why a table created with the following > mapping rule for XML code does not present it's caption and is not split? > > Thanks Joh > > \defineXMLnested > [table] > {\bgroup > \defineXMLsave[caption] > \defineXMLsave[header] > \defineXMLsave[body] > %\defineXMLnested[header]{\bTABLEhead} {\eTABLEhead} > %\defineXMLnested[body] {\bTABLEbody} {\eTABLEbody} > \placetable > [\XMLpar{table}{location}{here}] > [\XMLpar{table}{label}{unknown}] > {\XMLflush{caption}} > \bgroup > > \setupTABLE[frame=off,split=repeat,style={\switchtobodyfont[small]\setupinterlinespace[line=2.8ex]}] > > \framed[frame=off,topframe=on,bottomframe=on,offset=none,rulethickness=0.75pt] > \bgroup \bTABLE[distance=7.5pt] > \bTABLEhead > \XMLflush{header} > \eTABLEhead > \bTABLEbody > \XMLflush{body} > \eTABLEbody > \bTABLEfoot\eTABLEfoot > } > {\eTABLE > \egroup > \egroup > \egroup} > first of all, putting a \framed around it makes it unsplittable; best use the framed options that come with the floats
second, there's a problem in signaling the splitter, which demands a patch \unprotect % in core-ntb : we check the flag \def\splittblbox#1% {\ifinsidesplitfloat \donetrue \else\ifinsidefloat \donefalse \else \donetrue \fi\fi \ifdone \executeifdefined{splittblbox\tbltblsplitmethod}\splittblboxa{#1}% \else \notsplittblbox{#1}% \fi} % in page-flt : we add a flag \newif\ifinsidesplitfloat % will become chardef \def\dosplitfloat[#1]#2% nog dubbele refs {\ifinsidecolumns % tzt ook nog figuren splitten % not yet supported \else \bgroup \insidefloattrue \insidesplitfloattrue \getparameters[\??si][#1]% \resetnumber[\??si]% \def\floatcaptionsuffix{\convertednumber[\??si]}% \TABLEcaptionheight\@@silines\lineheight % brrr \simplifypagebreak % \page becomes \goodbreak \dowithnextbox {\forgetall \dontcomplain \doloop {\setbox2\vsplit\nextbox to \lineheight \setbox2\vbox{\unvbox2} \ifdim\ht2>\lineheight \incrementnumber[\??si]% \ifcase\rawnumber[\??si]\or \ifdim\nextboxht=\zeropoint \let\floatcaptionsuffix\empty \fi \fi \bgroup #2{\unvbox2} \egroup \ifdim\nextboxht>\zeropoint \page \decrementnumber[\floatcaptionnumber]% \fi \fi \ifdim\nextboxht>\zeropoint\else \expandafter\exitloop \fi}% \egroup} \vbox \fi} % beware: you need to set the splitmethod to b (boxed split) \starttext \splitfloat {\placetable{test}} {\bTABLE[split=repeat,splitmethod=b] \dorecurse{100}{\bTR \bTD test \eTD \eTR} \eTABLE} \stoptext this whole splitting has to be revised (although a two way singaling is not that trivial here) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context