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]% \@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\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 -----------------------------------------------------------------