Font Info settings for static and variable fonts

Hi! I’m struggling with font info settings in a typeface with optical size and weight axis with italics in a separate file.
I want to release it as a variable font also, and I have some issues and doubts:

  • Should I export both variable and static fonts from the same file or it’s recommended to split in two files with different settings?

  • I think Glyphs don’t export STAT tables properly so I’m modifying them with TTX, but I still fail in italic style linking (command+shift+I in InDesign). Here are my tables for Roman & Italic:

        <AxisValue index="4" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="271"/>  <!-- Book -->
          <Value value="300.0"/>
        </AxisValue>
        <AxisValue index="5" Format="1">
          <AxisIndex value="1"/>
          <Flags value="2"/> <!-- ElidableAxisValueName -->
          <ValueNameID value="2"/>  <!-- Regular -->
          <Value value="400.0"/>
        </AxisValue>
        <AxisValue index="6" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="272"/>  <!-- Medium -->
          <Value value="500.0"/>
        </AxisValue>
        <AxisValue index="7" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="273"/>  <!-- SemiBold -->
          <Value value="600.0"/>
        </AxisValue>
        <AxisValue index="8" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="274"/>  <!-- Bold -->
          <Value value="700.0"/>
        </AxisValue>
        <AxisValue index="9" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="275"/>  <!-- Black -->
          <Value value="800.0"/>
        </AxisValue>
        <AxisValue index="10" Format="1">
          <AxisIndex value="1"/>
          <Flags value="0"/>
          <ValueNameID value="276"/>  <!-- Heavy -->
          <Value value="900.0"/>
        </AxisValue>
        <AxisValue index="11" Format="3">
          <AxisIndex value="2"/>
          <Flags value="2"/>  <!-- ElidableAxisValueName -->
          <ValueNameID value="2"/>  <!-- Regular -->
          <Value value="0.0"/>
      <LinkedValue value="1.0"/>
        </AxisValue>
      </AxisValueArray>
      <ElidedFallbackNameID value="17"/>  <!-- Regular -->
    </STAT>
    

Italic:

> <STAT>
>     <Version value="0x00010001"/>
>     <DesignAxisRecordSize value="8"/>
>     <!-- DesignAxisCount=3 -->
>     <DesignAxisRecord>
>       <Axis index="0">
>         <AxisTag value="opsz"/>
>         <AxisNameID value="256"/>  <!-- Optical size -->
>         <AxisOrdering value="0"/>
>       </Axis>
>       <Axis index="1">
>         <AxisTag value="wght"/>
>         <AxisNameID value="257"/>  <!-- Weight -->
>         <AxisOrdering value="1"/>
>       </Axis>
>       <Axis index="2">
>         <AxisTag value="ital"/>
>         <AxisNameID value="274"/>  <!-- Italic -->
>         <AxisOrdering value="2"/>
>       </Axis>
>     </DesignAxisRecord>
>     <!-- AxisValueCount=12 -->
>     <AxisValueArray>
>       <AxisValue index="0" Format="1">
>         <AxisIndex value="0"/>
>         <Flags value="0"/>
>         <ValueNameID value="261"/>  <!-- Small -->
>         <Value value="6.0"/>
>       </AxisValue>
>       <AxisValue index="1" Format="1">
>         <AxisIndex value="0"/>
>         <Flags value="2"/>  <!-- ElidableAxisValueName -->
>         <ValueNameID value="274"/>  <!-- Regular -->
>         <Value value="12.0"/>
>       </AxisValue>
>       <AxisValue index="2" Format="1">
>         <AxisIndex value="0"/>
>         <Flags value="0"/>
>         <ValueNameID value="288"/>  <!-- Subhead -->
>         <Value value="24.0"/>
>       </AxisValue>
>       <AxisValue index="3" Format="1">
>         <AxisIndex value="0"/>
>         <Flags value="0"/>
>         <ValueNameID value="302"/>  <!-- Display -->
>         <Value value="36.0"/>
>       </AxisValue>
>       <AxisValue index="4" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="273"/>  <!-- Book -->
>         <Value value="300.0"/>
>       </AxisValue>
>       <AxisValue index="5" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="2"/>  <!-- ElidableAxisValueName -->
>         <ValueNameID value="274"/>  <!-- Regular -->
>         <Value value="400.0"/>
>       </AxisValue>
>       <AxisValue index="6" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="276"/>  <!-- Medium -->
>         <Value value="500.0"/>
>       </AxisValue>
>       <AxisValue index="7" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="278"/>  <!-- SemiBold -->
>         <Value value="600.0"/>
>       </AxisValue>
>       <AxisValue index="8" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="280"/>  <!-- Bold -->
>         <Value value="700.0"/>
>       </AxisValue>
>       <AxisValue index="9" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="282"/>  <!-- Black -->
>         <Value value="800.0"/>
>       </AxisValue>
>       <AxisValue index="10" Format="1">
>         <AxisIndex value="1"/>
>         <Flags value="0"/>
>         <ValueNameID value="284"/>  <!-- Heavy -->
>         <Value value="900.0"/>
>       </AxisValue>
>       <AxisValue index="11" Format="1">
>         <AxisIndex value="2"/>
>         <Flags value="0"/>
>         <ValueNameID value="274"/>  <!-- Italic -->
>         <Value value="1.0"/>
>       </AxisValue>
>     </AxisValueArray>
>     <ElidedFallbackNameID value="2"/>  <!-- Italic -->
>   </STAT>

