Hello,

In my field lengthy table captions are common. The attached example shows
two problems I have with the multi-page tabeling I made work with the help
of the included patch from Hans:
1) the table splitting does not calculate the right height for the caption -
the table is too long for the page.
2) captions of this caliber should only appear together with the first part
of the table and should be replaced with 'continued' or nothing when
appearing with further parts.

I would greatly appreciate any advice on how to fix/achieve these two
issues.

Thanks, Joh

\setupcaption[table][location=top]
% Fixing multipage table according to Hans Hagen:
\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}
\protect
% beware: you need to set the splitmethod to b (boxed split) 

\defineXMLnested
  [splittable]
  {
    \defineXMLsave[caption]
    \defineXMLsave[header]
    \defineXMLsave[body]
    \defineXMLsave[footer]
  }
  {
    \splitfloat
      
{\placetable[\XMLpar{table}{location}{here}][\XMLpar{table}{label}{unknown}]{\XMLflush{caption}}}
      {
        \setupTABLE[row][1][rulethickness=0.90pt,topframe=on]
        \setupTABLE[row][-1][rulethickness=0.90pt,bottomframe=on]
        
\bTABLE[frame=off,split=repeat,splitmethod=b,distance=7.5pt,style={\switchtobodyfont[small]\setupinterlinespace[line=2.8ex]}]
          \bTABLEhead\XMLflush{header}\eTABLEhead
          \bTABLEbody\XMLflush{body}\eTABLEbody
          \bTABLEfoot\XMLflush{footer}\eTABLEfoot
        \eTABLE
      }
  }
\defineXMLnested
  [tr]
  [bottomframe=off,rulethickness=0.3pt]
  
{\expanded{\bTR[bottomframe=\XMLop{bottomframe},rulethickness=\XMLop{rulethickness}]}}
  {\eTR}

\defineXMLnested
  [td]
  [rows=1,cols=1]
  {\expanded{\bTD[nr=\XMLop{rows},nc=\XMLop{cols}]}}
  {\par\eTD}

\starttext
  \startXMLdata
    <splittable>
      <caption>
        FFFFFFFFFFFFF FF FFFFFFFFFFFFFFFFF FFFFFFFF FFFFF FFFFFFFFF FFFFFFFFF 
FFFFFFFF FFFF FF FFFFFFFFFF FFFFFFF FFFF FFFFFFFF FFF FFFFFFFF FF FFFFFFFFF FF 
FFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF FFFFFF FFFFFFFF FFFFFFFFFFFF FFFFFFFFFF FFF 
FFFF FF FFF FFFF FFFFFFF FFFFFFFFF FFF FFFFF FF FFFFFFFF FFFF FFFFF FFFFFFFFF 
FF FFFFF  FFFF FFF FFFF FFFFFFFFFFFFFFF  FFFFFFFFF FFFFF FFFFFFFFFFF FFFFFFFF 
FFFFFFFFFFFFF FF FFFFFFFFFFFFFFFFF FFFFFFF FFFFFFFF FFF FFFFFFFF FFF FFFFFFFF 
FFFFFFFFF FFFFFF FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFF FFFFFFFFF FFFF 
FFFFFFF FF FFFFF FFF FFFFFFFFFFF FFFFF FFF FFFFFF F.
      </caption>
      <header>
        <tr bottomframe="on"><td rows="2">YYY</td><td cols="3">YYY</td><td 
rows="2">YYY</td><td rows="2">YYY</td><td rows="2">YYY</td></tr><tr 
bottomframe="on"><td>YYY</td><td>YYY</td><td>YYY</td></tr>
      </header>
      <body>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
        
<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td></tr>
      </body>
    </splittable>
  \stopXMLdata
\stoptext
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to