Hans Hagen wrote:
On 28-11-2010 7:40, Graham Douglas wrote:
Thanks Hans.
Sure, I've been doing this to generate the GraphViz diagrams etc plus hooking into various callbacks etc. What I don't yet quite understand is the correct navigation or link path to follow through the node structures and the best way to access or calculate glue (set) values for things like skip between words.
that is just a multiplication factor; for the precise dealing of it you might want to look into the backend code (take the dvi related code at that is rather simple and discussed in the tex the program book as well; it might look more complex due to hz and protruding)
in general you loop recursively, i.e. in a typeset box you need to follow the list in hlist/vlist nodes; in backend related operations you also might need to go into the leader part of a rule
=========== Thanks Hans. For sure there is a lot of recursion here, but I just need to work out the order of traversal, when you recurse and once you get back to the top of each recursion where you go next, to do more recursion etc. What I was also wondering is whether the final set value of the glue is directly available, as was determined by LuaTeX. For example, page 89 of the beta 0.65 manual Taco gives an interesting example ======= node.dimensions(<number> glue_set, <number> glue_sign, <number> glue_order, <node> n, <node> t, <string> dir) This calling method takes glue settings into account and is especially useful for finding the actual width of a sublist of nodes that are already boxed ======== So I was curious to know if it is possible to get access to the glue set values as you traverse the list. Simplistically, as you traverse the list: .... see glpyhs (width, height, depth) --> emit PostScript to place glyph see interword skip (actual amount) --> emit PostScript to move by skip (or shift or kern) see glyphs etc So, all I want to do is traverse the node list and emit PostScript code to place glyphs and do skips/kerns/shifts etc to create a copy of the typeset text as would be placed in the final LuaTeX PDF Really just a toy exercise (no real application) through which I can gain understanding. For sure the other node types etc would need handling but I'm just interested (for now) in emitting PostScript to generate an exact copy of the typeset \vbox {} etc, as a way to understand the world of nodes etc. The final PostScript would just be made into a PDF for visual comparison. Many thanks and apologies if my explanations are unclear or confused (both likely!) Best wishes Graham