Abdu,
Thank you very much for those detailed and helpful comments. I appreciate learning about the three kerning pair sites you provided; I will find them quite useful for future experiments.
I also have just carried out on my threat and have added leading controls to my charpath and wordpath nodes. This will make it even easier to try dynamic width-based line breaks and leading layouts:
https://forum.nodebox.net/t/9317647752/leading-added-to-charpath-and-wordpath
I spent a little time refreshing my memory about the internal metrics in True Type fonts. I still see no obvious way of sucking these metrics directly into Nodebox, but even if you could (for a particular font and text string), I think they are just too complicated.
You could conceivably access some of Nodebox's much more limited internal metrics with AI-assisted Python code using an approach similar to my canvas node, although I'm not sure this would work. But I don't think that would buy you much even if it did.
Fortunately, you can do a LOT with my existing text nodes to develop a tool to help you adjust kerning pairs and other such things. In particular, my kern node would allow you to adjust kerning (based solely on character paths), word spacing, and leading for a block of text with manual line breaks.
Kern outputs one path per line, but you can ungroup it into individual characters. You could then use my change_item node to adjust particular kerning pairs by nudging a single character a little to the left or right (or up and down for superscripts and subscripts). To do this, set Option to Nudge. You can chain together multiple change_item nodes to make multiple fine tuning adjustments for the ultimate control over any block of text in any font.
Once you were satisfied, it should be fairly simple to calculate the internal True Type metrics you need for any kerning pair based on the settings you made to kern and change_item (taking font size into account). You could probably come up with a system to streamline this process.
If you do develop such a system, I would love to see a demo of it in action. If there's some other particular text adjustment you need to make in Nodebox that my current nodes can't quite do, please let me know.
I am still thinking about the half dozen different text nodes I now have in my library and how they could work together better or maybe even be consolidated in some way.
I think I now have the tools to simulate a responsive webpage layout with finely-controlled markup text entirely within Nodebox. Such a stunt would be crazy even for me, and fairly useless to boot, but I think it would be possible.
John