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 -----------------------------------------------------------------