[NTG-context] issue with images in frames

Hans Hagen j.hagen at xs4all.nl
Fri Oct 18 10:08:43 CEST 2019


On 10/17/2019 11:31 PM, Wolfgang Schuster wrote:
> Pablo Rodriguez schrieb am 17.10.2019 um 21:51:
>> Dear list,
>>
>> I have the following sample:
>>
>>      \setupexternalfigures[location=default]
>>      \starttext
>>      \startxtable[option={stretch, width}]
>>          \startxrow
>>              \startxcell
>>                  \dontleavehmode\dorecurse{100}{
>>                      \externalfigure[cow.pdf][scale=50] }
>>              \stopxcell
>>              \startxcell
>>                  \input zapf
>>              \stopxcell
>>          \stopxrow
>>      \stopxtable
>>      \stoptext
>>
>> Some time ago, there were no difference between images and text
>> remaining inside the frame.
> 
> Not a solution but closer to the problem.
> 
> Commenting the \local(left|right)box settings brings the line breaks back.
> 
> \everyforgetall\emptytoks
> 
> \appendtoks
>      \localleftbox {}%
>      \localrightbox{}%
> \to \everyforgetall
> 
> \setupexternalfigures[location=default]
> 
> \starttext
> 
> \vbox
>    {\dontleavehmode
>     \dorecurse{100}
>       {\externalfigure[cow.pdf][scale=50] }}
> 
> \stoptext
Ah, a pretty clever analysis!

This side effect has puzzled me for a while (adding an \allowbreak also 
works). The solution is simple:

- i don't reset when not set (only happens in some special delimiters case)

- i added a safeguard to luametatex (we can't change luatex behaviour) 
not to inject an unneeded local par node (which is the cause of the 
problem) when there is no local box in use

(As setting these boxes can be changed mid par their state is registered 
in the node list in order to be taken into account when a paragraph is 
made. It's a bit pain-in-the-butt mechanism with potential side effects, 
also in terms of memory management. When it was incorporated (irr it 
comes from aleph) it was basically broken but stepwise it got fixed. So, 
it seems another corner case had to be catched. Thanks for noticing.)

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list