+ if (name == "libertinus" || name == "libertinus-type1") {
+ bool sf = true;
+ bool tt = true;
+ bool rm = true;
+ bool osf = false;
+ string scalesf;
+ string scalett;
+ for (auto const & opt : allopts) {
+ if (opt == "rm" || opt == "serif") {
+ tt = false;
+ sf = false;
+ continue;
+ }
+ if (opt == "sf" || opt == "sans") {
+ tt = false;
+ rm = false;
+ continue;
+ }
+ if (opt == "tt=false" || opt == "mono=false") {
+ tt = false;
+ continue;
+ }
+ if (opt == "osf") {
+ osf = true;
+ continue;
+ }
+ if (opt == "scaleSF") {
+ scalesf = opt;
+ continue;
+ }
+ if (opt == "scaleTT") {
+ scalett = opt;
+ continue;
+ }
+ if (opt == "lining") {
+ h_font_roman_osf = "false";
+ continue;
+ }
+ if (!xopts.empty())
+ xopts += ", ";
+ xopts += opt;
+ }
+ if (rm) {
+ h_font_roman[0] = "libertinus";
+ if (osf)
+ h_font_roman_osf = "true";
+ else
+ h_font_roman_osf = "false";
+ }
+ if (sf) {
+ h_font_sans[0] = "LibertinusSans-LF";
+ if (osf)
+ h_font_sans_osf = "true";
+ else
+ h_font_sans_osf = "false";
+ if (!scalesf.empty())
+ scale_as_percentage(scalesf, h_font_sf_scale[0]);
+ }
+ if (tt) {
+ h_font_typewriter[0] = "LibertinusMono-TLF";
+ if (!scalett.empty())
+ scale_as_percentage(scalett, h_font_tt_scale[0]);
+ }
+ if (!xopts.empty())
+ h_font_roman_opts = xopts;
+ options.clear();
+ }
+