summaryrefslogtreecommitdiff
path: root/fonts/fira/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/fira/latex
Initial commit
Diffstat (limited to 'fonts/fira/latex')
-rw-r--r--fonts/fira/latex/FiraMono.sty144
-rw-r--r--fonts/fira/latex/FiraSans.sty277
-rw-r--r--fonts/fira/latex/LGRFiraMono-Sup.fd119
-rw-r--r--fonts/fira/latex/LGRFiraMono-TLF.fd119
-rw-r--r--fonts/fira/latex/LGRFiraMono-TOsF.fd119
-rw-r--r--fonts/fira/latex/LGRFiraSans-LF.fd554
-rw-r--r--fonts/fira/latex/LGRFiraSans-OsF.fd554
-rw-r--r--fonts/fira/latex/LGRFiraSans-Sup.fd314
-rw-r--r--fonts/fira/latex/LGRFiraSans-TLF.fd554
-rw-r--r--fonts/fira/latex/LGRFiraSans-TOsF.fd554
-rw-r--r--fonts/fira/latex/LY1FiraMono-Sup.fd119
-rw-r--r--fonts/fira/latex/LY1FiraMono-TLF.fd119
-rw-r--r--fonts/fira/latex/LY1FiraMono-TOsF.fd119
-rw-r--r--fonts/fira/latex/LY1FiraSans-LF.fd554
-rw-r--r--fonts/fira/latex/LY1FiraSans-OsF.fd554
-rw-r--r--fonts/fira/latex/LY1FiraSans-Sup.fd314
-rw-r--r--fonts/fira/latex/LY1FiraSans-TLF.fd554
-rw-r--r--fonts/fira/latex/LY1FiraSans-TOsF.fd554
-rw-r--r--fonts/fira/latex/OT1FiraMono-Sup.fd119
-rw-r--r--fonts/fira/latex/OT1FiraMono-TLF.fd119
-rw-r--r--fonts/fira/latex/OT1FiraMono-TOsF.fd119
-rw-r--r--fonts/fira/latex/OT1FiraSans-LF.fd554
-rw-r--r--fonts/fira/latex/OT1FiraSans-OsF.fd554
-rw-r--r--fonts/fira/latex/OT1FiraSans-Sup.fd314
-rw-r--r--fonts/fira/latex/OT1FiraSans-TLF.fd554
-rw-r--r--fonts/fira/latex/OT1FiraSans-TOsF.fd554
-rw-r--r--fonts/fira/latex/T1FiraMono-Sup.fd119
-rw-r--r--fonts/fira/latex/T1FiraMono-TLF.fd119
-rw-r--r--fonts/fira/latex/T1FiraMono-TOsF.fd119
-rw-r--r--fonts/fira/latex/T1FiraSans-LF.fd554
-rw-r--r--fonts/fira/latex/T1FiraSans-OsF.fd554
-rw-r--r--fonts/fira/latex/T1FiraSans-Sup.fd314
-rw-r--r--fonts/fira/latex/T1FiraSans-TLF.fd554
-rw-r--r--fonts/fira/latex/T1FiraSans-TOsF.fd554
-rw-r--r--fonts/fira/latex/TS1FiraMono-TLF.fd119
-rw-r--r--fonts/fira/latex/TS1FiraMono-TOsF.fd119
-rw-r--r--fonts/fira/latex/TS1FiraSans-LF.fd314
-rw-r--r--fonts/fira/latex/TS1FiraSans-OsF.fd314
-rw-r--r--fonts/fira/latex/TS1FiraSans-TLF.fd314
-rw-r--r--fonts/fira/latex/TS1FiraSans-TOsF.fd314
40 files changed, 13463 insertions, 0 deletions
diff --git a/fonts/fira/latex/FiraMono.sty b/fonts/fira/latex/FiraMono.sty
new file mode 100644
index 0000000000..9f3f7aa8a3
--- /dev/null
+++ b/fonts/fira/latex/FiraMono.sty
@@ -0,0 +1,144 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{FiraMono}
+ [2019/06/04 (Bob Tennent and autoinst) Style file for Fira Mono fonts.]
+
+% nomap option suggested by Harlan Lieberman-Berg (hlieberm@akamai.com) 2016-02-11
+
+\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp}
+
+\newif\iffiramono@otf
+\ifxetex
+ \firamono@otftrue
+\else\ifluatex
+ \firamono@otftrue
+\else % [pdf]LaTeX
+ \firamono@otffalse
+\fi\fi
+
+\newif\iffiramono@lining \firamono@liningfalse
+
+\newif\iffiramono@medium \firamono@mediumfalse
+\newif\iffiramono@ligatures \firamono@ligaturestrue
+
+\newcommand*{\FiraMono@scale}{1}
+\RequirePackage{xkeyval}
+\DeclareOptionX{scaled}{\renewcommand*{\FiraMono@scale}{#1}}
+\DeclareOptionX{scale}{\renewcommand*{\FiraMono@scale}{#1}}
+\DeclareOptionX{type1}{\firamono@otffalse}
+\DeclareOptionX{lining}{\firamono@liningtrue}
+\DeclareOptionX{lf}{\firamono@liningtrue}
+\DeclareOptionX{oldstyle}{\firamono@liningfalse}
+\DeclareOptionX{osf}{\firamono@liningfalse}
+\DeclareOptionX{nomap}{\firamono@ligaturesfalse}
+
+\DeclareOptionX{medium}{\firamono@mediumtrue}
+\DeclareOptionX{mb}{\firamono@mediumtrue}
+
+\ProcessOptionsX
+
+\iffiramono@otf
+ \iffiramono@lining
+ \def\firamono@otffigurestyle{Tabular}
+ \else
+ \def\firamono@otffigurestyle{OldStyle}
+ \fi
+\fi
+
+\iffiramono@lining
+ \def\firamono@figurestyle{LF}
+\else
+ \def\firamono@figurestyle{OsF}
+\fi
+
+\iffiramono@otf
+ \def\firamono@boldstyle{Bold}
+ \def\firamono@regstyle{Regular}
+ \iffiramono@medium\def\firamono@boldstyle{Medium}\fi
+
+\else % type1
+
+ \def\bfseries@tt{bold}
+ \def\mdseries@tt{regular}
+ \iffiramono@medium\def\bfseries@tt{medium}\fi
+\fi
+
+
+\iffiramono@otf
+ \RequirePackage{fontspec}
+\else
+ \RequirePackage{fontenc,mweights,fontaxes}
+\fi
+
+\iffiramono@otf
+ \ifxetex\XeTeXtracingfonts=1\fi
+ \iffiramono@ligatures
+ \defaultfontfeatures{
+ Ligatures = TeX ,
+ HyphenChar=None,
+ Scale = \FiraMono@scale ,
+ Extension = .otf }
+ \else
+ \defaultfontfeatures{
+ Scale = \FiraMono@scale ,
+ HyphenChar=None,
+ Extension = .otf }
+ \fi
+ \def\firamono@regular{Regular}
+ \setmonofont
+ [ Numbers = {Monospaced,\firamono@otffigurestyle},
+ UprightFont = *-\firamono@regstyle ,
+ ItalicFont = *-\ifx\firamono@regstyle\firamono@regular Oblique\else\firamono@regstyle Oblique\fi ,
+ BoldFont = *-\firamono@boldstyle ,
+ BoldItalicFont = *-\firamono@boldstyle Oblique,
+ ]
+ {FiraMono}
+ % grab current family in case of subsequent change:
+ \let\firamonofamily\sfdefault
+
+ \providecommand\sufigures{\addfontfeatures{VerticalPosition=Superior}}
+ \newfontfamily\firamonooldstyle
+ [ Numbers = {Monospaced,OldStyle},
+ UprightFont = *-\firamono@regstyle ,
+ ItalicFont = *-\ifx\firamono@regstyle\firamono@regular Oblique\else\firamono@regstyle Oblique\fi ,
+ BoldFont = *-\firamono@boldstyle ,
+ BoldItalicFont = *-\firamono@boldstyle Oblique,
+ ]
+ {FiraMono}
+ \newfontfamily\firamonolining
+ [ Numbers = {Monospaced,Tabular},
+ UprightFont = *-\firamono@regstyle ,
+ ItalicFont = *-\ifx\firamono@regstyle\firamono@regular Oblique\else\firamono@regstyle Oblique\fi ,
+ BoldFont = *-\firamono@boldstyle ,
+ BoldItalicFont = *-\firamono@boldstyle Oblique,
+ ]
+ {FiraMono}
+ \newfontfamily\firamonomedium
+ [ Numbers = {Monospaced,\firamono@otffigurestyle},
+ UprightFont = *-Medium ,
+ ItalicFont = *-\ifx\firamono@regstyle\firamono@regular Oblique\else\firamono@regstyle Oblique\fi ,
+ BoldFont = *-\firamono@boldstyle ,
+ BoldItalicFont = *-\firamono@boldstyle Oblique,
+ ]
+ {FiraMono}
+
+\else % type1
+
+ \def\firamono@family{FiraMono-T\firamono@figurestyle}
+ \def\ttdefault{\firamono@family}
+ \fa@naming@exception{figures}{{superior}{tabular}}{Sup}
+ \def\sufigures{\@nomath\sufigures\fontfigurestyle{superior}\selectfont}
+
+ \def\firamonooldstyle{\fontfamily{FiraMono-TOsF}\selectfont}
+ \def\firamonolining{\fontfamily{FiraMono-TLF}\selectfont}
+
+ \def\firamonomedium{\fontfamily{\firamono@family}\fontseries{medium}\selectfont}
+\fi
+
+% Use FiraMono-... as the family, even for otf
+\def\firamonolgr{\fontencoding{LGR}\fontfamily{FiraMono-T\fira@figurestyle}\selectfont}
+
+\iffiramono@otf
+ \defaultfontfeatures{}
+\fi
+
+\endinput
diff --git a/fonts/fira/latex/FiraSans.sty b/fonts/fira/latex/FiraSans.sty
new file mode 100644
index 0000000000..878bb488f2
--- /dev/null
+++ b/fonts/fira/latex/FiraSans.sty
@@ -0,0 +1,277 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{FiraSans}
+ [2019/04/04 (Bob Tennent and autoinst) Style file for Fira Sans fonts.]
+
+\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp}
+
+\newif\iffira@otf
+\ifxetex
+ \fira@otftrue
+\else\ifluatex
+ \fira@otftrue
+\else % [pdf]LaTeX
+ \fira@otffalse
+\fi\fi
+
+\newif\iffira@lining \fira@liningfalse
+\newif\iffira@tabular \fira@tabularfalse
+
+\newif\iffira@medium \fira@mediumfalse
+\newif\iffira@semibold \fira@semiboldfalse
+\newif\iffira@extrabold \fira@extraboldfalse
+\newif\iffira@heavy \fira@heavyfalse
+\newif\iffira@light \fira@lightfalse
+\newif\iffira@extralight \fira@extralightfalse
+\newif\iffira@ultralight \fira@ultralightfalse
+\newif\iffira@book \fira@bookfalse
+\newif\iffira@thin \fira@thinfalse
+\newif\iffira@default \fira@defaultfalse
+
+\newcommand*{\FiraSans@scale}{1}
+\RequirePackage{xkeyval}
+\DeclareOptionX{scaled}{\renewcommand*{\FiraSans@scale}{#1}}
+\DeclareOptionX{scale}{\renewcommand*{\FiraSans@scale}{#1}}
+\DeclareOptionX{type1}{\fira@otffalse}
+\DeclareOptionX{lining}{\fira@liningtrue}
+\DeclareOptionX{lf}{\fira@liningtrue}
+\DeclareOptionX{oldstyle}{\fira@liningfalse}
+\DeclareOptionX{osf}{\fira@liningfalse}
+\DeclareOptionX{tabular}{\fira@tabulartrue}
+\DeclareOptionX{t}{\fira@tabulartrue}
+\DeclareOptionX{proportional}{\fira@tabularfalse}
+\DeclareOptionX{p}{\fira@tabularfalse}
+
+\DeclareOptionX{book}{\fira@booktrue}
+\DeclareOptionX{medium}{\fira@mediumtrue}
+\DeclareOptionX{mb}{\fira@mediumtrue}
+\DeclareOptionX{semibold}{\fira@semiboldtrue}
+\DeclareOptionX{sb}{\fira@semiboldtrue}
+\DeclareOptionX{light}{\fira@lighttrue}
+\DeclareOptionX{l}{\fira@lighttrue}
+\DeclareOptionX{extralight}{\fira@extralighttrue}
+\DeclareOptionX{ultralight}{\fira@ultralighttrue}
+\DeclareOptionX{thin}{\fira@thintrue}
+\DeclareOptionX{extrabold}{\fira@extraboldtrue}
+\DeclareOptionX{heavy}{\fira@heavytrue}
+\DeclareOptionX{default}{\fira@defaulttrue}
+\DeclareOptionX{sfdefault}{\fira@defaulttrue}
+
+
+\ProcessOptionsX
+
+\iffira@otf
+ \iffira@lining
+ \def\fira@otffigurestyle{Lining}
+ \else
+ \def\fira@otffigurestyle{OldStyle}
+ \fi
+ \iffira@tabular
+ \def\fira@otffigurealign{Monospaced}
+ \else
+ \def\fira@otffigurealign{Proportional}
+ \fi
+\fi
+
+\iffira@lining
+ \def\fira@figurestyle{LF}
+\else
+ \def\fira@figurestyle{OsF}
+\fi
+\iffira@tabular
+ \def\fira@figurealign{T}
+\else
+ \def\fira@figurealign{}
+\fi
+
+\iffira@otf
+ \def\fira@boldstyle{Bold}
+ \iffira@medium\def\fira@boldstyle{Medium}\fi
+ \iffira@semibold\def\fira@boldstyle{SemiBold}\fi
+ \iffira@extrabold\def\fira@boldstyle{ExtraBold}\fi
+ \iffira@heavy\def\fira@boldstyle{Heavy}\fi
+
+ \def\fira@regstyle{Regular}
+ \iffira@book\def\fira@regstyle{Book}\fi
+ \iffira@light\def\fira@regstyle{Light}\fi
+ \iffira@extralight\def\fira@regstyle{ExtraLight}\fi
+ \iffira@ultralight\def\fira@regstyle{UltraLight}\fi
+ \iffira@thin\def\fira@regstyle{Thin}\fi
+
+\else % type1
+
+ \def\bfseries@sf{bold}
+ \iffira@medium\def\bfseries@sf{medium}\fi
+ \iffira@semibold\def\bfseries@sf{semibold}\fi
+ \iffira@extrabold\def\bfseries@sf{extrabold}\fi
+ \iffira@heavy\def\bfseries@sf{heavy}\fi
+
+ \def\mdseries@sf{regular}
+ \iffira@book\def\mdseries@sf{book}\fi
+ \iffira@light\def\mdseries@sf{light}\fi
+ \iffira@extralight\def\mdseries@sf{extralight}\fi
+ \iffira@ultralight\def\mdseries@sf{ultralight}\fi
+ \iffira@thin\def\mdseries@sf{thin}\fi
+\fi
+
+
+\iffira@otf
+ \RequirePackage{fontspec}
+\else
+ \RequirePackage{mweights,fontaxes}
+\fi
+
+\iffira@otf
+ \def\fira@regular{Regular}
+ \ifxetex\XeTeXtracingfonts=1\fi
+ \defaultfontfeatures{
+ Ligatures = TeX ,
+ Scale = \FiraSans@scale ,
+ Extension = .otf }
+ \setsansfont
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-\fira@regstyle ,
+ ItalicFont = *-\ifx\fira@regstyle\fira@regular\else\fira@regstyle\fi Italic,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ % grab current family in case of subsequent change:
+ \let\firafamily\sfdefault
+ \iffira@default\renewcommand*\familydefault{\firafamily}\fi
+
+ \providecommand\sufigures{\addfontfeatures{VerticalPosition=Superior}}
+ \newfontfamily\firaoldstyle
+ [ Numbers = {\fira@otffigurealign,OldStyle},
+ UprightFont = *-\fira@regstyle ,
+ ItalicFont = *-\ifx\fira@regstyle\fira@regular\else\fira@regstyle\fi Italic,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firalining
+ [ Numbers = {\fira@otffigurealign,Lining},
+ UprightFont = *-\fira@regstyle ,
+ ItalicFont = *-\ifx\fira@regstyle\fira@regular\else\fira@regstyle\fi Italic,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firatabular
+ [ Numbers = {Monospaced,\fira@otffigurestyle},
+ UprightFont = *-\fira@regstyle ,
+ ItalicFont = *-\ifx\fira@regstyle\fira@regular\else\fira@regstyle\fi Italic,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firaproportional
+ [ Numbers = {Proportional,\fira@otffigurestyle},
+ UprightFont = *-\fira@regstyle ,
+ ItalicFont = *-\ifx\fira@regstyle\fira@regular\else\fira@regstyle\fi Italic,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firathin
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-Thin ,
+ ItalicFont = *-ThinItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firalight
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-Light ,
+ ItalicFont = *-LightItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firaextralight
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-ExtraLight ,
+ ItalicFont = *-ExtraLightItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firaultralight
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-UltraLight ,
+ ItalicFont = *-UltraLightItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firamedium
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-Medium ,
+ ItalicFont = *-MediumItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firabook
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-Book ,
+ ItalicFont = *-BookItalic ,
+ BoldFont = *-\fira@boldstyle ,
+ BoldItalicFont = *-\fira@boldstyle Italic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firasemibold
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-SemiBold ,
+ ItalicFont = *-SemiBoldItalic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firaextrabold
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-ExtraBold ,
+ ItalicFont = *-ExtraBoldItalic ,
+ ]
+ {FiraSans}
+ \newfontfamily\firaheavy
+ [ Numbers = {\fira@otffigurealign,\fira@otffigurestyle},
+ UprightFont = *-Heavy ,
+ ItalicFont = *-HeavyItalic ,
+ ]
+ {FiraSans}
+
+\else % type1
+
+
+ \def\fira@family{FiraSans-\fira@figurealign\fira@figurestyle}
+ \renewcommand*\sfdefault{\fira@family}
+ \iffira@default\edef\familydefault{\sfdefault}\edef\seriesdefault{\mdseries@sf}\fi
+
+ \fa@naming@exception{figures}{{superior}{proportional}}{Sup}
+ \fa@naming@exception{figures}{{superior}{tabular}}{Sup}
+ \def\sufigures{\@nomath\sufigures\fontfigurestyle{superior}\selectfont}
+
+ \def\firaoldstyle{\fontfamily{FiraSans-\fira@figurealign OsF}\selectfont}
+ \def\firalining{\fontfamily{FiraSans-\fira@figurealign LF}\selectfont}
+ \def\firatabular{\fontfamily{FiraSans-T\fira@figurestyle}\selectfont}
+ \def\firaproportional{\fontfamily{FiraSans-\fira@figurestyle}\selectfont}
+
+ \def\firathin{\fontfamily{\fira@family}\fontseries{thin}\selectfont}
+ \def\firalight{\fontfamily{\fira@family}\fontseries{light}\selectfont}
+ \def\firaextralight{\fontfamily{\fira@family}\fontseries{extralight}\selectfont}
+ \def\firaultralight{\fontfamily{\fira@family}\fontseries{ultralight}\selectfont}
+ \def\firamedium{\fontfamily{\fira@family}\fontseries{medium}\selectfont}
+ \def\firabook{\fontfamily{\fira@family}\fontseries{book}\selectfont}
+ \def\firasemibold{\fontfamily{\fira@family}\fontseries{semibold}\selectfont}
+ \def\firaextrabold{\fontfamily{\fira@family}\fontseries{extrabold}\selectfont}
+ \def\firaheavy{\fontfamily{\fira@family}\fontseries{heavy}\selectfont}
+
+\fi
+
+% Use FireSans-... as the family, even for otf.
+\def\firalgr{\fontencoding{LGR}\fontfamily{FiraSans-\fira@figurealign\fira@figurestyle}\selectfont}
+
+\iffira@otf
+ \defaultfontfeatures{}
+\fi
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraMono-Sup.fd b/fonts/fira/latex/LGRFiraMono-Sup.fd
new file mode 100644
index 0000000000..05117183c1
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraMono-Sup.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraMono-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraMono-Sup.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraMono-Sup}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{regular}{it}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bold}{it}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{medium}{it}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{m}{n}{
+ <-> ssub * FiraMono-Sup/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{m}{sl}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{m}{it}{
+ <-> ssub * FiraMono-Sup/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{sb}{n}{
+ <-> ssub * FiraMono-Sup/medium/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{sb}{sl}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{sb}{it}{
+ <-> ssub * FiraMono-Sup/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{b}{n}{
+ <-> ssub * FiraMono-Sup/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{b}{sl}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{b}{it}{
+ <-> ssub * FiraMono-Sup/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bx}{sl}{
+ <-> ssub * FiraMono-Sup/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bx}{n}{
+ <-> ssub * FiraMono-Sup/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-Sup}{bx}{it}{
+ <-> ssub * FiraMono-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraMono-TLF.fd b/fonts/fira/latex/LGRFiraMono-TLF.fd
new file mode 100644
index 0000000000..c70474c486
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraMono-TLF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraMono-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraMono-TLF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraMono-TLF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{regular}{it}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bold}{it}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{medium}{it}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{m}{n}{
+ <-> ssub * FiraMono-TLF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{m}{sl}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{m}{it}{
+ <-> ssub * FiraMono-TLF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{sb}{n}{
+ <-> ssub * FiraMono-TLF/medium/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{sb}{sl}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{sb}{it}{
+ <-> ssub * FiraMono-TLF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{b}{n}{
+ <-> ssub * FiraMono-TLF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{b}{sl}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{b}{it}{
+ <-> ssub * FiraMono-TLF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bx}{sl}{
+ <-> ssub * FiraMono-TLF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bx}{n}{
+ <-> ssub * FiraMono-TLF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TLF}{bx}{it}{
+ <-> ssub * FiraMono-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraMono-TOsF.fd b/fonts/fira/latex/LGRFiraMono-TOsF.fd
new file mode 100644
index 0000000000..269a2ea344
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraMono-TOsF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraMono-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraMono-TOsF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraMono-TOsF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{regular}{it}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bold}{it}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{medium}{it}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{m}{n}{
+ <-> ssub * FiraMono-TOsF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{m}{sl}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{m}{it}{
+ <-> ssub * FiraMono-TOsF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{sb}{n}{
+ <-> ssub * FiraMono-TOsF/medium/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{sb}{sl}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{sb}{it}{
+ <-> ssub * FiraMono-TOsF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{b}{n}{
+ <-> ssub * FiraMono-TOsF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{b}{sl}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{b}{it}{
+ <-> ssub * FiraMono-TOsF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bx}{sl}{
+ <-> ssub * FiraMono-TOsF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bx}{n}{
+ <-> ssub * FiraMono-TOsF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraMono-TOsF}{bx}{it}{
+ <-> ssub * FiraMono-TOsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraSans-LF.fd b/fonts/fira/latex/LGRFiraSans-LF.fd
new file mode 100644
index 0000000000..9dff355087
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraSans-LF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraSans-LF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraSans-LF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraSans-LF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{regular}{sl}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{scsl}{
+ <-> ssub * FiraSans-LF/thin/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{thin}{sl}{
+ <-> ssub * FiraSans-LF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{semibold}{sl}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bold}{sl}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{scsl}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{light}{sl}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extrabold}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{heavy}{sl}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{scsl}{
+ <-> ssub * FiraSans-LF/book/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{book}{sl}{
+ <-> ssub * FiraSans-LF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{scsl}{
+ <-> ssub * FiraSans-LF/medium/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{medium}{sl}{
+ <-> ssub * FiraSans-LF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ultralight}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{extralight}{sl}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{sc}{
+ <-> ssub * FiraSans-LF/ultralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{n}{
+ <-> ssub * FiraSans-LF/ultralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{it}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ul}{scit}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{sl}{
+ <-> ssub * FiraSans-LF/extralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{sc}{
+ <-> ssub * FiraSans-LF/extralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{n}{
+ <-> ssub * FiraSans-LF/extralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{it}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{el}{scit}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{sl}{
+ <-> ssub * FiraSans-LF/light/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{scsl}{
+ <-> ssub * FiraSans-LF/light/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{sc}{
+ <-> ssub * FiraSans-LF/light/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{n}{
+ <-> ssub * FiraSans-LF/light/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{it}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{l}{scit}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{sl}{
+ <-> ssub * FiraSans-LF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{sc}{
+ <-> ssub * FiraSans-LF/regular/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{n}{
+ <-> ssub * FiraSans-LF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{it}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{m}{scit}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{sl}{
+ <-> ssub * FiraSans-LF/semibold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{sc}{
+ <-> ssub * FiraSans-LF/semibold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{n}{
+ <-> ssub * FiraSans-LF/semibold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{it}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{sb}{scit}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{sl}{
+ <-> ssub * FiraSans-LF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{sc}{
+ <-> ssub * FiraSans-LF/bold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{n}{
+ <-> ssub * FiraSans-LF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{it}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{b}{scit}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{sc}{
+ <-> ssub * FiraSans-LF/extrabold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{n}{
+ <-> ssub * FiraSans-LF/extrabold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{it}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{eb}{scit}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{sl}{
+ <-> ssub * FiraSans-LF/heavy/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{sc}{
+ <-> ssub * FiraSans-LF/heavy/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{n}{
+ <-> ssub * FiraSans-LF/heavy/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{it}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{ub}{scit}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{n}{
+ <-> ssub * FiraSans-LF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{sc}{
+ <-> ssub * FiraSans-LF/b/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{scsl}{
+ <-> ssub * FiraSans-LF/b/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{sl}{
+ <-> ssub * FiraSans-LF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{it}{
+ <-> ssub * FiraSans-LF/b/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-LF}{bx}{scit}{
+ <-> ssub * FiraSans-LF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraSans-OsF.fd b/fonts/fira/latex/LGRFiraSans-OsF.fd
new file mode 100644
index 0000000000..1d120f9045
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraSans-OsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraSans-OsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraSans-OsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraSans-OsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{regular}{sl}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{scsl}{
+ <-> ssub * FiraSans-OsF/thin/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{thin}{sl}{
+ <-> ssub * FiraSans-OsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{semibold}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bold}{sl}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{light}{sl}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{heavy}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{scsl}{
+ <-> ssub * FiraSans-OsF/book/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{book}{sl}{
+ <-> ssub * FiraSans-OsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{scsl}{
+ <-> ssub * FiraSans-OsF/medium/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{medium}{sl}{
+ <-> ssub * FiraSans-OsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{extralight}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{sc}{
+ <-> ssub * FiraSans-OsF/ultralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{n}{
+ <-> ssub * FiraSans-OsF/ultralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{it}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ul}{scit}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{sc}{
+ <-> ssub * FiraSans-OsF/extralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{n}{
+ <-> ssub * FiraSans-OsF/extralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{it}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{el}{scit}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{sl}{
+ <-> ssub * FiraSans-OsF/light/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{sc}{
+ <-> ssub * FiraSans-OsF/light/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{n}{
+ <-> ssub * FiraSans-OsF/light/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{it}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{l}{scit}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{sl}{
+ <-> ssub * FiraSans-OsF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{sc}{
+ <-> ssub * FiraSans-OsF/regular/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{n}{
+ <-> ssub * FiraSans-OsF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{it}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{m}{scit}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{sc}{
+ <-> ssub * FiraSans-OsF/semibold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{n}{
+ <-> ssub * FiraSans-OsF/semibold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{it}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{sb}{scit}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{sl}{
+ <-> ssub * FiraSans-OsF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{sc}{
+ <-> ssub * FiraSans-OsF/bold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{n}{
+ <-> ssub * FiraSans-OsF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{it}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{b}{scit}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{sc}{
+ <-> ssub * FiraSans-OsF/extrabold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{n}{
+ <-> ssub * FiraSans-OsF/extrabold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{it}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{eb}{scit}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{sc}{
+ <-> ssub * FiraSans-OsF/heavy/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{n}{
+ <-> ssub * FiraSans-OsF/heavy/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{it}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{ub}{scit}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{n}{
+ <-> ssub * FiraSans-OsF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{sc}{
+ <-> ssub * FiraSans-OsF/b/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{scsl}{
+ <-> ssub * FiraSans-OsF/b/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{sl}{
+ <-> ssub * FiraSans-OsF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{it}{
+ <-> ssub * FiraSans-OsF/b/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-OsF}{bx}{scit}{
+ <-> ssub * FiraSans-OsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraSans-Sup.fd b/fonts/fira/latex/LGRFiraSans-Sup.fd
new file mode 100644
index 0000000000..2271919f3b
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraSans-Sup.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraSans-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraSans-Sup.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraSans-Sup}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{regular}{sl}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{thin}{sl}{
+ <-> ssub * FiraSans-Sup/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{semibold}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bold}{sl}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{light}{sl}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extrabold}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{heavy}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{book}{sl}{
+ <-> ssub * FiraSans-Sup/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{medium}{sl}{
+ <-> ssub * FiraSans-Sup/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ultralight}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-sup-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{extralight}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ul}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ul}{n}{
+ <-> ssub * FiraSans-Sup/ultralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ul}{it}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{el}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{el}{n}{
+ <-> ssub * FiraSans-Sup/extralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{el}{it}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{l}{sl}{
+ <-> ssub * FiraSans-Sup/light/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{l}{n}{
+ <-> ssub * FiraSans-Sup/light/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{l}{it}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{m}{sl}{
+ <-> ssub * FiraSans-Sup/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{m}{n}{
+ <-> ssub * FiraSans-Sup/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{m}{it}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{sb}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{sb}{n}{
+ <-> ssub * FiraSans-Sup/semibold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{sb}{it}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{b}{sl}{
+ <-> ssub * FiraSans-Sup/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{b}{n}{
+ <-> ssub * FiraSans-Sup/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{b}{it}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{eb}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{eb}{n}{
+ <-> ssub * FiraSans-Sup/extrabold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{eb}{it}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ub}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ub}{n}{
+ <-> ssub * FiraSans-Sup/heavy/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{ub}{it}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bx}{n}{
+ <-> ssub * FiraSans-Sup/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bx}{sl}{
+ <-> ssub * FiraSans-Sup/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-Sup}{bx}{it}{
+ <-> ssub * FiraSans-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraSans-TLF.fd b/fonts/fira/latex/LGRFiraSans-TLF.fd
new file mode 100644
index 0000000000..7dbba64473
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraSans-TLF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraSans-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraSans-TLF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraSans-TLF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{regular}{sl}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{scsl}{
+ <-> ssub * FiraSans-TLF/thin/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{thin}{sl}{
+ <-> ssub * FiraSans-TLF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{semibold}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bold}{sl}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{light}{sl}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{heavy}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{scsl}{
+ <-> ssub * FiraSans-TLF/book/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{book}{sl}{
+ <-> ssub * FiraSans-TLF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{scsl}{
+ <-> ssub * FiraSans-TLF/medium/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{medium}{sl}{
+ <-> ssub * FiraSans-TLF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{extralight}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{sc}{
+ <-> ssub * FiraSans-TLF/ultralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{n}{
+ <-> ssub * FiraSans-TLF/ultralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{it}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ul}{scit}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{sc}{
+ <-> ssub * FiraSans-TLF/extralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{n}{
+ <-> ssub * FiraSans-TLF/extralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{it}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{el}{scit}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{sl}{
+ <-> ssub * FiraSans-TLF/light/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{sc}{
+ <-> ssub * FiraSans-TLF/light/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{n}{
+ <-> ssub * FiraSans-TLF/light/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{it}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{l}{scit}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{sl}{
+ <-> ssub * FiraSans-TLF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{sc}{
+ <-> ssub * FiraSans-TLF/regular/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{n}{
+ <-> ssub * FiraSans-TLF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{it}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{m}{scit}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{sc}{
+ <-> ssub * FiraSans-TLF/semibold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{n}{
+ <-> ssub * FiraSans-TLF/semibold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{it}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{sb}{scit}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{sl}{
+ <-> ssub * FiraSans-TLF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{sc}{
+ <-> ssub * FiraSans-TLF/bold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{n}{
+ <-> ssub * FiraSans-TLF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{it}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{b}{scit}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{sc}{
+ <-> ssub * FiraSans-TLF/extrabold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{n}{
+ <-> ssub * FiraSans-TLF/extrabold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{it}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{eb}{scit}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{sc}{
+ <-> ssub * FiraSans-TLF/heavy/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{n}{
+ <-> ssub * FiraSans-TLF/heavy/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{it}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{ub}{scit}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{n}{
+ <-> ssub * FiraSans-TLF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{sc}{
+ <-> ssub * FiraSans-TLF/b/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{scsl}{
+ <-> ssub * FiraSans-TLF/b/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{sl}{
+ <-> ssub * FiraSans-TLF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{it}{
+ <-> ssub * FiraSans-TLF/b/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TLF}{bx}{scit}{
+ <-> ssub * FiraSans-TLF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LGRFiraSans-TOsF.fd b/fonts/fira/latex/LGRFiraSans-TOsF.fd
new file mode 100644
index 0000000000..69f4f81132
--- /dev/null
+++ b/fonts/fira/latex/LGRFiraSans-TOsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LGRFiraSans-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LGR/FiraSans-TOsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LGR}{FiraSans-TOsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{regular}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{scsl}{
+ <-> ssub * FiraSans-TOsF/thin/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{thin}{sl}{
+ <-> ssub * FiraSans-TOsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{semibold}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bold}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{light}{sl}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{heavy}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{scsl}{
+ <-> ssub * FiraSans-TOsF/book/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{book}{sl}{
+ <-> ssub * FiraSans-TOsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{scsl}{
+ <-> ssub * FiraSans-TOsF/medium/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{medium}{sl}{
+ <-> ssub * FiraSans-TOsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-sc-lgr
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{extralight}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{sc}{
+ <-> ssub * FiraSans-TOsF/ultralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{n}{
+ <-> ssub * FiraSans-TOsF/ultralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{it}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ul}{scit}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{sc}{
+ <-> ssub * FiraSans-TOsF/extralight/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{n}{
+ <-> ssub * FiraSans-TOsF/extralight/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{it}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{el}{scit}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{sl}{
+ <-> ssub * FiraSans-TOsF/light/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{sc}{
+ <-> ssub * FiraSans-TOsF/light/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{n}{
+ <-> ssub * FiraSans-TOsF/light/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{it}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{l}{scit}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{sc}{
+ <-> ssub * FiraSans-TOsF/regular/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{n}{
+ <-> ssub * FiraSans-TOsF/regular/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{it}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{m}{scit}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{sc}{
+ <-> ssub * FiraSans-TOsF/semibold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{n}{
+ <-> ssub * FiraSans-TOsF/semibold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{it}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{sb}{scit}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{sc}{
+ <-> ssub * FiraSans-TOsF/bold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{n}{
+ <-> ssub * FiraSans-TOsF/bold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{it}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{b}{scit}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{sc}{
+ <-> ssub * FiraSans-TOsF/extrabold/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{n}{
+ <-> ssub * FiraSans-TOsF/extrabold/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{it}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{eb}{scit}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{sc}{
+ <-> ssub * FiraSans-TOsF/heavy/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{n}{
+ <-> ssub * FiraSans-TOsF/heavy/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{it}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{ub}{scit}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{n}{
+ <-> ssub * FiraSans-TOsF/b/n
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{sc}{
+ <-> ssub * FiraSans-TOsF/b/sc
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{scsl}{
+ <-> ssub * FiraSans-TOsF/b/scsl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{sl}{
+ <-> ssub * FiraSans-TOsF/b/sl
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{it}{
+ <-> ssub * FiraSans-TOsF/b/it
+}{}
+
+\DeclareFontShape{LGR}{FiraSans-TOsF}{bx}{scit}{
+ <-> ssub * FiraSans-TOsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraMono-Sup.fd b/fonts/fira/latex/LY1FiraMono-Sup.fd
new file mode 100644
index 0000000000..25dfd7c146
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraMono-Sup.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraMono-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraMono-Sup.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraMono-Sup}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{regular}{it}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bold}{it}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{medium}{it}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{m}{n}{
+ <-> ssub * FiraMono-Sup/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{m}{sl}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{m}{it}{
+ <-> ssub * FiraMono-Sup/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{sb}{n}{
+ <-> ssub * FiraMono-Sup/medium/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{sb}{sl}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{sb}{it}{
+ <-> ssub * FiraMono-Sup/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{b}{n}{
+ <-> ssub * FiraMono-Sup/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{b}{sl}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{b}{it}{
+ <-> ssub * FiraMono-Sup/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bx}{sl}{
+ <-> ssub * FiraMono-Sup/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bx}{n}{
+ <-> ssub * FiraMono-Sup/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-Sup}{bx}{it}{
+ <-> ssub * FiraMono-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraMono-TLF.fd b/fonts/fira/latex/LY1FiraMono-TLF.fd
new file mode 100644
index 0000000000..729cb9afa1
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraMono-TLF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraMono-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraMono-TLF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraMono-TLF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{regular}{it}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bold}{it}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{medium}{it}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{m}{n}{
+ <-> ssub * FiraMono-TLF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{m}{sl}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{m}{it}{
+ <-> ssub * FiraMono-TLF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{sb}{n}{
+ <-> ssub * FiraMono-TLF/medium/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{sb}{sl}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{sb}{it}{
+ <-> ssub * FiraMono-TLF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{b}{n}{
+ <-> ssub * FiraMono-TLF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{b}{sl}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{b}{it}{
+ <-> ssub * FiraMono-TLF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bx}{sl}{
+ <-> ssub * FiraMono-TLF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bx}{n}{
+ <-> ssub * FiraMono-TLF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TLF}{bx}{it}{
+ <-> ssub * FiraMono-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraMono-TOsF.fd b/fonts/fira/latex/LY1FiraMono-TOsF.fd
new file mode 100644
index 0000000000..bd6feb54bd
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraMono-TOsF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraMono-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraMono-TOsF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraMono-TOsF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{regular}{it}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bold}{it}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{medium}{it}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{m}{n}{
+ <-> ssub * FiraMono-TOsF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{m}{sl}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{m}{it}{
+ <-> ssub * FiraMono-TOsF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{sb}{n}{
+ <-> ssub * FiraMono-TOsF/medium/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{sb}{sl}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{sb}{it}{
+ <-> ssub * FiraMono-TOsF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{b}{n}{
+ <-> ssub * FiraMono-TOsF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{b}{sl}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{b}{it}{
+ <-> ssub * FiraMono-TOsF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bx}{sl}{
+ <-> ssub * FiraMono-TOsF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bx}{n}{
+ <-> ssub * FiraMono-TOsF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraMono-TOsF}{bx}{it}{
+ <-> ssub * FiraMono-TOsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraSans-LF.fd b/fonts/fira/latex/LY1FiraSans-LF.fd
new file mode 100644
index 0000000000..95335bdd14
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraSans-LF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraSans-LF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraSans-LF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraSans-LF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{regular}{sl}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{scsl}{
+ <-> ssub * FiraSans-LF/thin/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{thin}{sl}{
+ <-> ssub * FiraSans-LF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{semibold}{sl}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bold}{sl}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{scsl}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{light}{sl}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extrabold}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{heavy}{sl}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{scsl}{
+ <-> ssub * FiraSans-LF/book/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{book}{sl}{
+ <-> ssub * FiraSans-LF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{scsl}{
+ <-> ssub * FiraSans-LF/medium/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{medium}{sl}{
+ <-> ssub * FiraSans-LF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ultralight}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{extralight}{sl}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{sc}{
+ <-> ssub * FiraSans-LF/ultralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{n}{
+ <-> ssub * FiraSans-LF/ultralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{it}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ul}{scit}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{sl}{
+ <-> ssub * FiraSans-LF/extralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{sc}{
+ <-> ssub * FiraSans-LF/extralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{n}{
+ <-> ssub * FiraSans-LF/extralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{it}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{el}{scit}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{sl}{
+ <-> ssub * FiraSans-LF/light/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{scsl}{
+ <-> ssub * FiraSans-LF/light/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{sc}{
+ <-> ssub * FiraSans-LF/light/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{n}{
+ <-> ssub * FiraSans-LF/light/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{it}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{l}{scit}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{sl}{
+ <-> ssub * FiraSans-LF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{sc}{
+ <-> ssub * FiraSans-LF/regular/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{n}{
+ <-> ssub * FiraSans-LF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{it}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{m}{scit}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{sl}{
+ <-> ssub * FiraSans-LF/semibold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{sc}{
+ <-> ssub * FiraSans-LF/semibold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{n}{
+ <-> ssub * FiraSans-LF/semibold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{it}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{sb}{scit}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{sl}{
+ <-> ssub * FiraSans-LF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{sc}{
+ <-> ssub * FiraSans-LF/bold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{n}{
+ <-> ssub * FiraSans-LF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{it}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{b}{scit}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{sc}{
+ <-> ssub * FiraSans-LF/extrabold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{n}{
+ <-> ssub * FiraSans-LF/extrabold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{it}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{eb}{scit}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{sl}{
+ <-> ssub * FiraSans-LF/heavy/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{sc}{
+ <-> ssub * FiraSans-LF/heavy/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{n}{
+ <-> ssub * FiraSans-LF/heavy/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{it}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{ub}{scit}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{n}{
+ <-> ssub * FiraSans-LF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{sc}{
+ <-> ssub * FiraSans-LF/b/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{scsl}{
+ <-> ssub * FiraSans-LF/b/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{sl}{
+ <-> ssub * FiraSans-LF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{it}{
+ <-> ssub * FiraSans-LF/b/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-LF}{bx}{scit}{
+ <-> ssub * FiraSans-LF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraSans-OsF.fd b/fonts/fira/latex/LY1FiraSans-OsF.fd
new file mode 100644
index 0000000000..228d16fdf7
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraSans-OsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraSans-OsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraSans-OsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraSans-OsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{regular}{sl}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{scsl}{
+ <-> ssub * FiraSans-OsF/thin/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{thin}{sl}{
+ <-> ssub * FiraSans-OsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{semibold}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bold}{sl}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{light}{sl}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{heavy}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{scsl}{
+ <-> ssub * FiraSans-OsF/book/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{book}{sl}{
+ <-> ssub * FiraSans-OsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{scsl}{
+ <-> ssub * FiraSans-OsF/medium/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{medium}{sl}{
+ <-> ssub * FiraSans-OsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{extralight}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{sc}{
+ <-> ssub * FiraSans-OsF/ultralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{n}{
+ <-> ssub * FiraSans-OsF/ultralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{it}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ul}{scit}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{sc}{
+ <-> ssub * FiraSans-OsF/extralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{n}{
+ <-> ssub * FiraSans-OsF/extralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{it}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{el}{scit}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{sl}{
+ <-> ssub * FiraSans-OsF/light/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{sc}{
+ <-> ssub * FiraSans-OsF/light/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{n}{
+ <-> ssub * FiraSans-OsF/light/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{it}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{l}{scit}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{sl}{
+ <-> ssub * FiraSans-OsF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{sc}{
+ <-> ssub * FiraSans-OsF/regular/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{n}{
+ <-> ssub * FiraSans-OsF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{it}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{m}{scit}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{sc}{
+ <-> ssub * FiraSans-OsF/semibold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{n}{
+ <-> ssub * FiraSans-OsF/semibold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{it}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{sb}{scit}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{sl}{
+ <-> ssub * FiraSans-OsF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{sc}{
+ <-> ssub * FiraSans-OsF/bold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{n}{
+ <-> ssub * FiraSans-OsF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{it}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{b}{scit}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{sc}{
+ <-> ssub * FiraSans-OsF/extrabold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{n}{
+ <-> ssub * FiraSans-OsF/extrabold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{it}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{eb}{scit}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{sc}{
+ <-> ssub * FiraSans-OsF/heavy/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{n}{
+ <-> ssub * FiraSans-OsF/heavy/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{it}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{ub}{scit}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{n}{
+ <-> ssub * FiraSans-OsF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{sc}{
+ <-> ssub * FiraSans-OsF/b/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{scsl}{
+ <-> ssub * FiraSans-OsF/b/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{sl}{
+ <-> ssub * FiraSans-OsF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{it}{
+ <-> ssub * FiraSans-OsF/b/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-OsF}{bx}{scit}{
+ <-> ssub * FiraSans-OsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraSans-Sup.fd b/fonts/fira/latex/LY1FiraSans-Sup.fd
new file mode 100644
index 0000000000..b02bb8a20f
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraSans-Sup.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraSans-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraSans-Sup.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraSans-Sup}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{regular}{sl}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{thin}{sl}{
+ <-> ssub * FiraSans-Sup/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{semibold}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bold}{sl}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{light}{sl}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extrabold}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{heavy}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{book}{sl}{
+ <-> ssub * FiraSans-Sup/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{medium}{sl}{
+ <-> ssub * FiraSans-Sup/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ultralight}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-sup-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{extralight}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ul}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ul}{n}{
+ <-> ssub * FiraSans-Sup/ultralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ul}{it}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{el}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{el}{n}{
+ <-> ssub * FiraSans-Sup/extralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{el}{it}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{l}{sl}{
+ <-> ssub * FiraSans-Sup/light/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{l}{n}{
+ <-> ssub * FiraSans-Sup/light/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{l}{it}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{m}{sl}{
+ <-> ssub * FiraSans-Sup/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{m}{n}{
+ <-> ssub * FiraSans-Sup/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{m}{it}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{sb}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{sb}{n}{
+ <-> ssub * FiraSans-Sup/semibold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{sb}{it}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{b}{sl}{
+ <-> ssub * FiraSans-Sup/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{b}{n}{
+ <-> ssub * FiraSans-Sup/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{b}{it}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{eb}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{eb}{n}{
+ <-> ssub * FiraSans-Sup/extrabold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{eb}{it}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ub}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ub}{n}{
+ <-> ssub * FiraSans-Sup/heavy/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{ub}{it}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bx}{n}{
+ <-> ssub * FiraSans-Sup/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bx}{sl}{
+ <-> ssub * FiraSans-Sup/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-Sup}{bx}{it}{
+ <-> ssub * FiraSans-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraSans-TLF.fd b/fonts/fira/latex/LY1FiraSans-TLF.fd
new file mode 100644
index 0000000000..9200d50395
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraSans-TLF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraSans-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraSans-TLF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraSans-TLF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{regular}{sl}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{scsl}{
+ <-> ssub * FiraSans-TLF/thin/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{thin}{sl}{
+ <-> ssub * FiraSans-TLF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{semibold}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bold}{sl}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{light}{sl}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{heavy}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{scsl}{
+ <-> ssub * FiraSans-TLF/book/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{book}{sl}{
+ <-> ssub * FiraSans-TLF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{scsl}{
+ <-> ssub * FiraSans-TLF/medium/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{medium}{sl}{
+ <-> ssub * FiraSans-TLF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{extralight}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{sc}{
+ <-> ssub * FiraSans-TLF/ultralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{n}{
+ <-> ssub * FiraSans-TLF/ultralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{it}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ul}{scit}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{sc}{
+ <-> ssub * FiraSans-TLF/extralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{n}{
+ <-> ssub * FiraSans-TLF/extralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{it}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{el}{scit}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{sl}{
+ <-> ssub * FiraSans-TLF/light/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{sc}{
+ <-> ssub * FiraSans-TLF/light/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{n}{
+ <-> ssub * FiraSans-TLF/light/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{it}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{l}{scit}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{sl}{
+ <-> ssub * FiraSans-TLF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{sc}{
+ <-> ssub * FiraSans-TLF/regular/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{n}{
+ <-> ssub * FiraSans-TLF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{it}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{m}{scit}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{sc}{
+ <-> ssub * FiraSans-TLF/semibold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{n}{
+ <-> ssub * FiraSans-TLF/semibold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{it}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{sb}{scit}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{sl}{
+ <-> ssub * FiraSans-TLF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{sc}{
+ <-> ssub * FiraSans-TLF/bold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{n}{
+ <-> ssub * FiraSans-TLF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{it}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{b}{scit}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{sc}{
+ <-> ssub * FiraSans-TLF/extrabold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{n}{
+ <-> ssub * FiraSans-TLF/extrabold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{it}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{eb}{scit}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{sc}{
+ <-> ssub * FiraSans-TLF/heavy/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{n}{
+ <-> ssub * FiraSans-TLF/heavy/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{it}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{ub}{scit}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{n}{
+ <-> ssub * FiraSans-TLF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{sc}{
+ <-> ssub * FiraSans-TLF/b/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{scsl}{
+ <-> ssub * FiraSans-TLF/b/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{sl}{
+ <-> ssub * FiraSans-TLF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{it}{
+ <-> ssub * FiraSans-TLF/b/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TLF}{bx}{scit}{
+ <-> ssub * FiraSans-TLF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/LY1FiraSans-TOsF.fd b/fonts/fira/latex/LY1FiraSans-TOsF.fd
new file mode 100644
index 0000000000..9085c55048
--- /dev/null
+++ b/fonts/fira/latex/LY1FiraSans-TOsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{LY1FiraSans-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for LY1/FiraSans-TOsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{LY1}{FiraSans-TOsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{regular}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{scsl}{
+ <-> ssub * FiraSans-TOsF/thin/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{thin}{sl}{
+ <-> ssub * FiraSans-TOsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{semibold}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bold}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{light}{sl}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{heavy}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{scsl}{
+ <-> ssub * FiraSans-TOsF/book/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{book}{sl}{
+ <-> ssub * FiraSans-TOsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{scsl}{
+ <-> ssub * FiraSans-TOsF/medium/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{medium}{sl}{
+ <-> ssub * FiraSans-TOsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-sc-ly1
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{extralight}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{sc}{
+ <-> ssub * FiraSans-TOsF/ultralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{n}{
+ <-> ssub * FiraSans-TOsF/ultralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{it}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ul}{scit}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{sc}{
+ <-> ssub * FiraSans-TOsF/extralight/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{n}{
+ <-> ssub * FiraSans-TOsF/extralight/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{it}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{el}{scit}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{sl}{
+ <-> ssub * FiraSans-TOsF/light/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{sc}{
+ <-> ssub * FiraSans-TOsF/light/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{n}{
+ <-> ssub * FiraSans-TOsF/light/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{it}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{l}{scit}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{sc}{
+ <-> ssub * FiraSans-TOsF/regular/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{n}{
+ <-> ssub * FiraSans-TOsF/regular/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{it}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{m}{scit}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{sc}{
+ <-> ssub * FiraSans-TOsF/semibold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{n}{
+ <-> ssub * FiraSans-TOsF/semibold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{it}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{sb}{scit}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{sc}{
+ <-> ssub * FiraSans-TOsF/bold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{n}{
+ <-> ssub * FiraSans-TOsF/bold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{it}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{b}{scit}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{sc}{
+ <-> ssub * FiraSans-TOsF/extrabold/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{n}{
+ <-> ssub * FiraSans-TOsF/extrabold/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{it}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{eb}{scit}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{sc}{
+ <-> ssub * FiraSans-TOsF/heavy/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{n}{
+ <-> ssub * FiraSans-TOsF/heavy/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{it}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{ub}{scit}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{n}{
+ <-> ssub * FiraSans-TOsF/b/n
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{sc}{
+ <-> ssub * FiraSans-TOsF/b/sc
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{scsl}{
+ <-> ssub * FiraSans-TOsF/b/scsl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{sl}{
+ <-> ssub * FiraSans-TOsF/b/sl
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{it}{
+ <-> ssub * FiraSans-TOsF/b/it
+}{}
+
+\DeclareFontShape{LY1}{FiraSans-TOsF}{bx}{scit}{
+ <-> ssub * FiraSans-TOsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraMono-Sup.fd b/fonts/fira/latex/OT1FiraMono-Sup.fd
new file mode 100644
index 0000000000..9f15cd4238
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraMono-Sup.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraMono-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraMono-Sup.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraMono-Sup}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{regular}{it}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bold}{it}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{medium}{it}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{m}{n}{
+ <-> ssub * FiraMono-Sup/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{m}{sl}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{m}{it}{
+ <-> ssub * FiraMono-Sup/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{sb}{n}{
+ <-> ssub * FiraMono-Sup/medium/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{sb}{sl}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{sb}{it}{
+ <-> ssub * FiraMono-Sup/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{b}{n}{
+ <-> ssub * FiraMono-Sup/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{b}{sl}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{b}{it}{
+ <-> ssub * FiraMono-Sup/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bx}{sl}{
+ <-> ssub * FiraMono-Sup/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bx}{n}{
+ <-> ssub * FiraMono-Sup/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-Sup}{bx}{it}{
+ <-> ssub * FiraMono-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraMono-TLF.fd b/fonts/fira/latex/OT1FiraMono-TLF.fd
new file mode 100644
index 0000000000..9169ec89f6
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraMono-TLF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraMono-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraMono-TLF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraMono-TLF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{regular}{it}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bold}{it}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{medium}{it}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{m}{n}{
+ <-> ssub * FiraMono-TLF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{m}{sl}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{m}{it}{
+ <-> ssub * FiraMono-TLF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{sb}{n}{
+ <-> ssub * FiraMono-TLF/medium/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{sb}{sl}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{sb}{it}{
+ <-> ssub * FiraMono-TLF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{b}{n}{
+ <-> ssub * FiraMono-TLF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{b}{sl}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{b}{it}{
+ <-> ssub * FiraMono-TLF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bx}{sl}{
+ <-> ssub * FiraMono-TLF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bx}{n}{
+ <-> ssub * FiraMono-TLF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TLF}{bx}{it}{
+ <-> ssub * FiraMono-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraMono-TOsF.fd b/fonts/fira/latex/OT1FiraMono-TOsF.fd
new file mode 100644
index 0000000000..4482d007aa
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraMono-TOsF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraMono-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraMono-TOsF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraMono-TOsF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{regular}{it}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bold}{it}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{medium}{it}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{m}{n}{
+ <-> ssub * FiraMono-TOsF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{m}{sl}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{m}{it}{
+ <-> ssub * FiraMono-TOsF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{sb}{n}{
+ <-> ssub * FiraMono-TOsF/medium/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{sb}{sl}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{sb}{it}{
+ <-> ssub * FiraMono-TOsF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{b}{n}{
+ <-> ssub * FiraMono-TOsF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{b}{sl}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{b}{it}{
+ <-> ssub * FiraMono-TOsF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bx}{sl}{
+ <-> ssub * FiraMono-TOsF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bx}{n}{
+ <-> ssub * FiraMono-TOsF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraMono-TOsF}{bx}{it}{
+ <-> ssub * FiraMono-TOsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraSans-LF.fd b/fonts/fira/latex/OT1FiraSans-LF.fd
new file mode 100644
index 0000000000..3449ab0c50
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraSans-LF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraSans-LF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraSans-LF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraSans-LF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{regular}{sl}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{scsl}{
+ <-> ssub * FiraSans-LF/thin/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{thin}{sl}{
+ <-> ssub * FiraSans-LF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{semibold}{sl}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bold}{sl}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{scsl}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{light}{sl}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extrabold}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{heavy}{sl}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{scsl}{
+ <-> ssub * FiraSans-LF/book/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{book}{sl}{
+ <-> ssub * FiraSans-LF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{scsl}{
+ <-> ssub * FiraSans-LF/medium/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{medium}{sl}{
+ <-> ssub * FiraSans-LF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ultralight}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{extralight}{sl}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{sc}{
+ <-> ssub * FiraSans-LF/ultralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{n}{
+ <-> ssub * FiraSans-LF/ultralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{it}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ul}{scit}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{sl}{
+ <-> ssub * FiraSans-LF/extralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{sc}{
+ <-> ssub * FiraSans-LF/extralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{n}{
+ <-> ssub * FiraSans-LF/extralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{it}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{el}{scit}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{sl}{
+ <-> ssub * FiraSans-LF/light/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{scsl}{
+ <-> ssub * FiraSans-LF/light/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{sc}{
+ <-> ssub * FiraSans-LF/light/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{n}{
+ <-> ssub * FiraSans-LF/light/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{it}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{l}{scit}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{sl}{
+ <-> ssub * FiraSans-LF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{sc}{
+ <-> ssub * FiraSans-LF/regular/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{n}{
+ <-> ssub * FiraSans-LF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{it}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{m}{scit}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{sl}{
+ <-> ssub * FiraSans-LF/semibold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{sc}{
+ <-> ssub * FiraSans-LF/semibold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{n}{
+ <-> ssub * FiraSans-LF/semibold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{it}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{sb}{scit}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{sl}{
+ <-> ssub * FiraSans-LF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{sc}{
+ <-> ssub * FiraSans-LF/bold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{n}{
+ <-> ssub * FiraSans-LF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{it}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{b}{scit}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{sc}{
+ <-> ssub * FiraSans-LF/extrabold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{n}{
+ <-> ssub * FiraSans-LF/extrabold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{it}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{eb}{scit}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{sl}{
+ <-> ssub * FiraSans-LF/heavy/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{sc}{
+ <-> ssub * FiraSans-LF/heavy/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{n}{
+ <-> ssub * FiraSans-LF/heavy/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{it}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{ub}{scit}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{n}{
+ <-> ssub * FiraSans-LF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{sc}{
+ <-> ssub * FiraSans-LF/b/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{scsl}{
+ <-> ssub * FiraSans-LF/b/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{sl}{
+ <-> ssub * FiraSans-LF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{it}{
+ <-> ssub * FiraSans-LF/b/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-LF}{bx}{scit}{
+ <-> ssub * FiraSans-LF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraSans-OsF.fd b/fonts/fira/latex/OT1FiraSans-OsF.fd
new file mode 100644
index 0000000000..eedd21706a
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraSans-OsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraSans-OsF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraSans-OsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraSans-OsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{regular}{sl}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{scsl}{
+ <-> ssub * FiraSans-OsF/thin/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{thin}{sl}{
+ <-> ssub * FiraSans-OsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{semibold}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bold}{sl}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{light}{sl}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{heavy}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{scsl}{
+ <-> ssub * FiraSans-OsF/book/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{book}{sl}{
+ <-> ssub * FiraSans-OsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{scsl}{
+ <-> ssub * FiraSans-OsF/medium/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{medium}{sl}{
+ <-> ssub * FiraSans-OsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{extralight}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{sc}{
+ <-> ssub * FiraSans-OsF/ultralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{n}{
+ <-> ssub * FiraSans-OsF/ultralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{it}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ul}{scit}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{sc}{
+ <-> ssub * FiraSans-OsF/extralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{n}{
+ <-> ssub * FiraSans-OsF/extralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{it}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{el}{scit}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{sl}{
+ <-> ssub * FiraSans-OsF/light/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{sc}{
+ <-> ssub * FiraSans-OsF/light/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{n}{
+ <-> ssub * FiraSans-OsF/light/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{it}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{l}{scit}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{sl}{
+ <-> ssub * FiraSans-OsF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{sc}{
+ <-> ssub * FiraSans-OsF/regular/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{n}{
+ <-> ssub * FiraSans-OsF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{it}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{m}{scit}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{sc}{
+ <-> ssub * FiraSans-OsF/semibold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{n}{
+ <-> ssub * FiraSans-OsF/semibold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{it}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{sb}{scit}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{sl}{
+ <-> ssub * FiraSans-OsF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{sc}{
+ <-> ssub * FiraSans-OsF/bold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{n}{
+ <-> ssub * FiraSans-OsF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{it}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{b}{scit}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{sc}{
+ <-> ssub * FiraSans-OsF/extrabold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{n}{
+ <-> ssub * FiraSans-OsF/extrabold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{it}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{eb}{scit}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{sc}{
+ <-> ssub * FiraSans-OsF/heavy/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{n}{
+ <-> ssub * FiraSans-OsF/heavy/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{it}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{ub}{scit}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{n}{
+ <-> ssub * FiraSans-OsF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{sc}{
+ <-> ssub * FiraSans-OsF/b/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{scsl}{
+ <-> ssub * FiraSans-OsF/b/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{sl}{
+ <-> ssub * FiraSans-OsF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{it}{
+ <-> ssub * FiraSans-OsF/b/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-OsF}{bx}{scit}{
+ <-> ssub * FiraSans-OsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraSans-Sup.fd b/fonts/fira/latex/OT1FiraSans-Sup.fd
new file mode 100644
index 0000000000..d7268648cf
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraSans-Sup.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraSans-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraSans-Sup.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraSans-Sup}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{regular}{sl}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{thin}{sl}{
+ <-> ssub * FiraSans-Sup/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{semibold}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bold}{sl}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{light}{sl}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extrabold}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{heavy}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{book}{sl}{
+ <-> ssub * FiraSans-Sup/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{medium}{sl}{
+ <-> ssub * FiraSans-Sup/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ultralight}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-sup-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{extralight}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ul}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ul}{n}{
+ <-> ssub * FiraSans-Sup/ultralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ul}{it}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{el}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{el}{n}{
+ <-> ssub * FiraSans-Sup/extralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{el}{it}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{l}{sl}{
+ <-> ssub * FiraSans-Sup/light/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{l}{n}{
+ <-> ssub * FiraSans-Sup/light/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{l}{it}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{m}{sl}{
+ <-> ssub * FiraSans-Sup/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{m}{n}{
+ <-> ssub * FiraSans-Sup/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{m}{it}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{sb}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{sb}{n}{
+ <-> ssub * FiraSans-Sup/semibold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{sb}{it}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{b}{sl}{
+ <-> ssub * FiraSans-Sup/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{b}{n}{
+ <-> ssub * FiraSans-Sup/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{b}{it}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{eb}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{eb}{n}{
+ <-> ssub * FiraSans-Sup/extrabold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{eb}{it}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ub}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ub}{n}{
+ <-> ssub * FiraSans-Sup/heavy/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{ub}{it}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bx}{n}{
+ <-> ssub * FiraSans-Sup/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bx}{sl}{
+ <-> ssub * FiraSans-Sup/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-Sup}{bx}{it}{
+ <-> ssub * FiraSans-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraSans-TLF.fd b/fonts/fira/latex/OT1FiraSans-TLF.fd
new file mode 100644
index 0000000000..be117a0f31
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraSans-TLF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraSans-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraSans-TLF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraSans-TLF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{regular}{sl}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{scsl}{
+ <-> ssub * FiraSans-TLF/thin/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{thin}{sl}{
+ <-> ssub * FiraSans-TLF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{semibold}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bold}{sl}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{light}{sl}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{heavy}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{scsl}{
+ <-> ssub * FiraSans-TLF/book/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{book}{sl}{
+ <-> ssub * FiraSans-TLF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{scsl}{
+ <-> ssub * FiraSans-TLF/medium/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{medium}{sl}{
+ <-> ssub * FiraSans-TLF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{extralight}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{sc}{
+ <-> ssub * FiraSans-TLF/ultralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{n}{
+ <-> ssub * FiraSans-TLF/ultralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{it}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ul}{scit}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{sc}{
+ <-> ssub * FiraSans-TLF/extralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{n}{
+ <-> ssub * FiraSans-TLF/extralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{it}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{el}{scit}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{sl}{
+ <-> ssub * FiraSans-TLF/light/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{sc}{
+ <-> ssub * FiraSans-TLF/light/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{n}{
+ <-> ssub * FiraSans-TLF/light/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{it}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{l}{scit}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{sl}{
+ <-> ssub * FiraSans-TLF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{sc}{
+ <-> ssub * FiraSans-TLF/regular/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{n}{
+ <-> ssub * FiraSans-TLF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{it}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{m}{scit}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{sc}{
+ <-> ssub * FiraSans-TLF/semibold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{n}{
+ <-> ssub * FiraSans-TLF/semibold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{it}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{sb}{scit}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{sl}{
+ <-> ssub * FiraSans-TLF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{sc}{
+ <-> ssub * FiraSans-TLF/bold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{n}{
+ <-> ssub * FiraSans-TLF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{it}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{b}{scit}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{sc}{
+ <-> ssub * FiraSans-TLF/extrabold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{n}{
+ <-> ssub * FiraSans-TLF/extrabold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{it}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{eb}{scit}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{sc}{
+ <-> ssub * FiraSans-TLF/heavy/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{n}{
+ <-> ssub * FiraSans-TLF/heavy/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{it}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{ub}{scit}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{n}{
+ <-> ssub * FiraSans-TLF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{sc}{
+ <-> ssub * FiraSans-TLF/b/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{scsl}{
+ <-> ssub * FiraSans-TLF/b/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{sl}{
+ <-> ssub * FiraSans-TLF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{it}{
+ <-> ssub * FiraSans-TLF/b/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TLF}{bx}{scit}{
+ <-> ssub * FiraSans-TLF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/OT1FiraSans-TOsF.fd b/fonts/fira/latex/OT1FiraSans-TOsF.fd
new file mode 100644
index 0000000000..1b370a4e81
--- /dev/null
+++ b/fonts/fira/latex/OT1FiraSans-TOsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{OT1FiraSans-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for OT1/FiraSans-TOsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{FiraSans-TOsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{regular}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{scsl}{
+ <-> ssub * FiraSans-TOsF/thin/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{thin}{sl}{
+ <-> ssub * FiraSans-TOsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{semibold}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bold}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{light}{sl}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{heavy}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{scsl}{
+ <-> ssub * FiraSans-TOsF/book/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{book}{sl}{
+ <-> ssub * FiraSans-TOsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{scsl}{
+ <-> ssub * FiraSans-TOsF/medium/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{medium}{sl}{
+ <-> ssub * FiraSans-TOsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-sc-ot1
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{extralight}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{sc}{
+ <-> ssub * FiraSans-TOsF/ultralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{n}{
+ <-> ssub * FiraSans-TOsF/ultralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{it}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ul}{scit}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{sc}{
+ <-> ssub * FiraSans-TOsF/extralight/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{n}{
+ <-> ssub * FiraSans-TOsF/extralight/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{it}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{el}{scit}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{sl}{
+ <-> ssub * FiraSans-TOsF/light/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{sc}{
+ <-> ssub * FiraSans-TOsF/light/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{n}{
+ <-> ssub * FiraSans-TOsF/light/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{it}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{l}{scit}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{sc}{
+ <-> ssub * FiraSans-TOsF/regular/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{n}{
+ <-> ssub * FiraSans-TOsF/regular/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{it}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{m}{scit}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{sc}{
+ <-> ssub * FiraSans-TOsF/semibold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{n}{
+ <-> ssub * FiraSans-TOsF/semibold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{it}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{sb}{scit}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{sc}{
+ <-> ssub * FiraSans-TOsF/bold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{n}{
+ <-> ssub * FiraSans-TOsF/bold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{it}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{b}{scit}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{sc}{
+ <-> ssub * FiraSans-TOsF/extrabold/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{n}{
+ <-> ssub * FiraSans-TOsF/extrabold/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{it}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{eb}{scit}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{sc}{
+ <-> ssub * FiraSans-TOsF/heavy/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{n}{
+ <-> ssub * FiraSans-TOsF/heavy/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{it}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{ub}{scit}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{n}{
+ <-> ssub * FiraSans-TOsF/b/n
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{sc}{
+ <-> ssub * FiraSans-TOsF/b/sc
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{scsl}{
+ <-> ssub * FiraSans-TOsF/b/scsl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{sl}{
+ <-> ssub * FiraSans-TOsF/b/sl
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{it}{
+ <-> ssub * FiraSans-TOsF/b/it
+}{}
+
+\DeclareFontShape{OT1}{FiraSans-TOsF}{bx}{scit}{
+ <-> ssub * FiraSans-TOsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraMono-Sup.fd b/fonts/fira/latex/T1FiraMono-Sup.fd
new file mode 100644
index 0000000000..169ecdc07f
--- /dev/null
+++ b/fonts/fira/latex/T1FiraMono-Sup.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraMono-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraMono-Sup.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraMono-Sup}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraMono-Sup}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{regular}{it}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bold}{it}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraMono-Sup}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{medium}{it}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraMono-Sup}{m}{n}{
+ <-> ssub * FiraMono-Sup/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{m}{sl}{
+ <-> ssub * FiraMono-Sup/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{m}{it}{
+ <-> ssub * FiraMono-Sup/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{T1}{FiraMono-Sup}{sb}{n}{
+ <-> ssub * FiraMono-Sup/medium/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{sb}{sl}{
+ <-> ssub * FiraMono-Sup/medium/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{sb}{it}{
+ <-> ssub * FiraMono-Sup/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraMono-Sup}{b}{n}{
+ <-> ssub * FiraMono-Sup/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{b}{sl}{
+ <-> ssub * FiraMono-Sup/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{b}{it}{
+ <-> ssub * FiraMono-Sup/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bx}{sl}{
+ <-> ssub * FiraMono-Sup/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bx}{n}{
+ <-> ssub * FiraMono-Sup/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-Sup}{bx}{it}{
+ <-> ssub * FiraMono-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraMono-TLF.fd b/fonts/fira/latex/T1FiraMono-TLF.fd
new file mode 100644
index 0000000000..7ad4a1d9b0
--- /dev/null
+++ b/fonts/fira/latex/T1FiraMono-TLF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraMono-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraMono-TLF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraMono-TLF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraMono-TLF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{regular}{it}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bold}{it}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraMono-TLF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{medium}{it}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraMono-TLF}{m}{n}{
+ <-> ssub * FiraMono-TLF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{m}{sl}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{m}{it}{
+ <-> ssub * FiraMono-TLF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{T1}{FiraMono-TLF}{sb}{n}{
+ <-> ssub * FiraMono-TLF/medium/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{sb}{sl}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{sb}{it}{
+ <-> ssub * FiraMono-TLF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraMono-TLF}{b}{n}{
+ <-> ssub * FiraMono-TLF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{b}{sl}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{b}{it}{
+ <-> ssub * FiraMono-TLF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bx}{sl}{
+ <-> ssub * FiraMono-TLF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bx}{n}{
+ <-> ssub * FiraMono-TLF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TLF}{bx}{it}{
+ <-> ssub * FiraMono-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraMono-TOsF.fd b/fonts/fira/latex/T1FiraMono-TOsF.fd
new file mode 100644
index 0000000000..13c83c9852
--- /dev/null
+++ b/fonts/fira/latex/T1FiraMono-TOsF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraMono-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraMono-TOsF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraMono-TOsF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{regular}{it}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bold}{it}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{medium}{it}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{m}{n}{
+ <-> ssub * FiraMono-TOsF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{m}{sl}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{m}{it}{
+ <-> ssub * FiraMono-TOsF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{sb}{n}{
+ <-> ssub * FiraMono-TOsF/medium/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{sb}{sl}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{sb}{it}{
+ <-> ssub * FiraMono-TOsF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{b}{n}{
+ <-> ssub * FiraMono-TOsF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{b}{sl}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{b}{it}{
+ <-> ssub * FiraMono-TOsF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bx}{sl}{
+ <-> ssub * FiraMono-TOsF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bx}{n}{
+ <-> ssub * FiraMono-TOsF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraMono-TOsF}{bx}{it}{
+ <-> ssub * FiraMono-TOsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraSans-LF.fd b/fonts/fira/latex/T1FiraSans-LF.fd
new file mode 100644
index 0000000000..1b5a3bf02e
--- /dev/null
+++ b/fonts/fira/latex/T1FiraSans-LF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraSans-LF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraSans-LF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraSans-LF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{regular}{sl}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{scsl}{
+ <-> ssub * FiraSans-LF/thin/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{thin}{sl}{
+ <-> ssub * FiraSans-LF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{semibold}{sl}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bold}{sl}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{scsl}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{light}{sl}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extrabold}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{heavy}{sl}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{scsl}{
+ <-> ssub * FiraSans-LF/book/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{book}{sl}{
+ <-> ssub * FiraSans-LF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{scsl}{
+ <-> ssub * FiraSans-LF/medium/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{medium}{sl}{
+ <-> ssub * FiraSans-LF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ultralight}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{extralight}{sl}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{scsl}{
+ <-> ssub * FiraSans-LF/ultralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{sc}{
+ <-> ssub * FiraSans-LF/ultralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{n}{
+ <-> ssub * FiraSans-LF/ultralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{it}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ul}{scit}{
+ <-> ssub * FiraSans-LF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{sl}{
+ <-> ssub * FiraSans-LF/extralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{scsl}{
+ <-> ssub * FiraSans-LF/extralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{sc}{
+ <-> ssub * FiraSans-LF/extralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{n}{
+ <-> ssub * FiraSans-LF/extralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{it}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{el}{scit}{
+ <-> ssub * FiraSans-LF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{sl}{
+ <-> ssub * FiraSans-LF/light/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{scsl}{
+ <-> ssub * FiraSans-LF/light/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{sc}{
+ <-> ssub * FiraSans-LF/light/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{n}{
+ <-> ssub * FiraSans-LF/light/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{it}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{l}{scit}{
+ <-> ssub * FiraSans-LF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{sl}{
+ <-> ssub * FiraSans-LF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{scsl}{
+ <-> ssub * FiraSans-LF/regular/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{sc}{
+ <-> ssub * FiraSans-LF/regular/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{n}{
+ <-> ssub * FiraSans-LF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{it}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{m}{scit}{
+ <-> ssub * FiraSans-LF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{sl}{
+ <-> ssub * FiraSans-LF/semibold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{scsl}{
+ <-> ssub * FiraSans-LF/semibold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{sc}{
+ <-> ssub * FiraSans-LF/semibold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{n}{
+ <-> ssub * FiraSans-LF/semibold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{it}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{sb}{scit}{
+ <-> ssub * FiraSans-LF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{sl}{
+ <-> ssub * FiraSans-LF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{scsl}{
+ <-> ssub * FiraSans-LF/bold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{sc}{
+ <-> ssub * FiraSans-LF/bold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{n}{
+ <-> ssub * FiraSans-LF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{it}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{b}{scit}{
+ <-> ssub * FiraSans-LF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{scsl}{
+ <-> ssub * FiraSans-LF/extrabold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{sc}{
+ <-> ssub * FiraSans-LF/extrabold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{n}{
+ <-> ssub * FiraSans-LF/extrabold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{it}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{eb}{scit}{
+ <-> ssub * FiraSans-LF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{sl}{
+ <-> ssub * FiraSans-LF/heavy/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{scsl}{
+ <-> ssub * FiraSans-LF/heavy/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{sc}{
+ <-> ssub * FiraSans-LF/heavy/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{n}{
+ <-> ssub * FiraSans-LF/heavy/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{it}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{ub}{scit}{
+ <-> ssub * FiraSans-LF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{n}{
+ <-> ssub * FiraSans-LF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{sc}{
+ <-> ssub * FiraSans-LF/b/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{scsl}{
+ <-> ssub * FiraSans-LF/b/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{sl}{
+ <-> ssub * FiraSans-LF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{it}{
+ <-> ssub * FiraSans-LF/b/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-LF}{bx}{scit}{
+ <-> ssub * FiraSans-LF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraSans-OsF.fd b/fonts/fira/latex/T1FiraSans-OsF.fd
new file mode 100644
index 0000000000..8bef78c5f1
--- /dev/null
+++ b/fonts/fira/latex/T1FiraSans-OsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraSans-OsF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraSans-OsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraSans-OsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{regular}{sl}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{scsl}{
+ <-> ssub * FiraSans-OsF/thin/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{thin}{sl}{
+ <-> ssub * FiraSans-OsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{semibold}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bold}{sl}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{light}{sl}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{heavy}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{scsl}{
+ <-> ssub * FiraSans-OsF/book/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{book}{sl}{
+ <-> ssub * FiraSans-OsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{scsl}{
+ <-> ssub * FiraSans-OsF/medium/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{medium}{sl}{
+ <-> ssub * FiraSans-OsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{extralight}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{scsl}{
+ <-> ssub * FiraSans-OsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{sc}{
+ <-> ssub * FiraSans-OsF/ultralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{n}{
+ <-> ssub * FiraSans-OsF/ultralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{it}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ul}{scit}{
+ <-> ssub * FiraSans-OsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{scsl}{
+ <-> ssub * FiraSans-OsF/extralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{sc}{
+ <-> ssub * FiraSans-OsF/extralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{n}{
+ <-> ssub * FiraSans-OsF/extralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{it}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{el}{scit}{
+ <-> ssub * FiraSans-OsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{sl}{
+ <-> ssub * FiraSans-OsF/light/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{scsl}{
+ <-> ssub * FiraSans-OsF/light/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{sc}{
+ <-> ssub * FiraSans-OsF/light/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{n}{
+ <-> ssub * FiraSans-OsF/light/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{it}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{l}{scit}{
+ <-> ssub * FiraSans-OsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{sl}{
+ <-> ssub * FiraSans-OsF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{scsl}{
+ <-> ssub * FiraSans-OsF/regular/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{sc}{
+ <-> ssub * FiraSans-OsF/regular/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{n}{
+ <-> ssub * FiraSans-OsF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{it}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{m}{scit}{
+ <-> ssub * FiraSans-OsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{scsl}{
+ <-> ssub * FiraSans-OsF/semibold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{sc}{
+ <-> ssub * FiraSans-OsF/semibold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{n}{
+ <-> ssub * FiraSans-OsF/semibold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{it}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{sb}{scit}{
+ <-> ssub * FiraSans-OsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{sl}{
+ <-> ssub * FiraSans-OsF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{scsl}{
+ <-> ssub * FiraSans-OsF/bold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{sc}{
+ <-> ssub * FiraSans-OsF/bold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{n}{
+ <-> ssub * FiraSans-OsF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{it}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{b}{scit}{
+ <-> ssub * FiraSans-OsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{scsl}{
+ <-> ssub * FiraSans-OsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{sc}{
+ <-> ssub * FiraSans-OsF/extrabold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{n}{
+ <-> ssub * FiraSans-OsF/extrabold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{it}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{eb}{scit}{
+ <-> ssub * FiraSans-OsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{scsl}{
+ <-> ssub * FiraSans-OsF/heavy/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{sc}{
+ <-> ssub * FiraSans-OsF/heavy/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{n}{
+ <-> ssub * FiraSans-OsF/heavy/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{it}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{ub}{scit}{
+ <-> ssub * FiraSans-OsF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{n}{
+ <-> ssub * FiraSans-OsF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{sc}{
+ <-> ssub * FiraSans-OsF/b/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{scsl}{
+ <-> ssub * FiraSans-OsF/b/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{sl}{
+ <-> ssub * FiraSans-OsF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{it}{
+ <-> ssub * FiraSans-OsF/b/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-OsF}{bx}{scit}{
+ <-> ssub * FiraSans-OsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraSans-Sup.fd b/fonts/fira/latex/T1FiraSans-Sup.fd
new file mode 100644
index 0000000000..70b08049d7
--- /dev/null
+++ b/fonts/fira/latex/T1FiraSans-Sup.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraSans-Sup.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraSans-Sup.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraSans-Sup}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{regular}{sl}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{thin}{sl}{
+ <-> ssub * FiraSans-Sup/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{semibold}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bold}{sl}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{light}{sl}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extrabold}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{heavy}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{book}{sl}{
+ <-> ssub * FiraSans-Sup/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{medium}{sl}{
+ <-> ssub * FiraSans-Sup/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ultralight}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-sup-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{extralight}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ul}{sl}{
+ <-> ssub * FiraSans-Sup/ultralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ul}{n}{
+ <-> ssub * FiraSans-Sup/ultralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ul}{it}{
+ <-> ssub * FiraSans-Sup/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{T1}{FiraSans-Sup}{el}{sl}{
+ <-> ssub * FiraSans-Sup/extralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{el}{n}{
+ <-> ssub * FiraSans-Sup/extralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{el}{it}{
+ <-> ssub * FiraSans-Sup/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{T1}{FiraSans-Sup}{l}{sl}{
+ <-> ssub * FiraSans-Sup/light/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{l}{n}{
+ <-> ssub * FiraSans-Sup/light/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{l}{it}{
+ <-> ssub * FiraSans-Sup/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraSans-Sup}{m}{sl}{
+ <-> ssub * FiraSans-Sup/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{m}{n}{
+ <-> ssub * FiraSans-Sup/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{m}{it}{
+ <-> ssub * FiraSans-Sup/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{T1}{FiraSans-Sup}{sb}{sl}{
+ <-> ssub * FiraSans-Sup/semibold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{sb}{n}{
+ <-> ssub * FiraSans-Sup/semibold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{sb}{it}{
+ <-> ssub * FiraSans-Sup/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraSans-Sup}{b}{sl}{
+ <-> ssub * FiraSans-Sup/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{b}{n}{
+ <-> ssub * FiraSans-Sup/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{b}{it}{
+ <-> ssub * FiraSans-Sup/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{T1}{FiraSans-Sup}{eb}{sl}{
+ <-> ssub * FiraSans-Sup/extrabold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{eb}{n}{
+ <-> ssub * FiraSans-Sup/extrabold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{eb}{it}{
+ <-> ssub * FiraSans-Sup/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ub}{sl}{
+ <-> ssub * FiraSans-Sup/heavy/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ub}{n}{
+ <-> ssub * FiraSans-Sup/heavy/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{ub}{it}{
+ <-> ssub * FiraSans-Sup/heavy/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bx}{n}{
+ <-> ssub * FiraSans-Sup/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bx}{sl}{
+ <-> ssub * FiraSans-Sup/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-Sup}{bx}{it}{
+ <-> ssub * FiraSans-Sup/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraSans-TLF.fd b/fonts/fira/latex/T1FiraSans-TLF.fd
new file mode 100644
index 0000000000..8b86191905
--- /dev/null
+++ b/fonts/fira/latex/T1FiraSans-TLF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraSans-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraSans-TLF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraSans-TLF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{regular}{sl}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{scsl}{
+ <-> ssub * FiraSans-TLF/thin/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{thin}{sl}{
+ <-> ssub * FiraSans-TLF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{semibold}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bold}{sl}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{light}{sl}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{heavy}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{scsl}{
+ <-> ssub * FiraSans-TLF/book/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{book}{sl}{
+ <-> ssub * FiraSans-TLF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{scsl}{
+ <-> ssub * FiraSans-TLF/medium/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{medium}{sl}{
+ <-> ssub * FiraSans-TLF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{extralight}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{scsl}{
+ <-> ssub * FiraSans-TLF/ultralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{sc}{
+ <-> ssub * FiraSans-TLF/ultralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{n}{
+ <-> ssub * FiraSans-TLF/ultralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{it}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ul}{scit}{
+ <-> ssub * FiraSans-TLF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{scsl}{
+ <-> ssub * FiraSans-TLF/extralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{sc}{
+ <-> ssub * FiraSans-TLF/extralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{n}{
+ <-> ssub * FiraSans-TLF/extralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{it}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{el}{scit}{
+ <-> ssub * FiraSans-TLF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{sl}{
+ <-> ssub * FiraSans-TLF/light/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{scsl}{
+ <-> ssub * FiraSans-TLF/light/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{sc}{
+ <-> ssub * FiraSans-TLF/light/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{n}{
+ <-> ssub * FiraSans-TLF/light/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{it}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{l}{scit}{
+ <-> ssub * FiraSans-TLF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{sl}{
+ <-> ssub * FiraSans-TLF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{scsl}{
+ <-> ssub * FiraSans-TLF/regular/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{sc}{
+ <-> ssub * FiraSans-TLF/regular/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{n}{
+ <-> ssub * FiraSans-TLF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{it}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{m}{scit}{
+ <-> ssub * FiraSans-TLF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{scsl}{
+ <-> ssub * FiraSans-TLF/semibold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{sc}{
+ <-> ssub * FiraSans-TLF/semibold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{n}{
+ <-> ssub * FiraSans-TLF/semibold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{it}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{sb}{scit}{
+ <-> ssub * FiraSans-TLF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{sl}{
+ <-> ssub * FiraSans-TLF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{scsl}{
+ <-> ssub * FiraSans-TLF/bold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{sc}{
+ <-> ssub * FiraSans-TLF/bold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{n}{
+ <-> ssub * FiraSans-TLF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{it}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{b}{scit}{
+ <-> ssub * FiraSans-TLF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{scsl}{
+ <-> ssub * FiraSans-TLF/extrabold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{sc}{
+ <-> ssub * FiraSans-TLF/extrabold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{n}{
+ <-> ssub * FiraSans-TLF/extrabold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{it}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{eb}{scit}{
+ <-> ssub * FiraSans-TLF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{scsl}{
+ <-> ssub * FiraSans-TLF/heavy/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{sc}{
+ <-> ssub * FiraSans-TLF/heavy/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{n}{
+ <-> ssub * FiraSans-TLF/heavy/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{it}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{ub}{scit}{
+ <-> ssub * FiraSans-TLF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{n}{
+ <-> ssub * FiraSans-TLF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{sc}{
+ <-> ssub * FiraSans-TLF/b/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{scsl}{
+ <-> ssub * FiraSans-TLF/b/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{sl}{
+ <-> ssub * FiraSans-TLF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{it}{
+ <-> ssub * FiraSans-TLF/b/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TLF}{bx}{scit}{
+ <-> ssub * FiraSans-TLF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/T1FiraSans-TOsF.fd b/fonts/fira/latex/T1FiraSans-TOsF.fd
new file mode 100644
index 0000000000..20dd7a1acb
--- /dev/null
+++ b/fonts/fira/latex/T1FiraSans-TOsF.fd
@@ -0,0 +1,554 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{T1FiraSans-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for T1/FiraSans-TOsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{FiraSans-TOsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{sc}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{scit}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{regular}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{sc}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{scit}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{scsl}{
+ <-> ssub * FiraSans-TOsF/thin/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{thin}{sl}{
+ <-> ssub * FiraSans-TOsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{sc}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{scit}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{semibold}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{sc}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{scit}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bold}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{sc}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{scit}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{light}{sl}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{sc}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{scit}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{heavy}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{sc}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{scit}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{scsl}{
+ <-> ssub * FiraSans-TOsF/book/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{book}{sl}{
+ <-> ssub * FiraSans-TOsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{sc}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{scit}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{scsl}{
+ <-> ssub * FiraSans-TOsF/medium/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{medium}{sl}{
+ <-> ssub * FiraSans-TOsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{sc}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{scit}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-sc-t1
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{extralight}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{scsl}{
+ <-> ssub * FiraSans-TOsF/ultralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{sc}{
+ <-> ssub * FiraSans-TOsF/ultralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{n}{
+ <-> ssub * FiraSans-TOsF/ultralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{it}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ul}{scit}{
+ <-> ssub * FiraSans-TOsF/ultralight/scit
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{scsl}{
+ <-> ssub * FiraSans-TOsF/extralight/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{sc}{
+ <-> ssub * FiraSans-TOsF/extralight/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{n}{
+ <-> ssub * FiraSans-TOsF/extralight/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{it}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{el}{scit}{
+ <-> ssub * FiraSans-TOsF/extralight/scit
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{sl}{
+ <-> ssub * FiraSans-TOsF/light/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{scsl}{
+ <-> ssub * FiraSans-TOsF/light/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{sc}{
+ <-> ssub * FiraSans-TOsF/light/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{n}{
+ <-> ssub * FiraSans-TOsF/light/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{it}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{l}{scit}{
+ <-> ssub * FiraSans-TOsF/light/scit
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{scsl}{
+ <-> ssub * FiraSans-TOsF/regular/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{sc}{
+ <-> ssub * FiraSans-TOsF/regular/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{n}{
+ <-> ssub * FiraSans-TOsF/regular/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{it}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{m}{scit}{
+ <-> ssub * FiraSans-TOsF/regular/scit
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{scsl}{
+ <-> ssub * FiraSans-TOsF/semibold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{sc}{
+ <-> ssub * FiraSans-TOsF/semibold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{n}{
+ <-> ssub * FiraSans-TOsF/semibold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{it}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{sb}{scit}{
+ <-> ssub * FiraSans-TOsF/semibold/scit
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{scsl}{
+ <-> ssub * FiraSans-TOsF/bold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{sc}{
+ <-> ssub * FiraSans-TOsF/bold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{n}{
+ <-> ssub * FiraSans-TOsF/bold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{it}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{b}{scit}{
+ <-> ssub * FiraSans-TOsF/bold/scit
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{scsl}{
+ <-> ssub * FiraSans-TOsF/extrabold/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{sc}{
+ <-> ssub * FiraSans-TOsF/extrabold/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{n}{
+ <-> ssub * FiraSans-TOsF/extrabold/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{it}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{eb}{scit}{
+ <-> ssub * FiraSans-TOsF/extrabold/scit
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{scsl}{
+ <-> ssub * FiraSans-TOsF/heavy/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{sc}{
+ <-> ssub * FiraSans-TOsF/heavy/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{n}{
+ <-> ssub * FiraSans-TOsF/heavy/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{it}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{ub}{scit}{
+ <-> ssub * FiraSans-TOsF/heavy/scit
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{n}{
+ <-> ssub * FiraSans-TOsF/b/n
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{sc}{
+ <-> ssub * FiraSans-TOsF/b/sc
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{scsl}{
+ <-> ssub * FiraSans-TOsF/b/scsl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{sl}{
+ <-> ssub * FiraSans-TOsF/b/sl
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{it}{
+ <-> ssub * FiraSans-TOsF/b/it
+}{}
+
+\DeclareFontShape{T1}{FiraSans-TOsF}{bx}{scit}{
+ <-> ssub * FiraSans-TOsF/b/scit
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraMono-TLF.fd b/fonts/fira/latex/TS1FiraMono-TLF.fd
new file mode 100644
index 0000000000..388f791b5e
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraMono-TLF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraMono-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraMono-TLF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraMono-TLF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{regular}{it}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bold}{it}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{medium}{it}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{m}{n}{
+ <-> ssub * FiraMono-TLF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{m}{sl}{
+ <-> ssub * FiraMono-TLF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{m}{it}{
+ <-> ssub * FiraMono-TLF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{sb}{n}{
+ <-> ssub * FiraMono-TLF/medium/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{sb}{sl}{
+ <-> ssub * FiraMono-TLF/medium/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{sb}{it}{
+ <-> ssub * FiraMono-TLF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{b}{n}{
+ <-> ssub * FiraMono-TLF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{b}{sl}{
+ <-> ssub * FiraMono-TLF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{b}{it}{
+ <-> ssub * FiraMono-TLF/bold/it
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bx}{sl}{
+ <-> ssub * FiraMono-TLF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bx}{n}{
+ <-> ssub * FiraMono-TLF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TLF}{bx}{it}{
+ <-> ssub * FiraMono-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraMono-TOsF.fd b/fonts/fira/latex/TS1FiraMono-TOsF.fd
new file mode 100644
index 0000000000..2705c4cbe8
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraMono-TOsF.fd
@@ -0,0 +1,119 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraMono-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraMono-TOsF.]
+
+\expandafter\ifx\csname FiraMono@scale\endcsname\relax
+ \let\FiraMono@@scale\@empty
+\else
+ \edef\FiraMono@@scale{s*[\csname FiraMono@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraMono-TOsF}{\hyphenchar\font=-1}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{regular}{n}{
+ <-> \FiraMono@@scale FiraMono-Regular-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{regular}{sl}{
+ <-> \FiraMono@@scale FiraMono-Oblique-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{regular}{it}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bold}{n}{
+ <-> \FiraMono@@scale FiraMono-Bold-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bold}{sl}{
+ <-> \FiraMono@@scale FiraMono-BoldOblique-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bold}{it}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{medium}{n}{
+ <-> \FiraMono@@scale FiraMono-Medium-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{medium}{sl}{
+ <-> \FiraMono@@scale FiraMono-MediumOblique-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{medium}{it}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{m}{n}{
+ <-> ssub * FiraMono-TOsF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{m}{sl}{
+ <-> ssub * FiraMono-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{m}{it}{
+ <-> ssub * FiraMono-TOsF/regular/it
+}{}
+
+
+% sb --> medium
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{sb}{n}{
+ <-> ssub * FiraMono-TOsF/medium/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{sb}{sl}{
+ <-> ssub * FiraMono-TOsF/medium/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{sb}{it}{
+ <-> ssub * FiraMono-TOsF/medium/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{b}{n}{
+ <-> ssub * FiraMono-TOsF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{b}{sl}{
+ <-> ssub * FiraMono-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{b}{it}{
+ <-> ssub * FiraMono-TOsF/bold/it
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bx}{sl}{
+ <-> ssub * FiraMono-TOsF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bx}{n}{
+ <-> ssub * FiraMono-TOsF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraMono-TOsF}{bx}{it}{
+ <-> ssub * FiraMono-TOsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraSans-LF.fd b/fonts/fira/latex/TS1FiraSans-LF.fd
new file mode 100644
index 0000000000..c4ff321b76
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraSans-LF.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraSans-LF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraSans-LF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraSans-LF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{regular}{sl}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{thin}{sl}{
+ <-> ssub * FiraSans-LF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{semibold}{sl}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bold}{sl}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{light}{sl}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extrabold}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{heavy}{sl}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{book}{sl}{
+ <-> ssub * FiraSans-LF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{medium}{sl}{
+ <-> ssub * FiraSans-LF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ultralight}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-lf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{extralight}{sl}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ul}{sl}{
+ <-> ssub * FiraSans-LF/ultralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ul}{n}{
+ <-> ssub * FiraSans-LF/ultralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ul}{it}{
+ <-> ssub * FiraSans-LF/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{TS1}{FiraSans-LF}{el}{sl}{
+ <-> ssub * FiraSans-LF/extralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{el}{n}{
+ <-> ssub * FiraSans-LF/extralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{el}{it}{
+ <-> ssub * FiraSans-LF/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{TS1}{FiraSans-LF}{l}{sl}{
+ <-> ssub * FiraSans-LF/light/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{l}{n}{
+ <-> ssub * FiraSans-LF/light/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{l}{it}{
+ <-> ssub * FiraSans-LF/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraSans-LF}{m}{sl}{
+ <-> ssub * FiraSans-LF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{m}{n}{
+ <-> ssub * FiraSans-LF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{m}{it}{
+ <-> ssub * FiraSans-LF/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{TS1}{FiraSans-LF}{sb}{sl}{
+ <-> ssub * FiraSans-LF/semibold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{sb}{n}{
+ <-> ssub * FiraSans-LF/semibold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{sb}{it}{
+ <-> ssub * FiraSans-LF/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraSans-LF}{b}{sl}{
+ <-> ssub * FiraSans-LF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{b}{n}{
+ <-> ssub * FiraSans-LF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{b}{it}{
+ <-> ssub * FiraSans-LF/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{TS1}{FiraSans-LF}{eb}{sl}{
+ <-> ssub * FiraSans-LF/extrabold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{eb}{n}{
+ <-> ssub * FiraSans-LF/extrabold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{eb}{it}{
+ <-> ssub * FiraSans-LF/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ub}{sl}{
+ <-> ssub * FiraSans-LF/heavy/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ub}{n}{
+ <-> ssub * FiraSans-LF/heavy/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{ub}{it}{
+ <-> ssub * FiraSans-LF/heavy/it
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bx}{n}{
+ <-> ssub * FiraSans-LF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bx}{sl}{
+ <-> ssub * FiraSans-LF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-LF}{bx}{it}{
+ <-> ssub * FiraSans-LF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraSans-OsF.fd b/fonts/fira/latex/TS1FiraSans-OsF.fd
new file mode 100644
index 0000000000..ef15d46ef5
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraSans-OsF.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraSans-OsF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraSans-OsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraSans-OsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{regular}{sl}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{thin}{sl}{
+ <-> ssub * FiraSans-OsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{semibold}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bold}{sl}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{light}{sl}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{heavy}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{book}{sl}{
+ <-> ssub * FiraSans-OsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{medium}{sl}{
+ <-> ssub * FiraSans-OsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-osf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{extralight}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ul}{sl}{
+ <-> ssub * FiraSans-OsF/ultralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ul}{n}{
+ <-> ssub * FiraSans-OsF/ultralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ul}{it}{
+ <-> ssub * FiraSans-OsF/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{el}{sl}{
+ <-> ssub * FiraSans-OsF/extralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{el}{n}{
+ <-> ssub * FiraSans-OsF/extralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{el}{it}{
+ <-> ssub * FiraSans-OsF/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{l}{sl}{
+ <-> ssub * FiraSans-OsF/light/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{l}{n}{
+ <-> ssub * FiraSans-OsF/light/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{l}{it}{
+ <-> ssub * FiraSans-OsF/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{m}{sl}{
+ <-> ssub * FiraSans-OsF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{m}{n}{
+ <-> ssub * FiraSans-OsF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{m}{it}{
+ <-> ssub * FiraSans-OsF/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{sb}{sl}{
+ <-> ssub * FiraSans-OsF/semibold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{sb}{n}{
+ <-> ssub * FiraSans-OsF/semibold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{sb}{it}{
+ <-> ssub * FiraSans-OsF/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{b}{sl}{
+ <-> ssub * FiraSans-OsF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{b}{n}{
+ <-> ssub * FiraSans-OsF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{b}{it}{
+ <-> ssub * FiraSans-OsF/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{eb}{sl}{
+ <-> ssub * FiraSans-OsF/extrabold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{eb}{n}{
+ <-> ssub * FiraSans-OsF/extrabold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{eb}{it}{
+ <-> ssub * FiraSans-OsF/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ub}{sl}{
+ <-> ssub * FiraSans-OsF/heavy/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ub}{n}{
+ <-> ssub * FiraSans-OsF/heavy/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{ub}{it}{
+ <-> ssub * FiraSans-OsF/heavy/it
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bx}{n}{
+ <-> ssub * FiraSans-OsF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bx}{sl}{
+ <-> ssub * FiraSans-OsF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-OsF}{bx}{it}{
+ <-> ssub * FiraSans-OsF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraSans-TLF.fd b/fonts/fira/latex/TS1FiraSans-TLF.fd
new file mode 100644
index 0000000000..2205fefcac
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraSans-TLF.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraSans-TLF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraSans-TLF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraSans-TLF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{regular}{sl}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{thin}{sl}{
+ <-> ssub * FiraSans-TLF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{semibold}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bold}{sl}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{light}{sl}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{heavy}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{book}{sl}{
+ <-> ssub * FiraSans-TLF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{medium}{sl}{
+ <-> ssub * FiraSans-TLF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tlf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{extralight}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ul}{sl}{
+ <-> ssub * FiraSans-TLF/ultralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ul}{n}{
+ <-> ssub * FiraSans-TLF/ultralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ul}{it}{
+ <-> ssub * FiraSans-TLF/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{el}{sl}{
+ <-> ssub * FiraSans-TLF/extralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{el}{n}{
+ <-> ssub * FiraSans-TLF/extralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{el}{it}{
+ <-> ssub * FiraSans-TLF/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{l}{sl}{
+ <-> ssub * FiraSans-TLF/light/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{l}{n}{
+ <-> ssub * FiraSans-TLF/light/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{l}{it}{
+ <-> ssub * FiraSans-TLF/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{m}{sl}{
+ <-> ssub * FiraSans-TLF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{m}{n}{
+ <-> ssub * FiraSans-TLF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{m}{it}{
+ <-> ssub * FiraSans-TLF/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{sb}{sl}{
+ <-> ssub * FiraSans-TLF/semibold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{sb}{n}{
+ <-> ssub * FiraSans-TLF/semibold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{sb}{it}{
+ <-> ssub * FiraSans-TLF/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{b}{sl}{
+ <-> ssub * FiraSans-TLF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{b}{n}{
+ <-> ssub * FiraSans-TLF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{b}{it}{
+ <-> ssub * FiraSans-TLF/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{eb}{sl}{
+ <-> ssub * FiraSans-TLF/extrabold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{eb}{n}{
+ <-> ssub * FiraSans-TLF/extrabold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{eb}{it}{
+ <-> ssub * FiraSans-TLF/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ub}{sl}{
+ <-> ssub * FiraSans-TLF/heavy/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ub}{n}{
+ <-> ssub * FiraSans-TLF/heavy/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{ub}{it}{
+ <-> ssub * FiraSans-TLF/heavy/it
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bx}{n}{
+ <-> ssub * FiraSans-TLF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bx}{sl}{
+ <-> ssub * FiraSans-TLF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TLF}{bx}{it}{
+ <-> ssub * FiraSans-TLF/b/it
+}{}
+
+\endinput
diff --git a/fonts/fira/latex/TS1FiraSans-TOsF.fd b/fonts/fira/latex/TS1FiraSans-TOsF.fd
new file mode 100644
index 0000000000..f9d3411ed3
--- /dev/null
+++ b/fonts/fira/latex/TS1FiraSans-TOsF.fd
@@ -0,0 +1,314 @@
+%% Generated by autoinst on 2019/06/04
+%%
+\ProvidesFile{TS1FiraSans-TOsF.fd}
+ [2019/06/04 (autoinst) Font definitions for TS1/FiraSans-TOsF.]
+
+\expandafter\ifx\csname FiraSans@scale\endcsname\relax
+ \let\FiraSans@@scale\@empty
+\else
+ \edef\FiraSans@@scale{s*[\csname FiraSans@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{FiraSans-TOsF}{}
+
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{regular}{n}{
+ <-> \FiraSans@@scale FiraSans-Regular-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{regular}{it}{
+ <-> \FiraSans@@scale FiraSans-Italic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{regular}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% ---- thin ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{thin}{n}{
+ <-> \FiraSans@@scale FiraSans-Thin-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{thin}{it}{
+ <-> \FiraSans@@scale FiraSans-ThinItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{thin}{sl}{
+ <-> ssub * FiraSans-TOsF/thin/it
+}{}
+
+
+% ---- semibold ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{semibold}{n}{
+ <-> \FiraSans@@scale FiraSans-SemiBold-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{semibold}{it}{
+ <-> \FiraSans@@scale FiraSans-SemiBoldItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{semibold}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bold}{n}{
+ <-> \FiraSans@@scale FiraSans-Bold-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bold}{it}{
+ <-> \FiraSans@@scale FiraSans-BoldItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bold}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% ---- light ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{light}{n}{
+ <-> \FiraSans@@scale FiraSans-Light-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{light}{it}{
+ <-> \FiraSans@@scale FiraSans-LightItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{light}{sl}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% ---- extrabold ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extrabold}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraBold-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extrabold}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraBoldItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extrabold}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ---- heavy ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{heavy}{n}{
+ <-> \FiraSans@@scale FiraSans-Heavy-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{heavy}{it}{
+ <-> \FiraSans@@scale FiraSans-HeavyItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{heavy}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+
+% ---- book ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{book}{n}{
+ <-> \FiraSans@@scale FiraSans-Book-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{book}{it}{
+ <-> \FiraSans@@scale FiraSans-BookItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{book}{sl}{
+ <-> ssub * FiraSans-TOsF/book/it
+}{}
+
+
+% ---- medium ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{medium}{n}{
+ <-> \FiraSans@@scale FiraSans-Medium-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{medium}{it}{
+ <-> \FiraSans@@scale FiraSans-MediumItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{medium}{sl}{
+ <-> ssub * FiraSans-TOsF/medium/it
+}{}
+
+
+% ---- ultralight ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ultralight}{n}{
+ <-> \FiraSans@@scale FiraSans-UltraLight-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ultralight}{it}{
+ <-> \FiraSans@@scale FiraSans-UltraLightItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ultralight}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% ---- extralight ----
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extralight}{n}{
+ <-> \FiraSans@@scale FiraSans-ExtraLight-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extralight}{it}{
+ <-> \FiraSans@@scale FiraSans-ExtraLightItalic-tosf-ts1
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{extralight}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% ul --> ultralight
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ul}{sl}{
+ <-> ssub * FiraSans-TOsF/ultralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ul}{n}{
+ <-> ssub * FiraSans-TOsF/ultralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ul}{it}{
+ <-> ssub * FiraSans-TOsF/ultralight/it
+}{}
+
+
+% el --> extralight
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{el}{sl}{
+ <-> ssub * FiraSans-TOsF/extralight/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{el}{n}{
+ <-> ssub * FiraSans-TOsF/extralight/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{el}{it}{
+ <-> ssub * FiraSans-TOsF/extralight/it
+}{}
+
+
+% l --> light
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{l}{sl}{
+ <-> ssub * FiraSans-TOsF/light/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{l}{n}{
+ <-> ssub * FiraSans-TOsF/light/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{l}{it}{
+ <-> ssub * FiraSans-TOsF/light/it
+}{}
+
+
+% m --> regular
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{m}{sl}{
+ <-> ssub * FiraSans-TOsF/regular/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{m}{n}{
+ <-> ssub * FiraSans-TOsF/regular/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{m}{it}{
+ <-> ssub * FiraSans-TOsF/regular/it
+}{}
+
+
+% sb --> semibold
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{sb}{sl}{
+ <-> ssub * FiraSans-TOsF/semibold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{sb}{n}{
+ <-> ssub * FiraSans-TOsF/semibold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{sb}{it}{
+ <-> ssub * FiraSans-TOsF/semibold/it
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{b}{sl}{
+ <-> ssub * FiraSans-TOsF/bold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{b}{n}{
+ <-> ssub * FiraSans-TOsF/bold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{b}{it}{
+ <-> ssub * FiraSans-TOsF/bold/it
+}{}
+
+
+% eb --> extrabold
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{eb}{sl}{
+ <-> ssub * FiraSans-TOsF/extrabold/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{eb}{n}{
+ <-> ssub * FiraSans-TOsF/extrabold/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{eb}{it}{
+ <-> ssub * FiraSans-TOsF/extrabold/it
+}{}
+
+
+% ub --> heavy
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ub}{sl}{
+ <-> ssub * FiraSans-TOsF/heavy/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ub}{n}{
+ <-> ssub * FiraSans-TOsF/heavy/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{ub}{it}{
+ <-> ssub * FiraSans-TOsF/heavy/it
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bx}{n}{
+ <-> ssub * FiraSans-TOsF/b/n
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bx}{sl}{
+ <-> ssub * FiraSans-TOsF/b/sl
+}{}
+
+\DeclareFontShape{TS1}{FiraSans-TOsF}{bx}{it}{
+ <-> ssub * FiraSans-TOsF/b/it
+}{}
+
+\endinput