I'm a hobbyist font designer, working on a project that may never leave the realm of personal use, but, I'd like to future proof against the possibility that it will eventually end up being distributed (either just the font, or the whole thing). As a result, I'd like to make the font "properly."
The font itself falls into the category of a symbol (or maybe dingbat or even pi) font providing the symbols necessary to chart out knitting patterns. There are a number of existing fonts that already do this, of course, but each one has it's issues (ranging from an extremely restrictive personal use only license that technically prohibits me sending a pdf copy of a document I create using it to a friend and on up to not providing all the necessary glyphs or providing all the glyphs but spread over several different fonts that don't always play nicely together even though they are part of the same "family").
Enough background, on to my questions (and I'm sure I'll have followups):
- This needs to be a fixed width and fixed height font, which only works when character width=character height=line height. I've done a lot of reading, but, I'm still confused as to how I would set the metrics to make this work (not counting making sure the line height is properly set in whatever program the font is used in)? To illustrate, example B (image attached below) is a graph paper sketch showing 2 lines of 4 characters each
- The symbols to be used are known as the UK/American style, and as such are (generally) only used by English speakers. All examples that I have found place each symbol within the Latin codepoints, with the most commonly used symbols accessed from the basic English keyboard - such that if someone looks at a document without the font installed (or something like Arial selected), they'd see for example kppkkk\okkkppk. Is this an absolutely wrong thing to do? Do I have to use the PUA to be "correct"?
- I'd like to do something like this (see end of this question): with each glyph where the grey stays grey, but the black is recolorable using the word processor's (or other text entry program) text color controls and, if the user chooses to use a background color the background is filled in. Do the various color formats allow that (my personal use looks like I'll have to use COLR - if anyone uses XeLaTex and/or LuaHBTex can confirm that I'd appreciate it) or is built in modifiers like with getting skin tones on emojis the only way to make changes in colored fonts?
(A is a small subset of commonly used symbols, C I decided not to ask about just yet, but all three are in one image I had prepared before deciding just how I wanted to ask my questions)
Regarding question #3, I've confirmed I need to use COLR/CPAL, if that makes it easier to answer.
To address the C sketch, sometime symbols need to crash into each other, and/or make use of small versions of some other symbols along the lines of diacritical marks. The C sketch shows the an example of the glyphs that make those up, and how they would be viewed. Zero width glyphs would be one way to handle this, placing the pseudo diacrits in diacrit codepoints MIGHT be another way (zero width is probably more correct and easier for the end user), but would they also work with COLR?
If you find that all glyphs fit neatly into a boxes, I'd definitely consider defining the entire font as a "mono-spaced" font. A consistent zero-width might be appropriate, but only if you're not expecting the font to be used alongside regular text / explainers.
People quickly memorise which keys relate to which symbols, and using a standardised character set allows existing documents to be easily switched to your font. The latter would otherwise require character mapping, a time-consuming process.
I actually was planning on overshoots, for both the bounding boxes and the symbols that actually collide.
I will look into shape components (I'll be using Birdfont since it runs on Linux, not sure if it makes use of them or not, exactly which version I'll be using depends on whether COLR fonts work the way I'm hoping they do). It sounds like they would be perfect.
I'm not really sure mono-spaced will work, unless I'm misunderstanding how to set them up.
If that box is the em square, with the red line being the baseline, MOST symbols will fit within the the blue area, but some will overshoot the blue guides, others will overshoot the red or green, and some will be only a small portion of the blue area. The important part is that every character is exactly the height and width of the black bounding box (not counting the intentional overshoots). Based on my understanding, monospacing won't give me that consistent 1 em width. But you did remind me of something I wasn't thinking about, it is important to be able to number each line on the right side, so will need to consider a solution (creating 0-9 glyphs just for this, and giving them a wide left bearing is a possibility).
I AM planning on matching code points with existing fonts, but, off the top of my head only 6 are common across all of them - one of the many tasks I still have to do is make sure there aren't more, then choose codepoints for those that have been randomly placed in the past.
As a counter-example, Google’s Material Symbols is a symbol/dingbat/pi font which is monospaced and uses exactly 1 em glyph advance widths. Seems like a fairly similar case to your font, at least in that regard. (Production and design on Material Symbols is my main gig these days.)