googlefonts / googlefonts/glyphsets

Add Space glyphs

Open
#20 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
115
Forks
20
PR merge metrics
No merged PRs in 30d

Description

I want to suggest that we add a group of space glyphs somewhere in the glyph lists.

The argument for having them is that they add functionality and broader text compatibility. Unlike a more typical kind of glyph which has a shape these don't add to the data footprint very much at all.

They are also either logical ( based on existing data ) or even better just require a standardized width (assuming a specific EM is in use). I suspect that their addition to fonts is almost certainly scriptable. The work could be done in Glyphs or in FontBakery or both/either.

I have taken my definitions from the [MS typography standards](https://docs.microsoft.com/en-us/typography/develop/character-design-standards/whitespace) document. Here is the list in the order that Glyphs app puts the new glyphs in. This is not unicode order:

emquad - U+2001 - this is equal to the nominal emspace so in a font using an em of 1000 it should be a width of **1000 units**.

emspace - U+2003 - as above. The reason for seeming duplication doesn't seem to be explained in spite of a longer and less matter of fact description. **1000 units**

enquad - U+2000 - MS says "equal to the en space and one half the em" FYI the normal en space is also 1/2 of the em space. In a 1000 em font this should be a width of **500 units**.

fourperemspace - U+2005 - "equal to 1/4 of the em space." In a 1000 em font this should be a width of **250 units**.

narrownbspace - U+202F - In a 1000 em font this should be a width of **167 units**

sixperemspace - U+2006 - equal to 1/6 of the em space. In a 1000 em font this should be a width of **167 units**

threeperemspace - U+2004 **300 units**

zerowidthjoiner - U+200D - In a 1000 em font this should be no width or **0 units**.

zerowidthnonjoiner - U+200C - In a 1000 em font this should be no width or **0 units**.

There are also formulas or logics for many of the non-wordspace spaces that are already in the standard glyph lists Google made. If we make a script for the glyphs above we could make sure these are also treated.

figurespace - U+2007 - The width of the default numeral zero in the font

hairspace - U+200A- In a 1000 em font this should be 1/16 width of the or **62 units**.

punctuationspace - U+2008 - Standard setting is equal to the advance width of the period U+002e and comma U+002c.

nbspace - U+00A0 - The No Break Space width = the width of the space glyph of the font.

thinspace U+2009 - Standard setting is 1/5 of the em space. In a 1000 em font this should be a width of **200 units**. However MS notes : _When traditionally typesetting the French language a word space is inserted before or after several punctuation characters. These characters are _colon, semi colon, question, exclamation, right guillemets, and left guillemets. _Commonly the preferred word space used is a thin space of 1/8 the em. Some French typographers prefer to use a larger space character of 1/4 the em with the colon and some other punctuation characters. OpenType supports character substitution and language dependant variants._ I am not sure we want language specific variation for this glyph. Maybe we do. But if we don't and we want to cater to those who seem to use this the most e.g. French typographers we could say let's use **125 units**. I would like to chat to a few people about it before hand though.

zerowidthspace - U+200B - In a 1000 em font this should be no width or **0 units**.

Note: I am not sure glyph list the spaces I will make a case for should be added to, e.g Core, Plus, Pro or Expert. I am can see arguments a range of choices.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing glyph lists and the MS typography whitespace standards linked in the issue. Determine which lists should receive the proposed glyphs, how widths and formulas should be handled, and whether Glyphs, FontBakery, or both should be used; done requires an agreed scope and complete treatment of the selected space glyphs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.