%%
%% This is file `linguistix-fonts.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% linguistix.dtx  (with options: `font')
%% ---------------------------------------------------------
%% Package:      linguistix
%% Version:      v0.1b
%% Author:       निरंजन
%% Description:  Enhanced support for linguistics.
%% Repository:   puszcza.gnu.org.ua/projects/linguistix
%% License:      GPLv3+, GFDLv1.3+
%% ---------------------------------------------------------
%% 
%% The linguistix bundle v0.1b
%% Copyright © 2022, 2023, 2024, 2025 निरंजन
%% 
%% This program is free software: you can redistribute it
%% and/or modify it under the terms of the GNU General
%% Public License as published by the Free Software
%% Foundation, either version 3 of the License, or (at your
%% option) any later version.
%% 
%% This program is distributed in the hope that it will be
%% useful, but WITHOUT ANY WARRANTY; without even the
%% implied warranty of MERCHANTABILITY or FITNESS FOR A
%% PARTICULAR PURPOSE. See the GNU General Public License
%% for more details.
%% 
%% You should have received a copy of the GNU General Public
%% License along with this program. If not, see
%% <https://www.gnu.org/licenses/>.
%% 
%% ---------------------------------------------------------
\ProvidesExplPackage{linguistix-fonts}
                    {2025-05-20}
                    {v0.1b}
                    {%
                      The font-assistant package of the
                      ‘LinguisTiX’ bundle.%
                    }

\IfPackageLoadedF { linguistix-base } {
  \RequirePackage { linguistix-base }
}

\IfPackageLoadedF { unicode-math } {
  \RequirePackage { unicode-math }
}

\keys_define:nn { lngx _ keys } {
  old~ style~ numbers
  .bool_gset:N           = {
    \g_lngx_old_style_bool
  },
  old~ style~ one
  .bool_gset:N           = {
    \g_lngx_old_style_one_bool
  },
  bourbaki's~ empty~ set
  .bool_gset:N           = {
    \g_lngx_bourbaki_bool
  }
}

