{ core, ... }: let inherit(core) indentation set; boldFont = { BoldFont = "*-Bold"; UprightFont = "*-Regular"; }; regularFont = { UprightFont = "*-Regular"; }; lightFont = { BoldFont = "*-Bold"; ItalicFont = "*-Light"; UprightFont = "*-Regular"; }; usualFont = { BoldFont = "*-Bold"; BoldItalicFont = "*-BoldItalic"; ItalicFont = "*-Italic"; UprightFont = "*-Regular"; }; defaultFontFeatures = fontName: { ... } @ features: [ "\\defaultfontfeatures[${fontName}]{" indentation.more ] ++ ( set.mapToList (key: value: "${key} = ${value},") ( { Path = "\\source/fonts/"; Extension = ".ttf"; } // features ) ) ++ [ indentation.less "}" ]; in [] ++ ( defaultFontFeatures "Arimo" usualFont ) ++ ( defaultFontFeatures "Cousine" usualFont ) ++ ( defaultFontFeatures "DejaVu Sans" regularFont ) ++ ( defaultFontFeatures "Liberation Mono" usualFont ) ++ ( defaultFontFeatures "Liberation Sans" usualFont ) ++ ( defaultFontFeatures "Liberation Serif" usualFont ) ++ ( defaultFontFeatures "Noto Sans" usualFont ) ++ ( defaultFontFeatures "Noto Serif" usualFont ) ++ ( defaultFontFeatures "Noto Color Emoji" regularFont ) ++ ( defaultFontFeatures "Noto Kufi Arabic" lightFont ) ++ ( defaultFontFeatures "Noto Music Regular" regularFont ) ++ ( defaultFontFeatures "Noto Naskh Arabic" boldFont ) ++ ( defaultFontFeatures "Noto Naskh Arabic UI" boldFont ) ++ ( defaultFontFeatures "Noto Nastaliq Urdu" boldFont ) ++ ( defaultFontFeatures "Noto Rashi Hebrew" lightFont ) ++ ( defaultFontFeatures "Noto Sans Adlam" boldFont ) ++ ( defaultFontFeatures "Noto Sans Adlam Unjoined" boldFont ) ++ ( defaultFontFeatures "Noto Sans Hebrew" lightFont ) ++ ( defaultFontFeatures "Noto Serif Hebrew" lightFont ) ++ ( defaultFontFeatures "Roboto" usualFont ) ++ ( defaultFontFeatures "Roboto Condensed" usualFont ) ++ ( defaultFontFeatures "Roboto Mono" usualFont ) ++ ( defaultFontFeatures "Roboto Slab" lightFont ) ++ ( defaultFontFeatures "Tinos" usualFont ) ++ ( defaultFontFeatures "unifont" regularFont ) ++ ( defaultFontFeatures "forkawesome" { UprightFont = "*-webfont"; } ) ++ ( defaultFontFeatures "Font-Awesome" { Extension = ".otf"; UprightFont = "*-6-Free-Regular-400"; ItalicFont = "*-6-Free-Solid-900"; SmallCapsFont = "*-6-Brands-Regular-400"; } ) ++ [ "\\newfontfamily{\\fontAwesome}{Font-Awesome}" "\\DeclareTextFontCommand{\\textFontAwesome}{\\fontAwesome}" "\\newfontfamily{\\forkAwesome}{forkawesome}" "\\DeclareTextFontCommand{\\textForkAwesome}{\\forkAwesome}" "\\def\\fullStop{\\foreignlanguage{british}{.}}" "\\def\\comma{\\foreignlanguage{british}{,}}" "\\setmainfont{Tinos}[]" "\\setsansfont{Roboto}[]" "\\setmonofont{Roboto Mono}[]" "\\setmathfont{latinmodern-math.otf}[]" "\\babelprovide[import]{british}" "\\babelprovide[import,main]{ngerman}" "\\babelfont{rm}{Tinos}" "\\babelfont{sf}{Roboto}" "\\babelfont{tt}{Roboto Mono}" "\\babelprovide[import]{arabic}" "\\babelfont[*arabic]{rm}[RawFeature=]{Noto Naskh Arabic}" "\\babelfont[*arabic]{sf}[RawFeature={fallback=NotoSansFallback}]{Noto Kufi Arabic}" "\\babelprovide[import]{greek}" "\\babelfont[greek]{rm}{Noto Serif}" "\\babelfont[greek]{sf}{Roboto}" "\\babelfont[greek]{tt}{Roboto}" "\\babelprovide[import]{hebrew}" "\\babelfont[*hebrew]{rm}{Noto Serif Hebrew}" "\\babelfont[*hebrew]{sf}{Noto Sans Hebrew}" "\\babelfont[*hebrew]{tt}{Noto Sans Hebrew}" #"\\babelprovide[import]{japanese}" #"\\babelfont[japanese]{rm}{Noto Serif Japanese}" #"\\babelfont[japanese]{sf}{Noto Sans Japanese}" #"\\babelfont[japanese]{tt}{Noto Sans Japanese}" "\\renewcommand{\\familydefault}{\\sfdefault}" ]