Aditya Mahajan wrote: > On Fri, 14 Apr 2006, Hans Hagen wrote: > > >> Hans Hagen wrote: >> >>> Aditya Mahajan wrote: >>> >>> >>>> Hi, >>>> When I use \placefigure[left] with some test, the text wraps around >>>> the figure. But if the paragraph, contains some formula, it does not >>>> wrap even after the figure is complete. How can I prevent such a >>>> behaviour. >>>> >>>> >> btw, can you make three (or more) examples: (yes|nocheck|text) with >> left/bottom/fallback placement for the testsuits (see other threads) >> > > first of all, take the beta in order to get renumbering right
the next variant let's fallbacks step in earlier \long\def\dofloat#1#2#3#4% {\dosetfloatbox{#1}{#2}{#3}{#4}% \dogetfloatbox{#1}\empty} \def\dodocomplexplacefloat[#1][#2][#3]#4% {\flushnotes \flushsidefloats % here ! \ifsomefloatwaiting % this was \checkwaitingfloats spread all over \doifinsetelse\v!always{#2} {\showmessage\m!floatblocks5\empty} {\expanded{\doifcommonelse{#2}{\flushfloatslist}}\doflushfloats\donothing}% % but which should be done before using box \floatbox \fi \ifmargeblokken % waarschijnlijk gebroken ! ! ! ! \doifinset\v!margin{#2} {\endgraf \bgroup\everypar{\egroup\the\everypar}% \hsize\@@mbwidth}% \fi \global\insidefloattrue \begingroup % ** \the\everyinsidefloat \let\@@extrafloat\empty \presetmorefloatvariables{#2}% \dowithnextboxcontent % better a \the\everyfloattoks {\setlocalfloathsize \getvalue{\??fl#1\c!inner}% \fuzzysnappingfalse \postponenotes} % new {% \doifvaluesomething{\??fl#1\c!criterium} {\ifdim\wd\nextbox>\getvalue{\??fl#1\c!criterium}\relax \edef\forcedfloatmethod{\executeifdefined{\??fl#1\c!fallback}\v!here}% \fi}% \xdocompletefloat{#1}{#3}{#1}{#2}{#1}{#4}% ** not yet done % we need to carry over the par because of side floats \doifnotinset\v!text{#2}{\carryoverpar\endgroup}% \global\sidefloatdownshift \zeropoint \global\sidefloatextrashift\zeropoint \ifparfloat \doifinset\v!reset{#2}\forgetsidefloats \doinhibitblank \fi}% better move this to side floats \vbox} > I tried playing around with the fallback option, but had unexpected > results. When I give fallback=left (does that make sense?) I get text > in the right margin!! See example below. > > > % first a new key > > \unprotect > \startconstants dutch english > german czech > italian romanian > french > > fallback: terugval fallback > fallback fallback > fallback fallback > fallback > \stopconstants > > % use that key > > \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]% > [EMAIL PROTECTED]:\to\floatmethod > [EMAIL PROTECTED] \commalistelement\at:\to\floatcolumn > [EMAIL PROTECTED] \floatcolumn\at*\to\floatrow > [EMAIL PROTECTED] > % 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\redofloatorder#1% > {\doifnotinset\@@bknumbering{\v!nocheck,\v!text} > {\doglobal\increment\nofplacedfloats\relax > \gettwopassdata\s!float > \iftwopassdatafound > \doifnot\composedsectionnumber\twopassdata > {\edef\oldcomposedsectionnumber{\composedsectionnumber}% > \xdef\composedsectionnumber{\twopassdata}% > \showmessage\m!floatblocks1{\nofplacedfloats,#1 > \oldcomposedsectionnumber,\composedsectionnumber}}% > \fi}} > > \protect > > > \setupfloats[numbering=text] > > % we use the marginwidth as criterium > > \setupfloat[figure][criterium=\marginwidth,fallback=left] > > \starttext > > \placefigure[bottom]{1}{\framed[width=.9\marginwidth]{}} \input tufte > \placefigure[bottom]{2}{} \input tufte > \placefigure[left]{3}{} \input tufte > \placefigure[left]{4}{\framed[width=.9\marginwidth]{}} \input tufte > > \stoptext > > Aditya > > -- ----------------------------------------------------------------- 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