Thanks in advance!

You most certainly will keep everything in one file. That is what the exports tab with the various setting is there for.

I’ll have a look at the STAT table. We are working on this. There are still a lot problems with variable fonts, specifically in Indesign. There were several discussions about this on the forum in the last few weeks.

Those STAT tables are done in TTX. The original tables from glyphs are:

Roman:
  <STAT>
    <Version value="0x00010001"/>
    <DesignAxisRecordSize value="8"/>
    <!-- DesignAxisCount=3 -->
    <DesignAxisRecord>
      <Axis index="0">
        <AxisTag value="opsz"/>
        <AxisNameID value="256"/>  <!-- Optical size -->
        <AxisOrdering value="0"/>
      </Axis>
      <Axis index="1">
        <AxisTag value="wght"/>
        <AxisNameID value="257"/>  <!-- Weight -->
        <AxisOrdering value="1"/>
      </Axis>
      <Axis index="2">
        <AxisTag value="ital"/>
        <AxisNameID value="303"/>  <!-- Italic -->
        <AxisOrdering value="2"/>
      </Axis>
    </DesignAxisRecord>
    <!-- AxisValueCount=1 -->
    <AxisValueArray>
      <AxisValue index="0" Format="1">
        <AxisIndex value="2"/>
        <Flags value="2"/>  <!-- ElidableAxisValueName -->
        <ValueNameID value="2"/>  <!-- Regular -->
        <Value value="0.0"/>
      </AxisValue>
    </AxisValueArray>
    <ElidedFallbackNameID value="17"/>  <!-- Default -->
  </STAT>

