Cancel IgnoreMarks?


#1

It’s an OpenType question. Once I use IgnoreMarks in one of the lookups, it seems to remain in effect in all the lookups thereafter within the feature. But I may want to use mark in a context in subsequent look-ups. Is there a way to make it mark-aware again?


#2

You can set lookupflag 0;


#3

Thanks, it works! Is that the flag 0 was intended? I’m using that for a totally different purpose in another file (as explained in the Adobe spec).


#4

I have related question. I am working on an IPA extension. I want to contextually shift breveinverteddoublecomb based on height of glyphs under it and it works well:

lookup breve {
pos n breveinverteddoublecomb’ n ringcomb <0 0 0 -120>;
} breve;


Unfortunately I have to include all possible combinations of combining accents below and above letters unless there is a smarter way. In the above example, I would love to skip or ignore @BottomAccents. Is it possible? And is it possible in selected lookups only?
Thanks.


#5

Put the above marks in a class @aboveMarks and letters in @letters, then you’ll need a lookupflag:

lookup breve {
Lookupflag UseMarkFilteringSet @aboveMarks;
pos @abovemarks breveinverteddoublecomb' <0 0 0 120>;
pos breveinverteddoublecomb’ @letters @abovemarks <0 0 0 120>;
} breve;

I don’t think there’s a way to combine both lines into a single rule.

Don’t forget to reset the lookupflag with lookupflag 0 otherwise everything subsequent will also ignore below marks.


#6

Ben, thanks a lot! Just one question, how do I reset the lookupflag? At the beginning of the next lookup?

lookup brevebelow { 
Lookupflag 0;
Lookupflag UseMarkFilteringSet @belowMarks;
...

#7

Yes, that would work.

I was also wondering if Lookupflag IgnoreBases would avoid the need for the class @letters, but depending on what feature this is in, this might have the unintended consequence of applying the positioning rules even when the above marks are on a different word entirely. Different features apply to different kinds of segments.


#8

@Bendy Ben, I did test the code you sent me. Unfortunately, it does not work. The
Lookupflag UseMarkFilteringSet @aboveMarks;
just completely kills the functionality. Couldn’t be a bug in Glyphs? Or InDesign?


#9

You might need to activate the World Ready Composer in Indesign.


#10

I can’t use Lookupflag IgnoreBases, there are IPA letters with ascenders and accents above, descenders and two accents below, so I have to separate the letters into groups according to their height.


#11

In which feature did you try it? Try another one until it works :slight_smile:


#12

Or is it <0 120 0 0>?


#13

calt
It is either <0 120 0 0> or <0 0 0 -120> both options work.

I did spent several hours with lookupflags but I am afraid it just does not work. Worldready composer did not help neither.

@GeorgSeifert Georg, is the lookupflag UseMarkFilteringSet properly implemented?


#14

In what category and subcategory is the BreveInvertedDoubleComb? If it’s set as a mark we may not be able to access it with GPOS rules this way. (Also maybe it needs to also be in the @aboveMarks class?)


#15

Yes! :+1: THANKS. I didn’t realize I have to include BreveInvertedDoubleComb in the filter or change the category. It works!!!


#16

Excellent! :partying_face:

Those categories are often a good place to look when things don’t work.