If I have “a” with 4 combining marks, and want to add a 5th mark, what constitutes the base glyph - just “a”, or “a” with 4 marks, or the last mark? I.e. what will “Ignore base glyphs” actually ignore?
Normalisation might combine certain base mark combinations, for example:
/a/brevecomb will be replaced by /abreve
The Ignore Base Glyphs flag is hardly used, but here is an example:
feature rlig { # Required Ligatures
lookupflag IgnoreBaseGlyphs;
sub brevecomb brevecomb by doublebrevecomb;
} rlig;
/q/brevecomb/r/brevecomb
Great, thank you
About the double combining marks - I’m having trouble in attaching them correctly when the preceding glyph is also a mark, e.g.
m/acutecomb/doubleinvertedbrevecomb/aacute
Which features will that require?
This tutorial covers OpenType layout features related to base and mark glyphs for Latin based characters.
https://www.high-logic.com/font-editor/fontcreator/tutorials/latin-diacritical-marks-accents
Let us know if this helps.
Thank you. It’s too general, I’m afraid.
I’m looking for a solution that will keep the double mark centred between the two base glyphs, but move it up to accommodate marks attached at the top of base glyphs. What I’m getting at the moment is this:
I’ve tried Chained Context Positioning, with single & pair adjustment, but the double mark stays put. At the moment I’m just blindly creating/deleting features in the hope I’ll somehow hit the correct solution.
Can you please show us the input string along with a mock-up of how you expect it to work?
m/acutecomb/doubleinvertedbrevecomb/aacute
It can be done by adding a mark-to-mark feature.
But it might not be exactly what you have in mind, so let us know your results.
Yes, but that’s because macute exists - it doesn’t work for ad hoc combinations, e.g.
mhook/acutecomb/doubleinvertedbrevecomb/aacute
nor for stacked marks:
macute/macroncomb/doubleinvertedbrevecomb/aacute
You will also need to add anchors for the marks.
mark feature:
lookup latn_mark_top { # GPOS lookup type MarkToBase
markClass acutecomb <anchor -748 1203> @top;
markClass macroncomb <anchor -636 1310> @top;
markClass doubleinvertedbrevecomb <anchor -748 1216> @top;
pos base mhook <anchor 1067 1319> mark @top;
pos base macute <anchor 1120 1768> mark @top;
} latn_mark_top;
mkmk feature:
lookup latn_mkmk_top { # GPOS lookup type MarkToMark
markClass acutecomb <anchor -748 1203> @top;
markClass macroncomb <anchor -636 1310> @top;
markClass doubleinvertedbrevecomb <anchor -748 1216> @top;
pos mark acutecomb <anchor -502 1741> mark @top;
pos mark macroncomb <anchor -621 1646> mark @top;
} latn_mkmk_top;
Thank you, I’ll try to implement that.
OK, that part works
Now, is there a way to move the double mark horizontally, depending on which base glyphs are used?
(Btw, the help file lists various positioning lookup types, but I’m seeing fewer - 7 & 9 are not there, and yes I’m using the latest FC version. Why’s that?)
OK, another problem would be this kind of sequence:
mhook/doubleinvertedbrevecomb/aacute
Since the anchor on mhook places the double mark at the same height as the acute.
That would require other tricks, but that would make things rather complicated.
The help file is still outdated; working on it.
Is this something that will happen in real text or is this hypothetical?
Is this something that will happen in real text or is this hypothetical?
Everything is hypothetical until it happens. It’s certainly possible that transcription will require a tie bar to represent e.g. an affricate, and one part of the affricate sequence may have a diacritical mark:
https://en.wikipedia.org/wiki/Affricate
That would require other tricks, but that would make things rather complicated.
It seems I’m past easy solutions - and I’ve already implemented chained context positioning e.g. before aacute, macute. The problem remains for ad hoc combinations, which don’t have a codepoint in Unicode - and creating thousands of extra glyphs is what I’m looking to avoid.
I think I’m on the right track:
M2B positioning, followed by chained context positioning for base glyphs; M2M positioning, followed by chained context positioning for marks, with single adjustment to move upwards.
I’ll see if I can widen the scope.
Good to know you are making further progress on this!
Yep, my entire household heaved a sigh of relief. Now I know the method, sth clicked and (after deleting 1 feature that blocked my previous attempts) I can make it progressively more complex.
Thank you again for your help!