Ignore base glyphs

Get help with FontCreator here. Please do not post feature requests or bug reports here.
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Ignore base glyphs

Post by NinnaD »

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?
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

NinnaD wrote: Wed Mar 16, 2022 2:04 pm 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
SampleIgnoreBaseGlyphs.png
SampleIgnoreBaseGlyphs.png (175.98 KiB) Viewed 2853 times
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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?
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

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.
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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:
ma.png
ma.png (5.51 KiB) Viewed 2843 times
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.
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

Can you please show us the input string along with a mock-up of how you expect it to work?
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

m/acutecomb/doubleinvertedbrevecomb/aacute
ma2.png
ma2.png (5.68 KiB) Viewed 2835 times
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

NinnaD wrote: Thu Mar 17, 2022 1:46 pm m/acutecomb/doubleinvertedbrevecomb/aacute
It can be done by adding a mark-to-mark feature.
doublebrevemarktomark.png
doublebrevemarktomark.png (221.47 KiB) Viewed 2833 times
But it might not be exactly what you have in mind, so let us know your results.
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

You will also need to add anchors for the marks.
doublebrevemarktomark2.png
doublebrevemarktomark2.png (216.5 KiB) Viewed 2829 times

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;
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

Thank you, I'll try to implement that.
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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?)
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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.
Erwin Denissen
Moderator
Moderator
Posts: 11160
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Re: Ignore base glyphs

Post by Erwin Denissen »

NinnaD wrote: Thu Mar 17, 2022 3:10 pm OK, that part works :)
Now, is there a way to move the double mark horizontally, depending on which base glyphs are used?
That would require other tricks, but that would make things rather complicated.
NinnaD wrote: Thu Mar 17, 2022 3:10 pm (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?)
The help file is still outdated; working on it.
NinnaD wrote: Thu Mar 17, 2022 3:28 pm 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.
Is this something that will happen in real text or is this hypothetical?
Erwin Denissen
High-Logic
Proven Font Technology
NinnaD
Posts: 200
Joined: Mon Feb 15, 2021 8:06 pm

Re: Ignore base glyphs

Post by NinnaD »

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
affr.png
affr.png (71.06 KiB) Viewed 2816 times
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.
Post Reply