[NTG-context] placefigure feature request ?

Sanjoy Mahajan sanjoy at mrao.cam.ac.uk
Thu Apr 13 15:30:17 CEST 2006


> [code for text key]
> \setupfloats[numbering=text]

I included the code for numbering=text, to make the tex file below.
Sadly, the figures are numbered 3->1->2 (i.e. as if numbering=nocheck
were given).  I also tried the context live and got the same order.  Am
I doing something silly?

-Sanjoy

======================================================================
% first a new key

\startconstants            dutch                     english
                           german                    czech
                           italian                   romanian
                           french

                 fallback: terugval                  fallback
                           fallback                  fallback
                           fallback                  fallback
                           fallback
\stopconstants

% use that key

\unprotect

\long\def\dofloat#1#2#3#4%
  {\dosetfloatbox{#1}{#2}{#3}{#4}%
   \doifelsevaluenothing{\??fl#4\c!criterium}
     {\dogetfloatbox{#1}\empty}
     {\ifdim\wd\floatbox>\getvalue{\??fl#4\c!criterium}\relax
        \postcenterfloatbox{\wd\floatbox}% else we get left aligned
        %dogetfloatbox{#1}\v!here        % see details/pascal
        
\dogetfloatbox{#1}{\executeifdefined{\??fl#4\c!fallback}\v!here}% PATCHED
      \else
        \dogetfloatbox{#1}\empty
      \fi}}

% pass the new location (will be done differently, hack

\def\dogetfloatbox#1#2%
  {\ifvisible
     \doifelsenothing{#2}
       {\getfromcommalist[#1][1]%
        \@EA\beforesplitstring\commalistelement\at:\to\floatmethod
        \@EA\aftersplitstring \commalistelement\at:\to\floatcolumn
        \@EA\aftersplitstring \floatcolumn\at*\to\floatrow
        \@EA\beforesplitstring\floatcolumn\at*\to\floatcolumn
        % todo: nog algemeen otr
        \ifx\OTRSETsetpreferedcolumnslot\undefined\else
          \OTRSETsetpreferedcolumnslot\floatcolumn\floatrow
        \fi}
       {\let\floatcolumn\empty
        \let\floatrow\empty
        \edef\floatmethod{#2}}%
     \doifundefined{\string\floatmethod\floatmethod}
       {\let\floatmethod\v!here}%
     \getvalue{\string\floatmethod\floatmethod}[\floatmethod,#1]% PATCHED
   \fi}

\def\dofloatreference
  {\doifnot\@@bknumbering\v!text
     {\doglobal\increment\numberedfloat
      \doifelse\@@bknumbering\v!text % alternative to yes|page
        {\let\next\immediatewriteutilitycommand}
        {\let\next\writeutilitycommand}%
      \expanded{\next
        {\noexpand\twopassentry
        {\s!float}%
        {\numberedfloat}%
        {\composedsectionnumber}}}}}

\protect

\setupfloats[numbering=text]

% we use the marginwidth as criterium

\setupfloat[figure][criterium=\marginwidth,fallback=bottom]

\starttext

\placefigure[bottom]{1}{} \input tufte
\placefigure[left]{2}{} \input tufte
\placefigure[left]{3}{\framed[width=.9\marginwidth]{}} \input tufte

\stoptext
======================================================================


More information about the ntg-context mailing list