-
Notifications
You must be signed in to change notification settings - Fork 60
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
Combining diacritics from diacritics already in fonts #17
Combining diacritics from diacritics already in fonts #17
Conversation
…flexcmb, dieresiscmb, dotaccentcmb, gravecmb, hungarumlautcmb, macroncmb, ogonekcmb, ringcmb, tildecmb These combining marks are using spacing or legacy diacritics as components. It might be better the other way around.
…s components * Rename acute.cap, caron.cap, circumflex.cap, grave.cap to acutecmb.cap, caroncmb.cap, circumflexcmb.cap, gravecmb.cap * Adjust their advance width to zero * Add groups @CMB and @cmbcap and substition after @uppercase in 'calt' * Rename components in other glyphs
86aef7f
to
df72fc1
Compare
df72fc1
to
3b6b64f
Compare
Thank you Denis! By missing anchors, I assume there's a standard on what anchors each glyph requires–is there some resource I can refer to in the future? Of course Glyphs App itself has it's own GlyphData.xml but I'd still like to a source for reference. |
No there is no standard per se on what anchors each glyph requires. I keep a list for African orthographies with the Latin alphabet in https://github.com/moyogo/anloc-data. I also have an unpublished list for other languages. If you venture in phonetic transcriptions or historical orthographies there are even more combinations. The bottom line is: you might as well assume any base character can be combined with any diacritic. Which brings me to a couple of question I have for how you’d like things to go.
|
Cool. This sounds like something I should be standardising in all libre fonts. Do you agree? |
@davelab6 Yes, I agree. A good starting point is actually to use the combining diacritics characters instead of the spacing or legacy diacritics to build the precomposed accented characters (those in Unicode). That way you can easily extend the character set and you support combining with combining diacritic. Just to make sure there no misunderstanding, the main point of these anchors is to end up in the 'mark' feature in GPOS, not to build all possible combinations as precomposed glyphs (precomposed characters in Unicode, ex: e+cedillacmb, and combination in Unicode as character sequences, ex: q+acutecmb). |
I agree; but https://github.com/twardoch/ttfdiet#test-results shows that
Adobe, Quark and Word fail to use mark/ccmp correctly and rely on the
legacy chars
|
So I think that, like KERN vs GPOS kerning, the 'master' TTFs should have
both, and then subset for platforms that can use smaller/newer techniques
as needed.
|
Yes, the precomposed character should still be there. I meant to say not all possible combination should be a a precomposed glyph. I would not include precomposed glyphs for q́, q̀, q̂, q̌, q̈, etc. in a font but they can still be composed with the font. |
Thanks for answering and your continued contributions!
Yes.
If you think it's appropriate, sure. But I don't understand what you mean here: Does
I tried using the acutecmb.cap and I think it's too tall. Can we not just taking the acute in the lacute and creating a acutecmb.asc, what is the |
Marshallese uses Ļ ļ M̧ m̧ Ņ ņ O̧ o̧. Because of the preferred comma shaped cedilla Ļ ļ Ņ ņ have a comma shaped cedilla. But M̧ m̧ O̧ o̧ have the classic cedilla. It would be best if the
It’s something the fonts on Navajo resources are doing: |
Yes, that’s fine as well. The other diacritics can also go above letters with ascender. For example circumflex is used on h in Esperanto, grave on f, t, k in ISO 9 romanization of cyrillic, caron on h in Lakota or Romani in Finland, dieresis on h in Kurmanji, macron on l in Votic, tilde on l in Lithuanian, dot above was used on b or d in Irish. There are some romanization or historical orthographies using breve and ring above letters with ascenders as well. I’m not aware of double acute on ascender. |
I see, I can add .asc versions where appropriate too. Should it conform to the 125% of UPM max height? |
Even if those glyphs are made with a ̧ 0327 COMBINING CEDILLA, why do L l N n default to the comma cedilla? and M m O o to the classical cedilla? |
If that’s what you used for lacute, yes.
Around the end of the 19th century the comma below was a common shape for the cedilla in fonts. So, the cedilla can have several shapes. In Latvian the preferred shape is now the comma cedilla under Latvian letters. In Romanian, separate characters were created so the comma below diacritic can be used. In Marshallese or some other context, the cedilla should have a single shape. I’ve finished adding anchors. |
Thanks for the information! I noticed the anchors in the Black masters for .asc glyphs are wrong (the asc height of the Black master changes). I'm currently adding the .asc versions of diacritics. |
Cool. I’m fixing the top anchor on those ascenders setting them all to 730. |
FYI about the ogonek: adobe-fonts/source-sans#75 |
BTW if you are going to move anchors on any base glyphs you need to disable automatic alignment on the related diacritic glyphs. I.e. you moved the bottom anchor on T, then the commaccent in Tcommaccent will be moved to a new position that is not what I intended. Many of the diacritics have moved out of place now, I don't know of any easy way to go through and place the components in the correct place again. cc @schriftgestalt @mekkablue ? |
…ble automatic alignment on uni013C.ss02
…d bottom to lowercase missed in previous commit
…as components from previous commits
Why would you change the anchors in a way that would make the Tcommaaccent look bad? |
Good question :-) There should probably be a different anchor for bottom anchors like dot below, macron below, circumflex below. These should be centered on the stem of T instead. I see I need to also realign and disable automatic alignment of the grave and double acute on ÀÌÒÙŰ in two masters. |
Because the other anchors look better that way. And then if I changed the anchor in the commaaccent itself it wouldn't look balanced elsewhere and if I balanced those other ones then it threw more off. I find some diacritics don't work with a single anchor.
|
That all looks like a mistake. And I didn’t see a case where the marks that where positioned properly in the I (uppercase i), would need a different horizontal position on any of the wider letters. So center the anchors in the I and position them in the marks that they look good in on the I. Then you can position the anchors in all other letter. |
Previously used ordinary caron above L
Why 730? it should be 700, I'm changing them now too |
The acute look fine for me. But if you don't like it, move The anchor in the grave |
Can't, it will move it everywhere else too! |
@moyogo new branch with your changes https://github.com/weiweihuanghuang/Work-Sans/tree/moyogo-diac |
The base of the acute/grave should not be centered above the glyph: http://diacritics.typo.cz/index.php?id=4 The placement on your I and A is exactly as it should be. |
Why not? [Edit] These guidelines don't say it's bad practise to center it:
Having looked on MyFonts I do see a lot of examples where the lower edge goes beyond the base glyph. |
@weiweihuanghuang thanks. I rebased my branch on yours. |
@moyogo Great, I don't think so, I'll generate fonts and check that none of the custom TTFA hinting has changed. I'll also test the GPOS combos. Btw do you know of a resource/tool where I can find what languages are now supported with these extended combining diacritics + anchors — or do you have an idea? |
The CLDR has data to get such a list, but it’s stil a work-in-progress and many languages are missing or have incomplete data. You’ll get a much larger CLDR-language count if you add all the precomposed characters that use the current diacritics. A bunch of languages that benefit from these combining marks also use missing characters (either precomposed character like ŵ, ỹ, etc. or additional characters like ɛ, ɔ, etc.). |
My Pyfontaine aspires to be such a tool
|
No description provided.