Hacker News new | past | comments | ask | show | jobs | submit login

Here's a tested version that, given text containing only lower case letters, backslash and double quote, capitalizes the letters between quotes and handles escaping reasonably. (works with NotoSans-Regular.ttf)

    @Char = [a-z quotedbl backslash];
    @CharQuoted = [A-Z quotesingle slash];
    @NonQuoteQuoted = [A-Z slash];
    @Escaped = [asterisk dollar];
    
    feature liga {
      lookup xa {
        sub quotedbl @Char' by @CharQuoted;
        sub slash backslash' by dollar; 
        sub slash quotedbl' by asterisk;
        sub [@NonQuoteQuoted asterisk dollar] @Char' by @CharQuoted;
      } xa;
    } liga;
    feature liga {
      lookup xb {
        sub quotesingle' by quotedbl;
        sub slash' by backslash;
        sub dollar' by  backslash;
        sub asterisk' by quotedbl;
      } xb;
    } liga;



Do you know if there is a programmatic way to convert multi character to multi character without intermediate glyphs? E.G. snake -> snāk


For that example, I think you could do

    s n a' k e -> ā
    s n ā k e' -> NULL
although that would also change "snāke" to "snāk", which is not quite what you asked for.

I don't think there's a way to do many-to-many substitution in general, although it would always be possible if you create intermediate glyphs. I believe Section 5 of http://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileS... gives the full list of substitution types.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: