ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Inconsistent behaviour of placefigure[left] for math and text
@ 2006-04-14  1:54 Aditya Mahajan
  2006-04-14  8:25 ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Aditya Mahajan @ 2006-04-14  1:54 UTC (permalink / raw)


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.

Example
\startbuffer[figure]
\placefigure
   [left]
   {}{}
\stopbuffer

\startbuffer[test]
\dorecurse{3}{\input knuth}
\stopbuffer

\startbuffer[mathtest]
\dorecurse{3}{
This is a dummy paragraph to support a little bit of math to show the 
trouble
with placefigure
\startformula
   a = b
\stopformula
This is a dummy paragraph to support a little bit of math to show the 
trouble
with placefigure
This is a dummy paragraph to support a little bit of math to show the 
trouble
with placefigure}
\stopbuffer

\starttext
\getbuffer[figure]
\getbuffer[test]

\page

\getbuffer[figure]
\getbuffer[mathtest]


\stoptext

Thanks,
Aditya


-- 
Aditya Mahajan, EECS Systems, University of Michigan
http://www.eecs.umich.edu/~adityam || Ph: 7342624008

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-14  1:54 Inconsistent behaviour of placefigure[left] for math and text Aditya Mahajan
@ 2006-04-14  8:25 ` Hans Hagen
  2006-04-14  8:54   ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2006-04-14  8:25 UTC (permalink / raw)


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.
>
> Example
> \startbuffer[figure]
> \placefigure
>    [left]
>    {}{}
> \stopbuffer
>
> \startbuffer[test]
> \dorecurse{3}{\input knuth}
> \stopbuffer
>
> \startbuffer[mathtest]
> \dorecurse{3}{
> This is a dummy paragraph to support a little bit of math to show the 
> trouble
> with placefigure
> \startformula
>    a = b
> \stopformula
> This is a dummy paragraph to support a little bit of math to show the 
> trouble
> with placefigure
> This is a dummy paragraph to support a little bit of math to show the 
> trouble
> with placefigure}
> \stopbuffer
>
> \starttext
> \getbuffer[figure]
> \getbuffer[test]
>
> \page
>
> \getbuffer[figure]
> \getbuffer[mathtest]
>
>
> \stoptext
>   
add empty lines around the \start\stop pair 

(somehow display does not go well with the parshape (i must discuss this with taco) 

Hans 


-----------------------------------------------------------------
                                          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
-----------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-14  8:25 ` Hans Hagen
@ 2006-04-14  8:54   ` Hans Hagen
  2006-04-18 12:39     ` Aditya Mahajan
  0 siblings, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2006-04-14  8:54 UTC (permalink / raw)


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) 

Hans 

-----------------------------------------------------------------
                                          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
-----------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-14  8:54   ` Hans Hagen
@ 2006-04-18 12:39     ` Aditya Mahajan
  2006-04-18 14:14       ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Aditya Mahajan @ 2006-04-18 12:39 UTC (permalink / raw)


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)

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

-- 
Aditya Mahajan, EECS Systems, University of Michigan
http://www.eecs.umich.edu/~adityam || Ph: 7342624008

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-18 12:39     ` Aditya Mahajan
@ 2006-04-18 14:14       ` Hans Hagen
  2006-04-18 14:52         ` Aditya Mahajan
  0 siblings, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2006-04-18 14:14 UTC (permalink / raw)


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
-----------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-18 14:14       ` Hans Hagen
@ 2006-04-18 14:52         ` Aditya Mahajan
  2006-04-18 15:04           ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Aditya Mahajan @ 2006-04-18 14:52 UTC (permalink / raw)


On Tue, 18 Apr 2006, Hans Hagen wrote:

> 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

Using the beta, the numbering is correct. What is fallback=left 
supposed to do? I thought that with

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

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

the first figure should float to the left, while the second will go to 
the bottom. But both of them float to the bottom. I am completely 
misunderstanding the feature.

Aditya

-- 
Aditya Mahajan, EECS Systems, University of Michigan
http://www.eecs.umich.edu/~adityam || Ph: 7342624008

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Inconsistent behaviour of placefigure[left] for math and text
  2006-04-18 14:52         ` Aditya Mahajan
@ 2006-04-18 15:04           ` Hans Hagen
  0 siblings, 0 replies; 7+ messages in thread
From: Hans Hagen @ 2006-04-18 15:04 UTC (permalink / raw)


Aditya Mahajan wrote:
> On Tue, 18 Apr 2006, Hans Hagen wrote:
>
>   
>> 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
>>     
>
> Using the beta, the numbering is correct. What is fallback=left 
> supposed to do? I thought that with
>
> \setupfloat[figure][criterium=\marginwidth,fallback=left]
>
> \placefigure[bottom]{1}{\framed[width=.9\marginwidth]{}} \input tufte
> \placefigure[bottom]{2}{} \input tufte
>
> the first figure should float to the left, while the second will go to 
> the bottom. But both of them float to the bottom. I am completely 
> misunderstanding the feature.
>   

left means left of text; you should test with the beta + the patch i 
sent a few mails ago

(the problem is that otherwise the width is set to the hsize (centered))

Hans

-- 

-----------------------------------------------------------------
                                          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
-----------------------------------------------------------------

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-04-18 15:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-14  1:54 Inconsistent behaviour of placefigure[left] for math and text Aditya Mahajan
2006-04-14  8:25 ` Hans Hagen
2006-04-14  8:54   ` Hans Hagen
2006-04-18 12:39     ` Aditya Mahajan
2006-04-18 14:14       ` Hans Hagen
2006-04-18 14:52         ` Aditya Mahajan
2006-04-18 15:04           ` Hans Hagen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).