I am looking for alternatives to hand-lettering a Comic. One attractive alternative would be building a custom font. (I’ll be asking about details on that in a separate question.)
However, I would like add variation to the characters in order to make it feel more natural. Meaning that a character would have to have several, subtly differing definitions. Which definition to use would be determined randomly.
Does any current mainstream font format support this?
If not, what methods exist to produce digital text with such variations?
Or is this simply insane for building the first custom font?
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Opentype fonts allow for many contextual alternate forms of each glyph, and rules to determine when they are automatically substituted for the default glyph form.
As far as I am aware any application which supports OT fonts will support these features.
While you’d normally have only a few letters with a contextual alternate, it’s theoretically possible to have several forms per letter. But I don’t believe you can really randomise their appearance, only cycle through them (so, if you had three forms of ‘a’, they’d be used in sequence and start repeating in ‘the black cat sat on the mat’)
Here’s a nice demo page showing automatic contextual alternate substitution for House Industries’ Studio Lettering fonts. This includes cycling between forms in order to emulate handpainted text, but I don’t think it includes alternate forms for every letter.
To create a font like this yourself, you’d need to not only design the glyphs but add the substitution code. Not sure how difficult this is, but it’s not something supported by all font editing apps.
Given you only want to use caps in your comic, a simple solution to add a little variation could be:
- create two different uppercase forms for each letter
- assign one to the letter’s uppercase slot, and the other to the letter’s lowercase slot
- create your lettering using a mix of uppercase and lowercase characters
You could probably randomise thE mIx to An exTEnt bY hammering on the shift key as you type directly in your design app, but I’d be tempted to write a script in my favoured environment to randomise the case of a string of text and then paste that in. You’d probably want to ensure that where there’s a pair of repeating letters, eg ‘tt’ in ‘letter’ or ‘oo’ in ‘moon’, that they always use differing forms, rather than being truly random.
This approach also has the advantage that you don’t need a full-featured font editor or delve into the inner workings of the OpenType format.
Not only would you need to use a font which has multiple glyphs for the same character but your application would need to support this feature too.
InDesign and Illustrator both have a Glyphs palette that allow you to manually select an alternate glyph for any character in your text. However this would be quite a labour intensive process if you were setting a lot of type.
I don’t know of any software that will select an alternative glyph at random, and relatively few fonts provide them. Those that do are often limited to a subset of characters, usually to provide swashes and ligatures.
Creating a custom font and then manually tweaking all the glyphs (or writing code to do it for you) would not be a trivial undertaking. It would probably be easier to hand-letter your comic 🙂
You are aiming on contextual and stylistic alternate character forms, which is supported by opentype:
There are several SaaS solutions which offer exactly this. Often times, no real fonts are used, but a special software that does randomization to a level where it is almost impossible to make a difference if it was actual handwriting or computer-generated document. Sometimes a person really does every letter by hand.
Disclaimer: I work for one such service, which I would obviously recommend.