Slant axis results in all font as italic in STAT table

I have trouble with the export of a variable font with a slant axis. With slant at 0 it still returns the ital axis at 1. See a screenshot from Samsa:


it should return [no match] for the uprights.

And the STAT looks like that:

  <STAT>
    <Version value="0x00010001"/>
    <DesignAxisRecordSize value="8"/>
    <!-- DesignAxisCount=3 -->
    <DesignAxisRecord>
      <Axis index="0">
        <AxisTag value="wght"/>
        <AxisNameID value="256"/>  <!-- Weight -->
        <AxisOrdering value="0"/>
      </Axis>
      <Axis index="1">
        <AxisTag value="slnt"/>
        <AxisNameID value="257"/>  <!-- Slant -->
        <AxisOrdering value="1"/>
      </Axis>
      <Axis index="2">
        <AxisTag value="ital"/>
        <AxisNameID value="264"/>  <!-- Italic -->
        <AxisOrdering value="2"/>
      </Axis>
    </DesignAxisRecord>
    <!-- AxisValueCount=4 -->
    <AxisValueArray>
      <AxisValue index="0" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="258"/>  <!-- ExtraLight -->
        <Value value="40.0"/>
      </AxisValue>
      <AxisValue index="1" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="259"/>  <!-- Regular -->
        <Value value="96.0"/>
      </AxisValue>
      <AxisValue index="2" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="260"/>  <!-- Bold -->
        <Value value="150.0"/>
      </AxisValue>
      <AxisValue index="3" Format="1">
        <AxisIndex value="2"/>
        <Flags value="0"/>
        <ValueNameID value="264"/>  <!-- Italic -->
        <Value value="1.0"/>
      </AxisValue>
    </AxisValueArray>
    <ElidedFallbackNameID value="259"/>  <!-- Regular -->
  </STAT>

What exactly do you expect? slnt and ital are two different things and can have two different values.

I would like italic=0 when slant=0, and italic=1 when slant is not 0 (from -0,5 for example).
Right now italic=1 even for the uprights.

I don’t have an ital “axis” in the source, it is supposed to be boolean

The XML suggests you do have an ital axis.

Linking slnt to ital that way is not the idea of having different axes. Not knowing your design, I guess I would rename the slnt axis to ital.

Thank you for answer Erich. I guess a solution would be to ditch either the slant or the ital axis, indeed.

It is a standard font with 3 uprights instances (light, regular, bold) and 3 italic instances (light, regular, bold) — weight and slant axis. There is no italic alternative shapes, and the ital axis is not supposed to be a slider anyway, so it is better to keep the slant axis and ditch the ital one. But Glyphs added an ital axis during export by itself… probably because of the style linking and the instance naming? Do you know if I can avoid that without patching a STAT table or messing up with my client’s instance naming?

You may have to go and edit STAT and fvar with ttx afterwards. I guess the safest way currently is to ditch slnt and keep ital.