\clist_map_inline:nn {
  upright,
  bold~ upright,
  italic,
  bold~ italic,
  slanted,
  bold~ slanted,
  swash,
  bold~ swash,
  small~ caps
} {
  \tl_set:Nn \l_tmpa_tl { #1 }
  \tl_replace_all:Nnn \l_tmpa_tl { ~ } { _ }
  \tl_gclear_new:c {
    g _ lngx _ text _ \l_tmpa_tl _ features _ tl
  }
  \keys_define:nn { lngx _ keys } {
    text~ #1
    .tl_gset_e:c           = {
      g _ lngx _ text _ \l_tmpa_tl _ tl
    },
    text~ #1~ features
    .code:n                = {
      \tl_set:Nn \l_tmpb_tl { #1 }
      \tl_replace_all:Nnn \l_tmpb_tl { ~ } { _ }
      \tl_put_right:ce {
        g _ lngx _ text _ \l_tmpb_tl _ features _ tl
      } { ##1 , }
      \tl_clear:N \l_tmpb_tl
    }
  }
  \tl_clear:N \l_tmpa_tl
}

\clist_map_inline:nn {
  upright,
  bold~ upright,
  italic,
  bold~ italic,
  slanted,
  bold~ slanted,
  swash,
  bold~ swash,
  small~ caps
} {
  \tl_set:Nn \l_tmpa_tl { #1 }
  \tl_replace_all:Nnn \l_tmpa_tl { ~ } { _ }
  \tl_gclear_new:c {
    g _ lngx _ text _ sans _ \l_tmpa_tl _ features _ tl
  }
  \keys_define:nn { lngx _ keys } {
    text~ sans~ #1
    .tl_gset_e:c           = {
      g _ lngx _ text _ sans _ \l_tmpa_tl _ tl
    },
    text~ sans~ #1~ features
    .code:n                = {
      \tl_set:Nn \l_tmpb_tl { #1 }
      \tl_replace_all:Nnn \l_tmpb_tl { ~ } { _ }
      \tl_put_right:ce {
        g _ lngx _ text _ sans _ \l_tmpb_tl _ features _ tl
      } { ##1 , }
      \tl_clear:N \l_tmpb_tl
    }
  }
  \tl_clear:N \l_tmpa_tl
}

\clist_map_inline:nn {
  upright,
  bold~ upright,
  italic,
  bold~ italic,
  slanted,
  bold~ slanted,
  swash,
  bold~ swash,
  small~ caps
} {
  \tl_set:Nn \l_tmpa_tl { #1 }
  \tl_replace_all:Nnn \l_tmpa_tl { ~ } { _ }
  \tl_gclear_new:c {
    g _ lngx _ text _ mono _ \l_tmpa_tl _ features _ tl
  }
  \keys_define:nn { lngx _ keys } {
    text~ mono~ #1
    .tl_gset_e:c           = {
      g _ lngx _ text _ mono _ \l_tmpa_tl _ tl
    },
    text~ mono~ #1~ features
    .code:n                = {
      \tl_set:Nn \l_tmpb_tl { #1 }
      \tl_replace_all:Nnn \l_tmpb_tl { ~ } { _ }
      \tl_put_right:ce {
        g _ lngx _ text _ mono _ \l_tmpb_tl _ features _ tl
      } { ##1 , }
      \tl_clear:N \l_tmpb_tl
    }
  }
  \tl_clear:N \l_tmpa_tl
}

\keys_define:nn { lngx _ keys } {
  math
  .tl_gset_e:c           = {
    g _ lngx _ math _ tl
  },
  math~ features
  .tl_gset_e:c           = {
    g _ lngx _ math _ features _ tl
  },
  math~ bold
  .tl_gset_e:c           = {
    g _ lngx _ math _ bold _ tl
  },
  math~ bold~ features
  .code:n                = {
    \tl_put_right:ce {
      g _ lngx _ math _ bold _ features _ tl
    } { #1 }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm
  .meta:n                = {
    text~
    upright                = {
      NewCM10-Book.otf
    },
    text~
    bold~ upright          = {
      NewCM10-Bold.otf
    },
    text~
    italic                 = {
      NewCM10-BookItalic.otf
    },
    text~
    bold~ italic           = {
      NewCM10-BoldItalic.otf
    },
    math                   = {
      NewCMMath-Book.otf
    },
    math~ bold             = {
      NewCMMath-Bold.otf
    },
    text~
    sans~ upright          = {
      NewCMSans10-Book.otf
    },
    text~
    sans~ bold~ upright    = {
      NewCMSans10-Bold.otf
    },
    text~
    sans~ italic           = {
      NewCMSans10-BookOblique.otf
    },
    text~
    sans~ bold~ italic     = {
      NewCMSans10-BoldOblique.otf
    },
    text~
    mono~ upright          = {
      NewCMMono10-Book.otf
    },
    text~
    mono~ bold~ upright    = {
      NewCMMono10-Bold.otf
    },
    text~
    mono~ italic           = {
      NewCMMono10-BookItalic.otf
    },
    text~
    mono~ bold~ italic     = {
      NewCMMono10-BoldOblique.otf
    }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm~ sans
  .meta:n                = {
    text~
    upright                = {
      NewCMSans10-Book.otf
    },
    text~
    bold upright           = {
      NewCMSans10-Bold.otf
    },
    text~
    italic                 = {
      NewCMSans10-BookOblique.otf
    },
    text~
    bold~ italic           = {
      NewCMSans10-BoldOblique.otf
    }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm~ mono
  .meta:n                = {
    text~
    upright                = {
      NewCMMono10-Book.otf
    },
    text~
    bold upright           = {
      NewCMMono10-Bold.otf
    },
    text~
    italic                 = {
      NewCMMono10-BookItalic.otf
    },
    text~
    bold~ italic           = {
      NewCMMono10-BoldOblique.otf
    }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm~ regular
  .meta:n                = {
    text~
    upright                = {
      NewCM10-Regular.otf
    },
    text~
    bold~ upright          = {
      NewCM10-Bold.otf
    },
    text~
    italic                 = {
      NewCM10-Italic.otf
    },
    text~
    bold~ italic           = {
      NewCM10-BoldItalic.otf
    },
    math                   = {
      NewCMMath-Regular.otf
    },
    math~ bold             = {
      NewCMMath-Bold.otf
    },
    text~
    sans~ upright          = {
      NewCMSans10-Regular.otf
    },
    text~
    sans~ bold~ upright    = {
      NewCMSans10-Bold.otf
    },
    text~
    sans~ italic           = {
      NewCMSans10-Oblique.otf
    },
    text~
    sans~ bold~ italic     = {
      NewCMSans10-BoldOblique.otf
    },
    text~
    mono~ upright          = {
      NewCMMono10-Regular.otf
    },
    text~
    mono~ bold~ upright    = {
      NewCMMono10-Bold.otf
    },
    text~
    mono~ italic           = {
      NewCMMono10-Italic.otf
    },
    text~
    mono~ bold~ italic     = {
      NewCMMono10-Bold.otf
    }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm~ regular~ sans
  .meta:n                = {
    text~
    upright                = {
      NewCMSans10-Regular.otf
    },
    text~
    bold~ upright          = {
      NewCMSans10-Bold.otf
    },
    text~
    italic                 = {
      NewCMSans10-Oblique.otf
    },
    text~
    bold~ italic           = {
      NewCMSans10-BoldOblique.otf
    }
  }
}

\keys_define:nn { lngx _ keys } {
  newcm~ regular~ mono
  .meta:n                = {
    text~
    upright                = {
      NewCMMono10-Regular.otf
    },
    text~
    bold~ upright          = {
      NewCMMono10-Bold.otf
    },
    text~
    italic                 = {
      NewCMMono10-Italic.otf
    },
    text~
    bold~ italic           = {
      NewCMMono10-Bold.otf
    }
  }
}

\lngx_set_keys:n {
  newcm,
  bourbaki's~ empty~ set,
  old~ style~ numbers
}

\sys_if_engine_luatex:T {
  \lngx_set_keys:n {
    text~
    upright~ features      = {
      Renderer               = { HarfBuzz }
    },
    text~ sans~
    upright~ features      = {
      Renderer               = { HarfBuzz }
    },
    text~ mono~
    upright~ features      = {
      Renderer               = { HarfBuzz }
    }
  }
}

\cs_new_protected:Npn \lngx_set_main_font:nn #1#2 {
  \setmainfont [ #1 ] { #2 }
}

\cs_new_protected:Npn \lngx_set_sans_font:nn #1#2 {
  \setsansfont [ #1 ] { #2 }
}

\cs_new_protected:Npn \lngx_set_mono_font:nn #1#2 {
  \setmonofont [ #1 ] { #2 }
}

\cs_new_protected:Npn \lngx_set_math_font:nn #1#2 {
  \setmathfont [ #1 ] { #2 }
}

\cs_generate_variant:Nn \lngx_set_main_font:nn { ee }
\cs_generate_variant:Nn \lngx_set_sans_font:nn { ee }
\cs_generate_variant:Nn \lngx_set_mono_font:nn { ee }
\cs_generate_variant:Nn \lngx_set_math_font:nn { ee }

\hook_gput_code:nnn { begindocument / before } { . } {
  \tl_if_in:cnT {
    g _ lngx _ text _ upright _ tl
  } { NewCM } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ upright _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCM08-Book.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCM10-Book.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCM08-Regular.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCM10-Regular.otf
              }
            }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ upright _ tl
  } { NewCMSans } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ upright _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Book.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-Book.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Regular.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-Regular.otf
              }
            }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ italic _ tl
  } { NewCM } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ italic _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCM08-BookItalic.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCM10-BookItalic.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCM08-Italic.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCM08-Italic.otf
              }
            }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ italic _ tl
  } { NewCMSans } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ italic _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-BookOblique.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-BookOblique.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Oblique.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans08-Oblique.otf
              }
            }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ sans _ upright _ tl
  } { NewCMSans } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ upright _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~ sans~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Book.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-Book.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~ sans~
        upright~ features      = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Regular.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-Regular.otf
              }
            }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ sans _ italic _ tl
  } { NewCMSans } {
    \tl_if_in:cnTF {
      g _ lngx _ text _ italic _ tl
    } { Book } {
      \lngx_set_keys:n {
        text~ sans~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-BookOblique.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-BookOblique.otf
              }
            }
          }
        }
      }
    } {
      \lngx_set_keys:n {
        text~ sans~
        italic~ features       = {
          SizeFeatures           = {
            {
              Size                   = {-8},
              Font                   = {
                NewCMSans08-Oblique.otf
              }
            },
            {
              Size                   = {8-},
              Font                   = {
                NewCMSans10-Oblique.otf
              }
            }
          }
        }
      }
    }
  }
  \lngx_set_keys:n {
    text~
    upright~ features      = {
      UprightFont          = {
        \g_lngx_text_upright_tl
      },
      UprightFeatures        = {
        \g_lngx_text_upright_features_tl
      },
      ItalicFont           = {
        \g_lngx_text_italic_tl
      },
      ItalicFeatures         = {
        \g_lngx_text_italic_features_tl
      },
      BoldFont             = {
        \g_lngx_text_bold_upright_tl
      },
      BoldFeatures           = {
        \g_lngx_text_bold_upright_features_tl
      },
      BoldItalicFont       = {
        \g_lngx_text_bold_italic_tl
      },
      BoldItalicFeatures     = {
        \g_lngx_text_bold_italic_features_tl
      },
      \tl_if_empty:cF {
        g _ lngx _ text _ slanted _ tl
      } {
        SlantedFont            = {
          \g_lngx_text_slanted_tl
        },
        \tl_if_empty:cF {
          g _ lngx _ text _ slanted _ features _ tl
        } {
          SlantedFeatures        = {
            \g_lngx_text_slanted_features_tl
          },
        }
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ bold _ slanted _ tl
      } {
        BoldSlantedFont        = {
          \g_lngx_text_bold_slanted_tl
        },
        BoldSlantedFeatures    = {
          \g_lngx_text_bold_slanted_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ swash _ tl
      } {
        SwashFont              = {
          \g_lngx_text_swash_tl
        },
        SwashFeatures          = {
          \g_lngx_text_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ bold _ swash _ tl
      } {
        BoldSwashFont          = {
          \g_lngx_text_bold_swash_tl
        },
        BoldSwashFeatures      = {
          \g_lngx_text_bold_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ small _ caps _ tl
      } {
        SmallCapsFont          = {
          \g_lngx_text_small_caps_tl
        },
        SmallCapsFeatures      = {
          \g_lngx_text_small_caps_features_tl
        }
      }
    },
    text~ sans~
    upright~ features      = {
      UprightFont            = {
        \g_lngx_text_sans_upright_tl
      },
      UprightFeatures        = {
        \g_lngx_text_sans_upright_features_tl
      },
      BoldFont               = {
        \g_lngx_text_sans_bold_upright_tl
      },
      BoldFeatures           = {
        \g_lngx_text_sans_bold_upright_features_tl
      },
      ItalicFont             = {
        \g_lngx_text_sans_italic_tl
      },
      ItalicFeatures         = {
        \g_lngx_text_sans_italic_features_tl
      },
      BoldItalicFont         = {
        \g_lngx_text_sans_bold_italic_tl
      },
      BoldItalicFeatures     = {
        \g_lngx_text_sans_bold_italic_features_tl
      },
      \tl_if_empty:cF {
        g _ lngx _ text _ sans _ slanted _ tl
      } {
        SlantedFont            = {
          \g_lngx_text_sans_slanted_tl
        },
        SlantedFeatures        = {
          \g_lngx_text_sans_slanted_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ sans _ bold _ slanted _ tl
      } {
        BoldSlantedFont        = {
          \g_lngx_text_sans_bold_slanted_tl
        },
        BoldSlantedFeatures    = {
          \g_lngx_text_sans_bold_slanted_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ sans _ swash _ tl
      } {
        SwashFont              = {
          \g_lngx_text_sans_swash_tl
        },
        SwashFeatures          = {
          \g_lngx_text_sans_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ sans _ bold _ swash _ tl
      } {
        BoldSwashFont          = {
          \g_lngx_text_sans_bold_swash_tl
        },
        BoldSwashFeatures      = {
          \g_lngx_text_sans_bold_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ sans _ small _ caps _ tl
      } {
        SmallCapsFont          = {
          \g_lngx_text_sans_small_caps_tl
        },
        SmallCapsFeatures      = {
          \g_lngx_text_sans_small_caps_features_tl
        }
      }
    },
    text~ mono~
    upright~ features      = {
      UprightFont            = {
        \g_lngx_text_mono_upright_tl
      },
      UprightFeatures        = {
        \g_lngx_text_mono_upright_features_tl
      },
      BoldFont               = {
        \g_lngx_text_mono_bold_upright_tl
      },
      BoldFeatures           = {
        \g_lngx_text_mono_bold_upright_features_tl
      },
      ItalicFont             = {
        \g_lngx_text_mono_italic_tl
      },
      ItalicFeatures         = {
        \g_lngx_text_mono_italic_features_tl
      },
      BoldItalicFont         = {
        \g_lngx_text_mono_bold_italic_tl
      },
      BoldItalicFeatures     = {
        \g_lngx_text_mono_bold_italic_features_tl
      },
      \tl_if_empty:cF {
        g _ lngx _ text _ mono _ slanted _ tl
      } {
        SlantedFont            = {
          \g_lngx_text_mono_slanted_tl
        },
        SlantedFeatures        = {
          \g_lngx_text_mono_slanted_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ mono _ bold _ slanted _ tl
      } {
        BoldSlantedFont        = {
          \g_lngx_text_mono_bold_slanted_tl
        },
        BoldSlantedFeatures    = {
          \g_lngx_text_mono_bold_slanted_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ mono _ swash _ tl
      } {
        SwashFont              = {
          \g_lngx_text_mono_swash_tl
        },
        SwashFeatures          = {
          \g_lngx_text_mono_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ mono _ bold _ swash _ tl
      } {
        BoldSwashFont          = {
          \g_lngx_text_mono_bold_swash_tl
        },
        BoldSwashFeatures      = {
          \g_lngx_text_mono_bold_swash_features_tl
        },
      }
      \tl_if_empty:cF {
        g _ lngx _ text _ mono _ small _ caps _ tl
      } {
        SmallCapsFont          = {
          \g_lngx_text_mono_small_caps_tl
        },
        SmallCapsFeatures      = {
          \g_lngx_text_mono_small_caps_features_tl
        }
      }
    }
  }
  \bool_if:NT \g_lngx_old_style_bool {
    \lngx_set_keys:n {
      text~
      upright~ features      = {
        Numbers                = { OldStyle }
      },
      text~ sans~
      upright~ features      = {
        Numbers                = { OldStyle }
      }
    }
    \tl_if_in:cnT {
      g_lngx_math_tl
    } { NewCM } {
      \bool_if:NT \g_lngx_old_style_one_bool {
        \lngx_set_keys:n {
          text~
          upright~ features      = {
            CharacterVariant       = { 6 }
          },
          text~ sans~
          upright~ features      = {
            CharacterVariant       = { 6 }
          }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ math _ tl
  } { NewCM } {
    \bool_if:NT \g_lngx_bourbaki_bool {
      \lngx_set_keys:n {
        math~ features         = {
          CharacterVariant       = { 1 }
        }
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ upright _ tl
  } { NewCM } {
    \lngx_set_keys:n {
      text~
      upright~ features        = {
        IgnoreFontspecFile
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ sans _ upright _ tl
  } { NewCM } {
    \lngx_set_keys:n {
      text~
      sans~ upright~ features  = {
        IgnoreFontspecFile
      }
    }
  }
  \tl_if_in:cnT {
    g _ lngx _ text _ mono _ upright _ tl
  } { NewCM } {
    \lngx_set_keys:n {
      text~
      mono~ upright~ features  = {
        IgnoreFontspecFile
      }
    }
  }
  \lngx_set_main_font:ee {
    \g_lngx_text_upright_features_tl
  } {
    \g_lngx_text_upright_tl
  }
  \lngx_set_sans_font:ee {
    \g_lngx_text_sans_upright_features_tl
  } {
    \g_lngx_text_sans_upright_tl
  }
  \lngx_set_mono_font:ee {
    \g_lngx_text_mono_upright_features_tl
  } {
    \g_lngx_text_mono_upright_tl
  }
  \lngx_set_math_font:ee {
    \g_lngx_math_features_tl
  } {
    \g_lngx_math_tl
  }
}
\endinput
%%
%% End of file `linguistix-fonts.sty'.
