Hello,
I've heard back from he developer on this point:
The purpose of width in the width table is to denote the distance to move right when rendering the character.
This includes the character itself, plus the 1-pixel space between characters.
So the widest character can be 18 pixels, with a maximum "width" of 19 pixels.
As such the rom_font.pixel_width is listing the widest character, but not including the 1 pixel spacing. Where as the individual charter widths are listing the widths with the 1 pixel spacing included, as this would be the actual width of the character when displayed on screen.
Best Regards,
BRT Community