Italic:
<STAT>
    <Version value="0x00010001"/>
    <DesignAxisRecordSize value="8"/>
    <!-- DesignAxisCount=3 -->
    <DesignAxisRecord>
      <Axis index="0">
        <AxisTag value="opsz"/>
        <AxisNameID value="256"/>  <!-- Optical size -->
        <AxisOrdering value="0"/>
      </Axis>
      <Axis index="1">
        <AxisTag value="wght"/>
        <AxisNameID value="257"/>  <!-- Weight -->
        <AxisOrdering value="1"/>
      </Axis>
      <Axis index="2">
        <AxisTag value="ital"/>
        <AxisNameID value="274"/>  <!-- Italic -->
        <AxisOrdering value="2"/>
      </Axis>
    </DesignAxisRecord>
    <!-- AxisValueCount=46 -->
    <AxisValueArray>
      <AxisValue index="0" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="313"/>  <!-- Small -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="1" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="313"/>  <!-- Small -->
        <Value value="300.0"/>
      </AxisValue>
      <AxisValue index="2" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="313"/>  <!-- Small -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="3" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="314"/>  <!-- Small Medium -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="4" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="314"/>  <!-- Small Medium -->
        <Value value="500.0"/>
      </AxisValue>
      <AxisValue index="5" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="315"/>  <!-- Small SemiBold -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="6" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="315"/>  <!-- Small SemiBold -->
        <Value value="600.0"/>
      </AxisValue>
      <AxisValue index="7" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="316"/>  <!-- Small Bold -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="8" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="316"/>  <!-- Small Bold -->
        <Value value="700.0"/>
      </AxisValue>
      <AxisValue index="9" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="317"/>  <!-- Small Black -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="10" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="317"/>  <!-- Small Black -->
        <Value value="800.0"/>
      </AxisValue>
      <AxisValue index="11" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="318"/>  <!-- Small Heavy -->
        <Value value="6.0"/>
      </AxisValue>
      <AxisValue index="12" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="318"/>  <!-- Small Heavy -->
        <Value value="900.0"/>
      </AxisValue>
      <AxisValue index="13" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="319"/>  <!-- Book -->
        <Value value="300.0"/>
      </AxisValue>
      <AxisValue index="14" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="320"/>  <!-- Medium -->
        <Value value="500.0"/>
      </AxisValue>
      <AxisValue index="15" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="321"/>  <!-- SemiBold -->
        <Value value="600.0"/>
      </AxisValue>
      <AxisValue index="16" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="322"/>  <!-- Bold -->
        <Value value="700.0"/>
      </AxisValue>
      <AxisValue index="17" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="323"/>  <!-- Black -->
        <Value value="800.0"/>
      </AxisValue>
      <AxisValue index="18" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="324"/>  <!-- Heavy -->
        <Value value="900.0"/>
      </AxisValue>
      <AxisValue index="19" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="325"/>  <!-- Subhead -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="20" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="325"/>  <!-- Subhead -->
        <Value value="300.0"/>
      </AxisValue>
      <AxisValue index="21" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="325"/>  <!-- Subhead -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="22" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="326"/>  <!-- Subhead Medium -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="23" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="326"/>  <!-- Subhead Medium -->
        <Value value="500.0"/>
      </AxisValue>
      <AxisValue index="24" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="327"/>  <!-- Subhead SemiBold -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="25" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="327"/>  <!-- Subhead SemiBold -->
        <Value value="600.0"/>
      </AxisValue>
      <AxisValue index="26" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="328"/>  <!-- Subhead Bold -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="27" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="328"/>  <!-- Subhead Bold -->
        <Value value="700.0"/>
      </AxisValue>
      <AxisValue index="28" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="329"/>  <!-- Subhead Black -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="29" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="329"/>  <!-- Subhead Black -->
        <Value value="800.0"/>
      </AxisValue>
      <AxisValue index="30" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="330"/>  <!-- Subhead Heavy -->
        <Value value="24.0"/>
      </AxisValue>
      <AxisValue index="31" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="330"/>  <!-- Subhead Heavy -->
        <Value value="900.0"/>
      </AxisValue>
      <AxisValue index="32" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="331"/>  <!-- Display -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="33" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="331"/>  <!-- Display -->
        <Value value="300.0"/>
      </AxisValue>
      <AxisValue index="34" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="331"/>  <!-- Display -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="35" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="332"/>  <!-- Display Medium -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="36" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="332"/>  <!-- Display Medium -->
        <Value value="500.0"/>
      </AxisValue>
      <AxisValue index="37" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="333"/>  <!-- Display SemiBold -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="38" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="333"/>  <!-- Display SemiBold -->
        <Value value="600.0"/>
      </AxisValue>
      <AxisValue index="39" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="334"/>  <!-- Display Bold -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="40" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="334"/>  <!-- Display Bold -->
        <Value value="700.0"/>
      </AxisValue>
      <AxisValue index="41" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="335"/>  <!-- Display Black -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="42" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="335"/>  <!-- Display Black -->
        <Value value="800.0"/>
      </AxisValue>
      <AxisValue index="43" Format="1">
        <AxisIndex value="0"/>
        <Flags value="0"/>
        <ValueNameID value="336"/>  <!-- Display Heavy -->
        <Value value="36.0"/>
      </AxisValue>
      <AxisValue index="44" Format="1">
        <AxisIndex value="1"/>
        <Flags value="0"/>
        <ValueNameID value="336"/>  <!-- Display Heavy -->
        <Value value="900.0"/>
      </AxisValue>
      <AxisValue index="45" Format="1">
        <AxisIndex value="2"/>
        <Flags value="0"/>
        <ValueNameID value="274"/>  <!-- Italic -->
        <Value value="1.0"/>
      </AxisValue>
    </AxisValueArray>
    <ElidedFallbackNameID value="260"/>  <!-- Small Italic -->
  </STAT>

Same file.