Heiko Oberdiek wrote:
Hello,
I have some trouble to insert something at the start of a list.
weird message indeed; this works do local hlist = tex.box[0] local pdf_literal = node.new(8,8)% \pdfliteral pdf_literal.mode = 2 % direct pdf_literal.data = "1 0 0 rg 1 0 0 RG" pdf_literal.next = hlist.list hlist.list = pdf_literal end current assigning to a box (or operating on box related lists are somewhat tricky, internal invisible pointers and such; this interface will probably change a bit; it helps to copy the list, work on the copy and hpack the result
Example (complete example file after PS):
\setbox0=\hbox{XY} \directlua0{ do local hlist = tex.box[0] local pdf_literal = node.new(8,8)% \pdfliteral pdf_literal.mode = 2 % direct pdf_literal.data = "1 0 0 rg 1 0 0 RG" local head = hlist.list % local current = hlist.list.next % works local current = hlist.list % fails hlist.list = node.insert_before(head, current, pdf_literal) end }
! LuaTeX error Attempt to node.insert_before() a non-existing node.
Have I misunderstood node.insert_before()?
Yours sincerely Heiko
PS: Complete example file that can be used with iniTeX, plain-TeX and LaTeX:
\ifnum\catcode`\{=1 \else \catcode`\{=1 \catcode`\}=2 \hsize=6.5in \vsize=8.9in \parfillskip=0pt plus 1fil \fi \font\f=cmr10 \f \pdfoutput=1
\setbox0=\hbox{XY} \directlua0{ do local hlist = tex.box[0] local pdf_literal = node.new(8,8)% \pdfliteral pdf_literal.mode = 2 % direct pdf_literal.data = "1 0 0 rg 1 0 0 RG" local head = hlist.list % local current = hlist.list.next % works local current = hlist.list % fails hlist.list = node.insert_before(head, current, pdf_literal) end } \shipout\hbox{[\box0]}
\csname @@end\endcsname \end _______________________________________________ dev-luatex mailing list dev-luatex@ntg.nl http://www.ntg.nl/mailman/listinfo/dev-luatex
-- ----------------------------------------------------------------- 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 -----------------------------------------------------------------