[dev-context] strc-flt.mkvi

Wolfgang Schuster schuster.wolfgang at googlemail.com
Sun Nov 27 18:42:52 CET 2011


Hi,

there is a \ifnofloatcaption test missing to prevent the counter to increase when captions are hidden with the “none” keyword.

\unprotected\def\float_place_packaged_boxes
 {\bgroup
  \ifconditional\usesamefloatnumber
     \globallet\currentfloatnumber     \previousfloatnumber
     \globallet\currentfloatattribute  \empty
     \globallet\currentfloatsynchronize\relax
  \else
-    \ifnofloatnumber \else
-      \doincrementsubstructurecounter[\@@thestructurecounter\currentfloat][1]%
-    \fi
+    \ifnofloatnumber \else \ifnofloatcaption \else
+      \doincrementsubstructurecounter[\@@thestructurecounter\currentfloat][1]%
+    \fi \fi
    \dostructurecountercomponent
      {float}%
      \setupcurrentfloatcaption
      \floatcaptionparameter
      \detokenizedfloatcaptionparameter
      \relax
      \relax
      \relax
      [\c!name=\currentfloat,%
       \s!counter=\@@thestructurecounter\currentfloat,%
       \s!hascaption=\ifnofloatcaption \v!no\else\v!yes\fi,%
       \s!hasnumber=\ifnofloatnumber   \v!no\else\v!yes\fi,%
       \s!hastitle=\ifemptyfloatcaption\v!no\else\v!yes\fi]%
      []%
    \globallet\previousfloatnumber    \laststructurecounternumber
    \globallet\currentfloatnumber     \laststructurecounternumber
    \globallet\currentfloatattribute  \laststructurecounterattribute
    \globallet\currentfloatsynchronize\laststructurecountersynchronize
  \fi
  %
  \global\setfalse\usesamefloatnumber % one shot
  % check float box
  \float_set_natural_dimensions\nextbox
  \global\setbox\floatbox\vbox{\floatparameter\c!command{\box\nextbox}}%
  \float_set_natural_dimensions\floatbox
  \ifdim\htdp\floatbox=\zeropoint
    \showmessage\m!floatblocks{11}\empty
    \global\setbox\floatbox\vbox
      {\dostarttagged\t!floatcontent\empty
       \float_place_empty_box
       \dostoptagged}%
  \fi
  % deal with lack of caption
  \global\setbox\floatbox\vbox \floatcaptionattribute
    {\doifelsemainfloatbody\currentfloatsynchronize\donothing
     \unvbox\floatbox
     \ifnofloatcaption
       \vss
     \fi}% gets rid of the depth (unless tabulate)
  \egroup
  % place the float
  \float_set_box
  \float_get_box
  \global\insidefloatfalse}

\starttext
\placefigure{First}{\framed{One}}
\placefigure[none]{Second}{\framed{Two}}
\placefigure{Third}{\framed{Three}}
\stoptext

Wolfgang



More information about the dev-context mailing list