Ignore base glyphs
Ignore base glyphs
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?
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
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
Re: Ignore base glyphs
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?
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?
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
This tutorial covers OpenType layout features related to base and mark glyphs for Latin based characters.
https://www.high-logic.com/font-editor/ ... ks-accents
Let us know if this helps.
https://www.high-logic.com/font-editor/ ... ks-accents
Let us know if this helps.
Re: Ignore base glyphs
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.
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.
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
Can you please show us the input string along with a mock-up of how you expect it to work?
Re: Ignore base glyphs
m/acutecomb/doubleinvertedbrevecomb/aacute
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
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.
Re: Ignore base glyphs
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
mhook/acutecomb/doubleinvertedbrevecomb/aacute
nor for stacked marks:
macute/macroncomb/doubleinvertedbrevecomb/aacute
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
You will also need to add anchors for the marks.
Code: Select all
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;
Code: Select all
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;
Re: Ignore base glyphs
Thank you, I'll try to implement that.
Re: Ignore base glyphs
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?)
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?)
Re: Ignore base glyphs
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.
mhook/doubleinvertedbrevecomb/aacute
Since the anchor on mhook places the double mark at the same height as the acute.
-
- Moderator
- Posts: 11160
- Joined: Fri Oct 04, 2002 12:41 am
- Location: Bilthoven, The Netherlands
- Contact:
Re: Ignore base glyphs
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?
Re: Ignore base glyphs
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:Is this something that will happen in real text or is this hypothetical?
https://en.wikipedia.org/wiki/Affricate
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.That would require other tricks, but that would make things rather complicated.