VivaRado / Advent

Advent Pro Var
SIL Open Font License 1.1
8 stars 4 forks source link

Accent Anchors #7

Closed VivaRado closed 5 years ago

VivaRado commented 5 years ago

Please inform of letter and weight, with misalignment if it happens and you notice. Thank you!

VivaRado commented 5 years ago

For the italics, there needs to be an additional Xoffset.

mjlagattuta commented 5 years ago

Some notes on missing and missaligned anchors for the Latin glyphs. The list is for capitals but most of these correspond to their lowercase counterparts:

VivaRado commented 5 years ago

Took some time to answer cause had to crosscheck Unicode and advents glyphlist. Some of the anchor requests could happen but they are related to glyphlist extension. Also please check without autoallign in glyphs app because the components have been aligned by offset during the component placement. The anchor might be center but the positioning is according to coordinates of given anchor and Xoffset - Aogonek for example the anchor is at the middle but I provide X and Yoffset and position it accordingly. I don't know why we need a center-anchor if not for Ldot or ldot - which I just offset from the top anchor.

Glyphlist update and anchor additions for later glyphlist update:

- U+1E04 - B with Dot Below (add bottom anchor)
- U+1E06 - B with Line Below (add bottom anchor)
- U+1E1E - Latin Capital Letter F with Dot Above (add top anchor)
- U+01E2 - Ǣ - Latin Capital Letter Ae with Macron (add top anchor)
- U+01FC - Ǽ - Latin Capital Letter Ae with Acute (add top anchor)
- U+1E7C - Ṽ - Latin Capital Letter V with Tilde (add top anchor)
- U+1E7E - Ṿ - Latin Capital Letter V with Dot Below (add bottom anchor)
- U+01EA - Ǫ - Latin Capital Letter O with Ogonek (add ogonek anchor)
- U+01E8 - Ǩ - Latin Capital Letter K with Caron (add top anchor)
- U+1E30 - Ḱ - Latin Capital Letter K with Acute (add top anchor)
- U+0136 - Ķ - Latin Capital Letter K with Cedilla (add bottom anchor)
- U+1E32 - Ḳ - Latin Capital Letter K with Dot Below (add bottom anchor)
- U+1E34 - Ḵ - Latin Capital Letter K with Line Below (add bottom anchor)
- U+1E3E - Ḿ - Latin Capital Letter M with Acute (add top anchor)
- U+1E40 - Ṁ - Latin Capital Letter M with Dot Above (add top anchor)
- U+1E42 - Ṃ - Latin Capital Letter M with Dot Below (add bottom anchor)
- U+1E88 - Ẉ - Latin Capital Letter W with Dot Below (add bottom anchor)
- U+1E92 - Ẓ - Latin Capital Letter Z with Dot Below (add bottom anchor)
- U+1E94 - Ẕ - Latin Capital Letter Z with Line Below (add bottom anchor)

Component Updates:

Thank you Mike for your suggestions - especially bringing to my attention the extension of the glyphlist. The anchors so far are distributed as suggested by you before, according to need to exist basis. If we have some letter that requires it the anchor will be added.

mjlagattuta commented 5 years ago

I was not necessarily suggesting that you update the glyph set; having the extra anchor information is good even if there is not a composite in the font using it. Some apps can construct these composites on the fly based on the anchor information, so presumably you could get an /M with /cedillacomb in InDesign. Obviously some combinations will not be used but others may be utilized by end users.

I’m not sure it is a good idea to position the components as an offset from the anchors. That somewhat defeats their purpose, ideally the offset should be 0 and I think it can be 0 based on Advent’s design. If this is the case then auto-align in Glyphs App should not be a problem except for composites that absolutely require an offset from an anchor.

As an example of a potential problem with offsetting from anchors, if you are typing in a piece of software that allows combining marks to attach to anchors on the fly then those marks will not align with the other marks, since the composite marks are offset and the non-standard one’s will instead snap to anchors.

The /D /O /L and /T can take center anchors so that you can attach/strokeshortcomb /slashlongcomb /slashshortcomb and /strokeshortcomb, the same applies to their lowercase counterparts. I believe it is fine to build the composites with just a component and an outline, but in cases where a form may be reused like in the upper and lower /Lslash or the upper and lower /Tbar then it may be better to add the combining glyphs and the center anchor :)

VivaRado commented 5 years ago

Hello Mike, so here's another one about anchors.

Missing anchor. According to the opentype spec, if a glyph contains an anchor point for one anchor class in a subtable, it must contain anchor points for all anchor classes in the subtable. Even it*if, logically, they do not apply and are unnecessary.

~ Font Validation window

Does that mean that there is no "need to exist basis" and all anchors have to be in all letters no matter what, I think it does.

If so I will have to revert the code to when the componentization applies all anchors to the glyphs.

mjlagattuta commented 5 years ago

I think this has less to do with the way you set up your source file and more with the way the final binary is built, meaning I believe fontmake handles this and there is no need to add all anchors for each glyph in your source; some glyphs don't make sense to have a "center" anchor, or "ogonek" anchor, etc.

VivaRado commented 5 years ago

As seen in the TTX, quick check, there is no anchoring information, thus there is no actual size reduction if all the anchors exist in the UFO. But as for standards I think the source files should include them. I will see at some point to add a include_all = True to the accent_logic function. Let alone we escape the future problems of adding anchors in case we add glyphs.

VivaRado commented 5 years ago

Accent Component Alignments:

mjlagattuta commented 5 years ago

What do you mean by no anchoring information? There should be MarkToBase and MarkToMark subtables within the GPOS table

Also what is the list of glyphs above: "Accent Component Alignments" ?

VivaRado commented 5 years ago

Its just what accent components got fixed. I ll check again a TTX.

VivaRado commented 5 years ago

All anchors have been aligned, the UFOs do not include anchor information, that is only if someone exports from the source, as i find it reasonable to not burden the already aligned UFOs with anchor kb. If anyone is interested in developing or adding glyphs or accents i think that they will have to deal with the EFO, it is fairly easy to export UFOs with anchors from the EFO just with efo_to_ufo.py.