Russ, what did you do to that poor little Acme?! ☺
Did you take the less daunting route using
- a combined font file with shapes for normal, italic, bold, etc. and
- a filter to offset runes into "planes" for each font shape?
Yes, that's what I did. Completely awful - the text being displayed isn't usable as text. You can tell because when I double-click on the modified text acme doesn't know where the word boundaries are and ends up highlighting across punctuation that it normally wouldn't.
<Screen Shot 2020-07-21 at 2.59.23 PM.png>
I'd like to do something better at some point, but it's unclear exactly how.
Inspired by the Russ'es hack, I figured there are
official Unicode ranges for alternative font variants:, "
to be used for mathematical variables where style variations are important semantically". The ranges are not properly aligned into "planes", and some of the ranges are disjoint, but hey, who said standards are well engineered.
So I wrote a bunch of
tr's and came up with a
script called tfont which translates an arbitrary text into a selected code point range.
Reverse translations back into ASCII are available through "|tfont R".
Macs have a decent fallback font mechanism but to have more control over the appearance we may plant subfont overrides similar to Russ'es but in the standard ranges. Take GoFont for example:
To make it easier to experiment with different font combinations and sizes, I made
an awk script, fontmap.awk, which can be invoked like this:
gofonts = (-v 'fR=GoRegular' -v 'fL=GoMono' -v 'fHB=Go-Bold' -v 'fHI=Go-Italic' -v 'fHX=Go-BoldItalic')
awk -v 'vsz=16a' -v 'msz=14a' $gofonts -f fontmix.awk > regular.16.font
Being a standard unicode, the resulting text text is suitable for transmission. See yourself:
𝙻 𝙷𝚎𝚕𝚕𝚘, 𝚠𝚘𝚛𝚕𝚍!
𝐁 𝐇𝐞𝐥𝐥𝐨, 𝐰𝐨𝐫𝐥𝐝!
𝗛𝗕 𝗛𝗲𝗹𝗹𝗼, 𝘄𝗼𝗿𝗹𝗱!
𝘏𝘐 𝘏𝘦𝘭𝘭𝘰, 𝘸𝘰𝘳𝘭𝘥!
𝙃𝙓 𝙃𝙚𝙡𝙡𝙤, 𝙬𝙤𝙧𝙡𝙙!
Depending on your system's font coverage your mileage may vary.
Enjoy!
____
Yaroslav Kolomiiets