fix(mono): maintain fixed width for fractions and code ligatures #44
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #33
Rationale and fixes implemented
Few things to note here, this PR tweaks all the mono glyphs to the same metric width (600) -- thus, system and code editors will recognise Geist Mono as a monospace font.
In doing so, a few things needed to be changed :
frac
open type feature. It didn't make sense to include it as the input was 3 characters (ie.1
/
2
) to result in 1 character (½
)SPC
glyph -- empty character -- which is used as a filler character to construct the ligatureliga
(standard ligature) feature -- previously auto generatedcalt
(contextual alternative) feature -- this replaces theliga
and contains all previous instructions but utilising theSPC
character. This is the same/similar approach as how JetBrains Mono, Fire Code, et al... uses.Test export files -- ttf only
8f30371GeistMono.zip
Supporting screenshots
Redrawn fraction glyphs
![CleanShot 2023-11-06 at 21 16 00@2x](https://private-user-images.githubusercontent.com/51947763/280636164-b2722f33-19a7-42fe-9476-13bb52aa4e7a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzODk4NTEsIm5iZiI6MTcyMDM4OTU1MSwicGF0aCI6Ii81MTk0Nzc2My8yODA2MzYxNjQtYjI3MjJmMzMtMTlhNy00MmZlLTk0NzYtMTNiYjUyYWE0ZTdhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDIxNTkxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYwOGM5YjRhYzU0ZDE3ZmRhM2I0OTk4MWIxZTkzOWUyYjUzYmMwYTg1M2VkNDYwNjMyMzVmYTYxYzM3ZDc4M2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IPu5uIZRJOt0-LMlV1yCbABVZPHayFLdSHBBqc9x5fE)
Now recognised as a monospace by WebStorm
![CleanShot 2023-11-06 at 21 22 22@2x](https://private-user-images.githubusercontent.com/51947763/280637882-34639840-c418-4ce8-aac8-3eadbce26f0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzODk4NTEsIm5iZiI6MTcyMDM4OTU1MSwicGF0aCI6Ii81MTk0Nzc2My8yODA2Mzc4ODItMzQ2Mzk4NDAtYzQxOC00Y2U4LWFhYzgtM2VhZGJjZTI2ZjBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDIxNTkxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQwNjY4N2NmYTI4NDM0N2NmNzA3YTkxZjJlNzZjYmVkNDVhYzhiY2YzZTAzYmMzODliYzcwMmI1ZWY0NWYzMDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TV7JsxrkqK7ppQiikt7TK1Tp7U1KX_W2vh7D9Qbnpeg)
(I didn't test other code editors or systems, would be super surprised if others don't recognise it now as a monospace)
Ligature still works
![CleanShot 2023-11-06 at 21 24 58@2x](https://private-user-images.githubusercontent.com/51947763/280638462-83e5ce62-ad1b-43f4-8bf2-cdfbd7123744.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzODk4NTEsIm5iZiI6MTcyMDM4OTU1MSwicGF0aCI6Ii81MTk0Nzc2My8yODA2Mzg0NjItODNlNWNlNjItYWQxYi00M2Y0LThiZjItY2RmYmQ3MTIzNzQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDIxNTkxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBhYmMzNTU0ZDg3NTFkY2RiOTZjNDEzNGI1OTBmMDVhYWY0YWY0YzI4ZDY1MTNlNGQ0MmFhZmI1YTM1ZTBkMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cUd53TH7ihGQ9WzaJHPxt6GLwHO40E-3MNBnuPrbQWw)
Actions and next steps
Keen to get some peer (/stress) testing in to see if I'm missed any code ligature pairings and if any ignore sub needed to be added.
Fractions should be viewed from a design perspective.
If all happy, would need to cut a new release -- I didn't do this bit as it's not documented how y'all are exporting the binary font files (either directly from Glyphs or using fontmake or other scripts)