Contributing BQN and remaining APL characters
mlochbaum opened this issue · 11 comments
I'm the author of a programming language called BQN, which is in the APL family but uses a different set of glyphs (you should be able to see them above the sample REPL on that page). I'd like to be able to offer users a good choice of fonts, and 3270 fits BQN's simplified futuristic look nicely. I also noticed that 3270 is missing many essential APL glyphs, including some that have become widespread relatively recently but also some older ones. So I'd like to contribute the following:
- APL glyphs
⋄⊖∨∧⊣⊢⌈⌊≢⊆⊇⊂⊃⊥⊤⊙
- BQN glyphs
⎉⚇◶⊘⎊⁼⟨⟩⋆⊔⊑⊒⊏⊐⊸⟜↩⥊∾≍‿𝕣𝔽𝔾𝕊𝕎𝕏𝕗𝕘𝕤𝕨𝕩
- Probably the other double-struck characters (assuming I follow the outline style used by the digits).
I'd also like to make some changes to existing glyphs, but I don't consider any of these important. Let me know which of these are okay with you:
⍷
should use a membership symbol like∊
. They are conceptually paired in APL and, as far as I know, not used elsewhere.¨
should be heavier. I understand this affects accented letters as well as APL overstrikes, but I find even these difficult to read.¬
should be moved down to some kind of midline positioning. In BQN, superscript characters are modifiers but¬
is a function, so the current positioning would be slightly confusing.˜
(superscript tilde) should be narrower to distinguish from the ordinary tilde~
. BQN avoids using ordinary tilde for exactly this reason, but it's still a potential point of confusion.
I'd expect to make these glyphs over one or a few weeks. I've confirmed I can edit 3270_HQ.sfd
with FontForge and rebuild. Are there any subtleties to be aware of? I'll follow the existing style of 45-degree angles and perfect circles when possible (looks like ∨∧⎊⟨⟩⋆
are the exceptions although I can imagine ≍‿
requiring some looseness to work well), and use references where appropriate. If there's anything to know about validation or hinting then I don't know it. I also can't figure out what those tinted background shapes are.
It looks like this repository isn't too busy at the moment (not a complaint!). Do you think I'll be able to avoid conflicts with an ordinary PR? Or should I submit a file with just the changed glyphs like the README says? Or just do the glyphs and ask again once I'm done?
Okay, I've poked around enough to find that the tinted shapes are hints, so that's two questions resolved. I also see the commits in the develop branch now—busier than I thought, but the question about merging still stands.
And I notice many of the missing APL glyphs in the unencoded section. I'd like to add to my list of changes that ○
should be replaced with "NameMe.814", which is referenced for APL glyphs involving a circle such as ⍥
. Obviously this is more consistent for APL, but the larger circle is also closer to how I've seen it in other glyphs and matches the filled circle ●
better.
I'm not sure what the best approach to merging is. Fontforge is messy in that regard. My idea of a "safe" approach is to copy the glyphs from your file, add your name to the contributors and figure out how git does the "give credit" thing when I commit your changes.
I noticed FontForge, or at least my copy, is changing a bunch of extra information (Image2 fields for unrelated glyphs) when I save, so I'll definitely give you a file with just the changed glyphs. Would it make sense to do a PR that adds that file? That seems like the best way to get something resembling an accurate history.
For the outlines that exist, I think I just expanded the contour of existing glyphs - just note the values you used that look consistent and, if there is need, I can make everything consistent again.
As for the PR, make it against the develop branch, add a new file with just the new glyphs, make a note in the changelog, and I'll make the rest. Don't forget to mark this bug solved in the commit message.
Again, thanks for the help. :-)
Thanks, Marshall. I was able to integrate everything with minimal changes. It passes all validations, but I'd like to ask you to test the develop branch yourself - my APL-Fu is weak.
Good with me. The only differences I see relative to my version are that ¨
(including references) and ˜
haven't been modified (they should be pulled from "Modify some glyphs..." in the changelog). I'd definitely recommend it to APL or BQN programmers now.
True. Forgot to change that. I haven't modified those because the tilde would ripple through lots of accented chars and ¨ created some overlaps that cause it to fail validation. I'll make the CHANGELOG updates. I still need to update the rendering tests to include your characters.
Thank you for the great work.
If you've finished fixing the tests, I'd appreciate a release so I can put 3270 on my fonts page. Thanks for maintaining such a cool font!