Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contextual Alternates against common microtypographic mistakes #455

Open
Crissov opened this issue Mar 9, 2021 · 7 comments
Open

Contextual Alternates against common microtypographic mistakes #455

Crissov opened this issue Mar 9, 2021 · 7 comments

Comments

@Crissov
Copy link
Contributor

Crissov commented Mar 9, 2021

Inspired by this tweet, I'm considering a PR to add some calt features.

Eszett

In particular, a lowercase eszett ß among uppercase letters, as often encountered, should use the glyph of the uppercase eszett ẞ uni1E9E. Libertinus already handles this fine for automatic smallcaps.

I inspected calt.fea and it does not yet have a macro for Latin uppercase letters that I could use. ccmp.fea, however, already contains a definition for @capitals, which also has Greek and Cyrillic letters in it.
For German, I'd probably only need to consider the subset AZ and Adieresis, Adieresis.alt, Odieresis, Odieresis.alt, Udieresis and Udieresis.alt. (É could occur, but it's very unlikely.)

I would favor if we could have a central place to maintain such lists of glyphs. Perhaps they could even get updated automatically when new characters/glyphs are added to the fonts.

Such collections could also make the substitution rules in sc.fea much simpler.

Colon

When the colon : occurs between digits, should we replace its glyph by the ratio glyph or should we raise its position (as Apple does) or should we leave it alone?

Apostrophe

Should we detect and fix accents ` and ´ being used as apostrophes mistakenly?

We could also offer an opt-in smartypants feature that replaces straight apostrophes ' and quotation marks " by curly ones and the hyphen-minus - (when surrounded by whitespace) by a dash depending on language.

Math symbols

Should asterisk * and x be replaced by the multiplication sign when they occur between digits? The hyphen-minus should then also use the minus glyph when followed by a digit.

SI units

It's possible to identify all possible SI unit symbols (including magnitude prefixes) after a digit (and a space) and force them to be upright in an otherwise italic font. Should Libertinus offer such an automation?

There are some frequent unit symbols like the ones for newton-meter (N·m) and kilowatt-hour (kW·h) that should have a multiplication dot inside. I'm not sure a font feature could add this easily if omitted, or whether it should.

@iandoug
Copy link

iandoug commented Mar 9, 2021

It's possible to identify all possible SI unit symbols (including magnitude prefixes) after a digit (and a space) a

FWIW, I've noticed in LibreOffice Writer that the spellchecker gets upset if I write "15 m" instead of "15m".

cheers, Ian

@khaledhosny
Copy link
Contributor

In particular, a lowercase eszett ß among uppercase letters, as often encountered, should use the glyph of the uppercase eszett ẞ uni1E9E.

Replacing glyphs for encoded characters with glyphs for other encoded characters is generally frowned upon. In this case you are also disallowing mixed case usage behind the user back in a non-standard way and no direct way to override it. One certainly doesn’t want fonts to change McDonald to MCDonald as text case is not their business.

When the colon : occurs between digits, should we replace its glyph by the ratio glyph or should we raise its position (as Apple does) or should we leave it alone?

Same thing. You also get things like rsms/inter#193 when trying to be too smart.

Should asterisk * and x be replaced by the multiplication sign when they occur between digits?

0x0000

@iandoug
Copy link

iandoug commented Mar 9, 2021

There are things a font should do, like some ligatures, and things a FONT should not do ... :-)

https://www.thepolitetype.com/

@Crissov
Copy link
Contributor Author

Crissov commented Mar 9, 2021

Eszett is different from other Latin letters, though, because its uppercase form has been added to Unicode rather recently and many people still either don’t know about this or don’t know (or care) how to enter it. The lowercase letter occurs within runs of uppercase letters quite frequently, especially in family names.

The hexadecimal notation with 0x could be handled, but I get your point.

@georgd
Copy link

georgd commented Mar 10, 2021

With respect to ß, I agree that in 999.999 ‰ of the cases, between two uc letters it should be uppercased. The only case I could think of where not is a designer's joke mocking bad typography — and that user group surely would know how to prevent such replacement ;)

But as per @khaledhosny you should do the substitution by a copy of ẞ in a new glyph called germandbls.uc or something like that.

@iandoug
Copy link

iandoug commented Mar 10, 2021

Another one to think about: the ℓ for litres.
https://en.wikipedia.org/wiki/Litre#Symbol

But controversial ... we were taught to use ℓ but I see many places use L or l. mL just looks wrong :-)
I've seen ℓ and l on packaging here, may be limited by font choices ... and some journals require L.

Most people haven't configured their keyboard to type ℓ easily and would need to use a character picker..

Cheers, Ian

@kimmus
Copy link

kimmus commented Mar 11, 2021

There are things that fonts should do. And there are things that software (word processors etc.) should do, if they are to be done at all. In my opinion, most of the above falls in the latter category.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants