Contextual Alternates and 'case'

I don't understand how to make the 'case' feature work.
Adobe defines it as follows:
Shifts various punctuation marks up to the position that works better with all-capital sequences or sets of lining figures.
Now, in the fonts that I have considered it is always a simple Single Substitution of 'case' type.
Let's assume a classic use: in Spanish, in front of a capital letter. I want to replace the questiondown with one appropriately raised, so that it rests on the baseline: how does a simple 'case' know if after question there is an upper or lower case, that is how is it case-sensitive? Evidently something escapes me, if I only see a simple Single Substitution and not, for example, a new contextual chain replacement ...

Comments

  • Cristóbal Henestrosa
    edited June 2019
    Just write the ‘case’ feature like that:
    sub exclamdown by exclamdown.case;
    sub questiondown by questiondown.case;
    sub hyphen by hyphen.case;
    sub endash by endash.case;
    sub emdash by emdash.case;
    etc.
    Then save and install the font. In InDesign, type something using the characters to be substituted and change the text to all caps.
  • Cristóbal Henestrosa
    edited July 2019
    Now, if /questiondown/ must always be substituted by /questiondown.case/ if it is before an uppercase letter, I guess you must make a list of the combinations where it will be activated. Like this:
    sub questiondown' [A Aacute Abreve Acaron Acircumflex Adieresis Agrave Amacron Aogonek Aring Atilde AE B C Cacute Ccaron Ccedilla Ccircumflex Cdotaccent D Eth Dcaron Dcroat E Eacute Ebreve Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eogonek F G Gbreve Gcircumflex Gcommaaccent Gdotaccent H Hbar Hcircumflex I IJ Iacute Ibreve Icaron Icircumflex Idieresis Idotaccent Igrave Imacron Iogonek Itilde J Jcircumflex K Kcommaaccent L Lacute Lcaron Lcommaaccent Ldot Lslash M N Nacute Ncaron Ncommaaccent Eng Ntilde O Oacute Obreve Ocaron Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Oslash Otilde OE P Thorn Q R Racute Rcaron Rcommaaccent S Sacute Scaron Scedilla Scircumflex Scommaaccent Germandbls T Tbar Tcaron Tcedilla Tcommaaccent U Uacute Ubreve Ucaron Ucircumflex Udieresis Udieresisacute Udieresiscaron Udieresisgrave Udieresismacron Ugrave Uhungarumlaut Umacron Uogonek Uring Utilde V W Wacute Wcircumflex Wdieresis Wgrave X Y Yacute Ycircumflex Ydieresis Ygrave Z Zacute Zcaron Zdotaccent] by questiondown.case;
    …and, additionaly, I’d say that you might want to put this instruction under the ‘calt’ feature, not ‘case’, since ‘calt’ is activated by default in InDesign. The ‘case’ feature is only activated when you say so in InDesign (and other software supporting OT features, of course).
    Anyway, as a native Spanish reader and typographer, I must say that I’d only use /questiondown.case/ if the text is set in all caps, so I’d go for including all this in the ‘case’ feature. If the text is set in upper and lowercase, I’d go for the standard /questiondown/ glyph. For me, the /questiondown/+[uppercase] combination is not problematic in itself… but certainly some people might disagree with this.
  • I realize that 'calt' solve this issue. But, for example, if don't active <+case> in LaTeX I don't obtain the desired result. So, do you mean that the only solution to automate the process is to set a "calt"?
  • I am not familiar with LaTeX but, for an InDesign enviroment, I’d say yes, because ‘case’ is not supposed to be activated by default, but ‘calt’ is.
  • K Pease
    K Pease Posts: 182
    If you are determined to make 'calt' detect allcaps to replace 'case', you'll want to check for two capital letters after the mark, as most sentences begin with one.
  • how does a simple 'case' know if after question there is an upper or lower case, that is how is it case-sensitive? Evidently something escapes me, if I only see a simple Single Substitution and not, for example, a new contextual chain replacement ...

    The 'case' feature is activated when the user selects 'all capitals' in the application's interface.

    André