Hello, looking for help with TrueType hinting

Hello,

I am hoping to find help understanding how to hint a font that I started work on a long time ago. The design is very simple and minimal. It is monospace, sans-serif, and all of the stem widths are the same. Every line is straight and at an angle of 0 degrees, 45 degrees, or 90 degrees. It is intended for use without grayscale or color antialiasing.

I recently put the work that I have done to date in a public GitHub repository here: https://github.com/pthomas505/fonts and the current iteration of the design is here: https://github.com/pthomas505/fonts/tree/main/fonts/family_name/monospace/size1/design_2.

I am attempting to do the hinting with TrueType, preferably on Linux, but I am also open to using Windows. I have played around with xgridfit and Microsoft Visual TrueType, and a long time ago with FontLab. The biggest difficulty that I am having is figuring out how to get the diagonal stem widths to match the horizontal and vertical stem widths as closely as mathematically possible at every point size.

Is this an appropriate place to look for assistance with this kind of question, or if not, could someone maybe point me to one that is?

Thank you kindly for your time.
Tagged:

Comments

  • you might find some answers at rastertragedy.com 
  • there is this article also for hinting italics in VTT https://learn.microsoft.com/en-us/typography/truetype/italic-hinting-examples

  • Jan Šindler did some great work on hinting for monochrome using VTT, for his bachelor work, I dont think it is published anywhere, but he may have some ideas. 
  • Thank you all for the suggestions. I tried the YGT tool recently, and have looked at those articles in the past, but I haven't read them closely through in their entirety.
  • Just to make sure, you started with the bitmap fonts and now want to have a TrueType (outline) font hinted to match the bitmap fonts as closely as possible?
  • I would probably try to draw the diagonals like this, so you have your diagonal width right there measured along the blue lines. Then, when you set the projection and freedom vectors to the 45° line, you can control the width of the diagonals directly, and independently of the vertical and horizontal elements.


  • That is a clever approach! I will give it a try. Thank you!
  • I found and modified some Xgridfit code from a while back (attached) that seems to work to make the diagonal stem change width at the same time that the horizontal and vertical stems do. I'm not sure if there is a way to maybe replicate this in something like VTT, because I think typing out the Xgridfit code by hand is going to be more time intensive than I would prefer.
  • It has been a long time since I used VTT to control diagonals for Black and White rendering. There was some old code used Vacuformround I think it was called, but I am not even sure if it supported still. If you are looking for a technical discussion and possible answers, Greg Hitchcock at Microsoft might be able to help you, and Jan Sindler also did a project very similar to this, and may also have some ideas. 
  • Thank you.
  • Wasn’t Vacuformround for creating regularized/symmetrical patterns at low ppem for round-“ish” (but not necessarily perfectly symmetrical left/right or top/bottom) input glyphs such as O, o and 0?

    I will admit it has been almost 30 years, so I might be remembering that incorrectly. I bet Greg knows!
  • Wasn’t Vacuformround for creating regularized/symmetrical patterns at low ppem for round-“ish” (but not necessarily perfectly symmetrical left/right or top/bottom) input glyphs such as O, o and 0?

    I will admit it has been almost 30 years, so I might be remembering that incorrectly. I bet Greg knows!
    yes thats correct, but it reminded me of the request here, as the effect of vacuform made the screen font look like one that had been designed with 45 degree angles : ) 
  • Ah, I see. Yes, the curves would often come out as straight diagonal bits at low-middling ppem sizes, such as when an o or O was 8-12 pixels high.
Sign In or Register to comment.