On Mon, Mar 19, 2018 at 01:17:11PM +0100, Hans Hagen wrote: >On 3/19/2018 12:58 PM, Alexander Grahn wrote: >> On 3/19/2018 11:52 AM, Hans Hagen wrote: >>> On 3/19/2018 11:20 AM, Alexander Grahn wrote: >>>> Dear all, >>>> >>>> it seems that I discovered a bug in connection with nested Form XObjects >>>> (pdftex built-in \pdfxform) that occurs in pdfTeX as well as in LuaTeX. >>>> >>>> The \pdfxform built-in provides the optional `resources {<resources>}' >>>> argument, as in >>>> >>>> \pdfxform resources {<resources>} <box> >>>> >>>> , in order to allow the user to insert additional entries in the /Resources >>>> dictionary of the Form XObject to be produced from box register <box>. >>>> >>>> This works as advertised for ordinary box content (1st \pdfxform in the >>>> code >>>> below), but as soon as another Form XObject is referenced inside <box>, the >>>> `resources {...}' argument is ignored and user-provided <resources> are >>>> missing >>>> in the generated PDF code (2nd \pdfxform). >>>> >>>> Here is a minimal example for pdfTeX and LuaTeX for demonstration. The PDF >>>> object numbers mentioned in the comments are different in the PDF output >>>> from >>>> LuaTeX. >>>> >>>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>>> % Bug: When nesting Form XObject reference in <box>, >>>> % \pdfxform resources {<resources>} <box> >>>> % --> missing user-provided <resources> >>>> >>>> \input luatex85.sty >>>> >>>> \pdfcompresslevel=0 >>>> \pdfobjcompresslevel=0 >>>> >>>> \setbox0=\hbox{World} >>>> \edef\wrldwd{\the\wd0} >>>> >>>> \pdfxform >>>> attr {} >>>> resources {/Properties <</Key1 (Val1)>>} % OK >>>> 0 >>>> >>>> %nesting Form XObject reference >>>> \setbox0=\hbox{Hello \hbox to \wrldwd {\pdfrefxform\pdflastxform\hss}!} >>>> >>>> \pdfxform >>>> attr {} >>>> % /Properties <<...>> missing in /Resources dict (object `8 0'), ref'ed in >>>> resources {/Properties <</Key2 (Val2)>>}% Form XObject (object `2 0') >>>> 0 >>>> >>>> \pdfrefxform\pdflastxform >>>> >>>> \bye >>>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>> >>> there is no nesting stack kept there ... >>> >>> \immediate\pdfxform ... >>> >>> works ok >>> >>> Hans >> >> That is strange, as for `attr {...}' such a stack apparently exists. >> `resources {...}' should behave in the same way. > >resources are more complex as they also need to merge with others ... >it's something we will ook into but don't expect changes too soon as >we're in texlive code freeze mode
Thank you, Hans, a lot for taking this into consideration! Kind regards, Alexander