static HELVETICA_WIDTHS: &[(&str, f64)] = &[
("A", 667.0),
("AE", 1000.0),
("Aacute", 667.0),
("Abreve", 667.0),
("Acircumflex", 667.0),
("Adieresis", 667.0),
("Agrave", 667.0),
("Amacron", 667.0),
("Aogonek", 667.0),
("Aring", 667.0),
("Atilde", 667.0),
("B", 667.0),
("C", 722.0),
("Cacute", 722.0),
("Ccaron", 722.0),
("Ccedilla", 722.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 556.0),
("F", 611.0),
("G", 778.0),
("Gbreve", 778.0),
("Gcommaaccent", 778.0),
("H", 722.0),
("I", 278.0),
("Iacute", 278.0),
("Icircumflex", 278.0),
("Idieresis", 278.0),
("Idotaccent", 278.0),
("Igrave", 278.0),
("Imacron", 278.0),
("Iogonek", 278.0),
("J", 500.0),
("K", 667.0),
("Kcommaaccent", 667.0),
("L", 556.0),
("Lacute", 556.0),
("Lcaron", 556.0),
("Lcommaaccent", 556.0),
("Lslash", 556.0),
("M", 833.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 778.0),
("OE", 1000.0),
("Oacute", 778.0),
("Ocircumflex", 778.0),
("Odieresis", 778.0),
("Ograve", 778.0),
("Ohungarumlaut", 778.0),
("Omacron", 778.0),
("Oslash", 778.0),
("Otilde", 778.0),
("P", 667.0),
("Q", 778.0),
("R", 722.0),
("Racute", 722.0),
("Rcaron", 722.0),
("Rcommaaccent", 722.0),
("S", 667.0),
("Sacute", 667.0),
("Scaron", 667.0),
("Scedilla", 667.0),
("Scommaaccent", 667.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 667.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 667.0),
("W", 944.0),
("X", 667.0),
("Y", 667.0),
("Yacute", 667.0),
("Ydieresis", 667.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 556.0),
("aacute", 556.0),
("abreve", 556.0),
("acircumflex", 556.0),
("acute", 333.0),
("adieresis", 556.0),
("ae", 889.0),
("agrave", 556.0),
("amacron", 556.0),
("ampersand", 667.0),
("aogonek", 556.0),
("aring", 556.0),
("asciicircum", 469.0),
("asciitilde", 584.0),
("asterisk", 389.0),
("at", 1015.0),
("atilde", 556.0),
("b", 556.0),
("backslash", 278.0),
("bar", 260.0),
("braceleft", 334.0),
("braceright", 334.0),
("bracketleft", 278.0),
("bracketright", 278.0),
("breve", 333.0),
("brokenbar", 260.0),
("bullet", 350.0),
("c", 500.0),
("cacute", 500.0),
("caron", 333.0),
("ccaron", 500.0),
("ccedilla", 500.0),
("cedilla", 333.0),
("cent", 556.0),
("circumflex", 333.0),
("colon", 278.0),
("comma", 278.0),
("commaaccent", 250.0),
("copyright", 737.0),
("currency", 556.0),
("d", 556.0),
("dagger", 556.0),
("daggerdbl", 556.0),
("dcaron", 643.0),
("dcroat", 556.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 584.0),
("dollar", 556.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 556.0),
("eacute", 556.0),
("ecaron", 556.0),
("ecircumflex", 556.0),
("edieresis", 556.0),
("edotaccent", 556.0),
("egrave", 556.0),
("eight", 556.0),
("ellipsis", 1000.0),
("emacron", 556.0),
("emdash", 1000.0),
("endash", 556.0),
("eogonek", 556.0),
("equal", 584.0),
("eth", 556.0),
("exclam", 278.0),
("exclamdown", 333.0),
("f", 278.0),
("fi", 500.0),
("five", 556.0),
("fl", 500.0),
("florin", 556.0),
("four", 556.0),
("fraction", 167.0),
("g", 556.0),
("gbreve", 556.0),
("gcommaaccent", 556.0),
("germandbls", 611.0),
("grave", 333.0),
("greater", 584.0),
("greaterequal", 549.0),
("guillemotleft", 556.0),
("guillemotright", 556.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 556.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 222.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 222.0),
("j", 222.0),
("k", 500.0),
("kcommaaccent", 500.0),
("l", 222.0),
("lacute", 222.0),
("lcaron", 299.0),
("lcommaaccent", 222.0),
("less", 584.0),
("lessequal", 549.0),
("logicalnot", 584.0),
("lozenge", 471.0),
("lslash", 222.0),
("m", 833.0),
("macron", 333.0),
("minus", 584.0),
("mu", 556.0),
("multiply", 584.0),
("n", 556.0),
("nacute", 556.0),
("ncaron", 556.0),
("ncommaaccent", 556.0),
("nine", 556.0),
("notequal", 549.0),
("ntilde", 556.0),
("numbersign", 556.0),
("o", 556.0),
("oacute", 556.0),
("ocircumflex", 556.0),
("odieresis", 556.0),
("oe", 944.0),
("ogonek", 333.0),
("ograve", 556.0),
("ohungarumlaut", 556.0),
("omacron", 556.0),
("one", 556.0),
("onehalf", 834.0),
("onequarter", 834.0),
("onesuperior", 333.0),
("ordfeminine", 370.0),
("ordmasculine", 365.0),
("oslash", 611.0),
("otilde", 556.0),
("p", 556.0),
("paragraph", 537.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 476.0),
("percent", 889.0),
("period", 278.0),
("periodcentered", 278.0),
("perthousand", 1000.0),
("plus", 584.0),
("plusminus", 584.0),
("q", 556.0),
("question", 556.0),
("questiondown", 611.0),
("quotedbl", 355.0),
("quotedblbase", 333.0),
("quotedblleft", 333.0),
("quotedblright", 333.0),
("quoteleft", 222.0),
("quoteright", 222.0),
("quotesinglbase", 222.0),
("quotesingle", 191.0),
("r", 333.0),
("racute", 333.0),
("radical", 453.0),
("rcaron", 333.0),
("rcommaaccent", 333.0),
("registered", 737.0),
("ring", 333.0),
("s", 500.0),
("sacute", 500.0),
("scaron", 500.0),
("scedilla", 500.0),
("scommaaccent", 500.0),
("section", 556.0),
("semicolon", 278.0),
("seven", 556.0),
("six", 556.0),
("slash", 278.0),
("space", 278.0),
("sterling", 556.0),
("summation", 600.0),
("t", 278.0),
("tcaron", 317.0),
("tcommaaccent", 278.0),
("thorn", 556.0),
("three", 556.0),
("threequarters", 834.0),
("threesuperior", 333.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 556.0),
("twosuperior", 333.0),
("u", 556.0),
("uacute", 556.0),
("ucircumflex", 556.0),
("udieresis", 556.0),
("ugrave", 556.0),
("uhungarumlaut", 556.0),
("umacron", 556.0),
("underscore", 556.0),
("uogonek", 556.0),
("uring", 556.0),
("v", 500.0),
("w", 722.0),
("x", 500.0),
("y", 500.0),
("yacute", 500.0),
("ydieresis", 500.0),
("yen", 556.0),
("z", 500.0),
("zacute", 500.0),
("zcaron", 500.0),
("zdotaccent", 500.0),
("zero", 556.0),
];
static HELVETICA_BOLD_WIDTHS: &[(&str, f64)] = &[
("A", 722.0),
("AE", 1000.0),
("Aacute", 722.0),
("Abreve", 722.0),
("Acircumflex", 722.0),
("Adieresis", 722.0),
("Agrave", 722.0),
("Amacron", 722.0),
("Aogonek", 722.0),
("Aring", 722.0),
("Atilde", 722.0),
("B", 722.0),
("C", 722.0),
("Cacute", 722.0),
("Ccaron", 722.0),
("Ccedilla", 722.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 556.0),
("F", 611.0),
("G", 778.0),
("Gbreve", 778.0),
("Gcommaaccent", 778.0),
("H", 722.0),
("I", 278.0),
("Iacute", 278.0),
("Icircumflex", 278.0),
("Idieresis", 278.0),
("Idotaccent", 278.0),
("Igrave", 278.0),
("Imacron", 278.0),
("Iogonek", 278.0),
("J", 556.0),
("K", 722.0),
("Kcommaaccent", 722.0),
("L", 611.0),
("Lacute", 611.0),
("Lcaron", 611.0),
("Lcommaaccent", 611.0),
("Lslash", 611.0),
("M", 833.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 778.0),
("OE", 1000.0),
("Oacute", 778.0),
("Ocircumflex", 778.0),
("Odieresis", 778.0),
("Ograve", 778.0),
("Ohungarumlaut", 778.0),
("Omacron", 778.0),
("Oslash", 778.0),
("Otilde", 778.0),
("P", 667.0),
("Q", 778.0),
("R", 722.0),
("Racute", 722.0),
("Rcaron", 722.0),
("Rcommaaccent", 722.0),
("S", 667.0),
("Sacute", 667.0),
("Scaron", 667.0),
("Scedilla", 667.0),
("Scommaaccent", 667.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 667.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 667.0),
("W", 944.0),
("X", 667.0),
("Y", 667.0),
("Yacute", 667.0),
("Ydieresis", 667.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 556.0),
("aacute", 556.0),
("abreve", 556.0),
("acircumflex", 556.0),
("acute", 333.0),
("adieresis", 556.0),
("ae", 889.0),
("agrave", 556.0),
("amacron", 556.0),
("ampersand", 722.0),
("aogonek", 556.0),
("aring", 556.0),
("asciicircum", 584.0),
("asciitilde", 584.0),
("asterisk", 389.0),
("at", 975.0),
("atilde", 556.0),
("b", 611.0),
("backslash", 278.0),
("bar", 280.0),
("braceleft", 389.0),
("braceright", 389.0),
("bracketleft", 333.0),
("bracketright", 333.0),
("breve", 333.0),
("brokenbar", 280.0),
("bullet", 350.0),
("c", 556.0),
("cacute", 556.0),
("caron", 333.0),
("ccaron", 556.0),
("ccedilla", 556.0),
("cedilla", 333.0),
("cent", 556.0),
("circumflex", 333.0),
("colon", 333.0),
("comma", 278.0),
("commaaccent", 250.0),
("copyright", 737.0),
("currency", 556.0),
("d", 611.0),
("dagger", 556.0),
("daggerdbl", 556.0),
("dcaron", 743.0),
("dcroat", 611.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 584.0),
("dollar", 556.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 556.0),
("eacute", 556.0),
("ecaron", 556.0),
("ecircumflex", 556.0),
("edieresis", 556.0),
("edotaccent", 556.0),
("egrave", 556.0),
("eight", 556.0),
("ellipsis", 1000.0),
("emacron", 556.0),
("emdash", 1000.0),
("endash", 556.0),
("eogonek", 556.0),
("equal", 584.0),
("eth", 611.0),
("exclam", 333.0),
("exclamdown", 333.0),
("f", 333.0),
("fi", 611.0),
("five", 556.0),
("fl", 611.0),
("florin", 556.0),
("four", 556.0),
("fraction", 167.0),
("g", 611.0),
("gbreve", 611.0),
("gcommaaccent", 611.0),
("germandbls", 611.0),
("grave", 333.0),
("greater", 584.0),
("greaterequal", 549.0),
("guillemotleft", 556.0),
("guillemotright", 556.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 611.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 278.0),
("k", 556.0),
("kcommaaccent", 556.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 400.0),
("lcommaaccent", 278.0),
("less", 584.0),
("lessequal", 549.0),
("logicalnot", 584.0),
("lozenge", 494.0),
("lslash", 278.0),
("m", 889.0),
("macron", 333.0),
("minus", 584.0),
("mu", 611.0),
("multiply", 584.0),
("n", 611.0),
("nacute", 611.0),
("ncaron", 611.0),
("ncommaaccent", 611.0),
("nine", 556.0),
("notequal", 549.0),
("ntilde", 611.0),
("numbersign", 556.0),
("o", 611.0),
("oacute", 611.0),
("ocircumflex", 611.0),
("odieresis", 611.0),
("oe", 944.0),
("ogonek", 333.0),
("ograve", 611.0),
("ohungarumlaut", 611.0),
("omacron", 611.0),
("one", 556.0),
("onehalf", 834.0),
("onequarter", 834.0),
("onesuperior", 333.0),
("ordfeminine", 370.0),
("ordmasculine", 365.0),
("oslash", 611.0),
("otilde", 611.0),
("p", 611.0),
("paragraph", 556.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 494.0),
("percent", 889.0),
("period", 278.0),
("periodcentered", 278.0),
("perthousand", 1000.0),
("plus", 584.0),
("plusminus", 584.0),
("q", 611.0),
("question", 611.0),
("questiondown", 611.0),
("quotedbl", 474.0),
("quotedblbase", 500.0),
("quotedblleft", 500.0),
("quotedblright", 500.0),
("quoteleft", 278.0),
("quoteright", 278.0),
("quotesinglbase", 278.0),
("quotesingle", 238.0),
("r", 389.0),
("racute", 389.0),
("radical", 549.0),
("rcaron", 389.0),
("rcommaaccent", 389.0),
("registered", 737.0),
("ring", 333.0),
("s", 556.0),
("sacute", 556.0),
("scaron", 556.0),
("scedilla", 556.0),
("scommaaccent", 556.0),
("section", 556.0),
("semicolon", 333.0),
("seven", 556.0),
("six", 556.0),
("slash", 278.0),
("space", 278.0),
("sterling", 556.0),
("summation", 600.0),
("t", 333.0),
("tcaron", 389.0),
("tcommaaccent", 333.0),
("thorn", 611.0),
("three", 556.0),
("threequarters", 834.0),
("threesuperior", 333.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 556.0),
("twosuperior", 333.0),
("u", 611.0),
("uacute", 611.0),
("ucircumflex", 611.0),
("udieresis", 611.0),
("ugrave", 611.0),
("uhungarumlaut", 611.0),
("umacron", 611.0),
("underscore", 556.0),
("uogonek", 611.0),
("uring", 611.0),
("v", 556.0),
("w", 778.0),
("x", 556.0),
("y", 556.0),
("yacute", 556.0),
("ydieresis", 556.0),
("yen", 556.0),
("z", 500.0),
("zacute", 500.0),
("zcaron", 500.0),
("zdotaccent", 500.0),
("zero", 556.0),
];
static HELVETICA_BOLDOBLIQUE_WIDTHS: &[(&str, f64)] = &[
("A", 722.0),
("AE", 1000.0),
("Aacute", 722.0),
("Abreve", 722.0),
("Acircumflex", 722.0),
("Adieresis", 722.0),
("Agrave", 722.0),
("Amacron", 722.0),
("Aogonek", 722.0),
("Aring", 722.0),
("Atilde", 722.0),
("B", 722.0),
("C", 722.0),
("Cacute", 722.0),
("Ccaron", 722.0),
("Ccedilla", 722.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 556.0),
("F", 611.0),
("G", 778.0),
("Gbreve", 778.0),
("Gcommaaccent", 778.0),
("H", 722.0),
("I", 278.0),
("Iacute", 278.0),
("Icircumflex", 278.0),
("Idieresis", 278.0),
("Idotaccent", 278.0),
("Igrave", 278.0),
("Imacron", 278.0),
("Iogonek", 278.0),
("J", 556.0),
("K", 722.0),
("Kcommaaccent", 722.0),
("L", 611.0),
("Lacute", 611.0),
("Lcaron", 611.0),
("Lcommaaccent", 611.0),
("Lslash", 611.0),
("M", 833.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 778.0),
("OE", 1000.0),
("Oacute", 778.0),
("Ocircumflex", 778.0),
("Odieresis", 778.0),
("Ograve", 778.0),
("Ohungarumlaut", 778.0),
("Omacron", 778.0),
("Oslash", 778.0),
("Otilde", 778.0),
("P", 667.0),
("Q", 778.0),
("R", 722.0),
("Racute", 722.0),
("Rcaron", 722.0),
("Rcommaaccent", 722.0),
("S", 667.0),
("Sacute", 667.0),
("Scaron", 667.0),
("Scedilla", 667.0),
("Scommaaccent", 667.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 667.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 667.0),
("W", 944.0),
("X", 667.0),
("Y", 667.0),
("Yacute", 667.0),
("Ydieresis", 667.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 556.0),
("aacute", 556.0),
("abreve", 556.0),
("acircumflex", 556.0),
("acute", 333.0),
("adieresis", 556.0),
("ae", 889.0),
("agrave", 556.0),
("amacron", 556.0),
("ampersand", 722.0),
("aogonek", 556.0),
("aring", 556.0),
("asciicircum", 584.0),
("asciitilde", 584.0),
("asterisk", 389.0),
("at", 975.0),
("atilde", 556.0),
("b", 611.0),
("backslash", 278.0),
("bar", 280.0),
("braceleft", 389.0),
("braceright", 389.0),
("bracketleft", 333.0),
("bracketright", 333.0),
("breve", 333.0),
("brokenbar", 280.0),
("bullet", 350.0),
("c", 556.0),
("cacute", 556.0),
("caron", 333.0),
("ccaron", 556.0),
("ccedilla", 556.0),
("cedilla", 333.0),
("cent", 556.0),
("circumflex", 333.0),
("colon", 333.0),
("comma", 278.0),
("commaaccent", 250.0),
("copyright", 737.0),
("currency", 556.0),
("d", 611.0),
("dagger", 556.0),
("daggerdbl", 556.0),
("dcaron", 743.0),
("dcroat", 611.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 584.0),
("dollar", 556.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 556.0),
("eacute", 556.0),
("ecaron", 556.0),
("ecircumflex", 556.0),
("edieresis", 556.0),
("edotaccent", 556.0),
("egrave", 556.0),
("eight", 556.0),
("ellipsis", 1000.0),
("emacron", 556.0),
("emdash", 1000.0),
("endash", 556.0),
("eogonek", 556.0),
("equal", 584.0),
("eth", 611.0),
("exclam", 333.0),
("exclamdown", 333.0),
("f", 333.0),
("fi", 611.0),
("five", 556.0),
("fl", 611.0),
("florin", 556.0),
("four", 556.0),
("fraction", 167.0),
("g", 611.0),
("gbreve", 611.0),
("gcommaaccent", 611.0),
("germandbls", 611.0),
("grave", 333.0),
("greater", 584.0),
("greaterequal", 549.0),
("guillemotleft", 556.0),
("guillemotright", 556.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 611.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 278.0),
("k", 556.0),
("kcommaaccent", 556.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 400.0),
("lcommaaccent", 278.0),
("less", 584.0),
("lessequal", 549.0),
("logicalnot", 584.0),
("lozenge", 494.0),
("lslash", 278.0),
("m", 889.0),
("macron", 333.0),
("minus", 584.0),
("mu", 611.0),
("multiply", 584.0),
("n", 611.0),
("nacute", 611.0),
("ncaron", 611.0),
("ncommaaccent", 611.0),
("nine", 556.0),
("notequal", 549.0),
("ntilde", 611.0),
("numbersign", 556.0),
("o", 611.0),
("oacute", 611.0),
("ocircumflex", 611.0),
("odieresis", 611.0),
("oe", 944.0),
("ogonek", 333.0),
("ograve", 611.0),
("ohungarumlaut", 611.0),
("omacron", 611.0),
("one", 556.0),
("onehalf", 834.0),
("onequarter", 834.0),
("onesuperior", 333.0),
("ordfeminine", 370.0),
("ordmasculine", 365.0),
("oslash", 611.0),
("otilde", 611.0),
("p", 611.0),
("paragraph", 556.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 494.0),
("percent", 889.0),
("period", 278.0),
("periodcentered", 278.0),
("perthousand", 1000.0),
("plus", 584.0),
("plusminus", 584.0),
("q", 611.0),
("question", 611.0),
("questiondown", 611.0),
("quotedbl", 474.0),
("quotedblbase", 500.0),
("quotedblleft", 500.0),
("quotedblright", 500.0),
("quoteleft", 278.0),
("quoteright", 278.0),
("quotesinglbase", 278.0),
("quotesingle", 238.0),
("r", 389.0),
("racute", 389.0),
("radical", 549.0),
("rcaron", 389.0),
("rcommaaccent", 389.0),
("registered", 737.0),
("ring", 333.0),
("s", 556.0),
("sacute", 556.0),
("scaron", 556.0),
("scedilla", 556.0),
("scommaaccent", 556.0),
("section", 556.0),
("semicolon", 333.0),
("seven", 556.0),
("six", 556.0),
("slash", 278.0),
("space", 278.0),
("sterling", 556.0),
("summation", 600.0),
("t", 333.0),
("tcaron", 389.0),
("tcommaaccent", 333.0),
("thorn", 611.0),
("three", 556.0),
("threequarters", 834.0),
("threesuperior", 333.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 556.0),
("twosuperior", 333.0),
("u", 611.0),
("uacute", 611.0),
("ucircumflex", 611.0),
("udieresis", 611.0),
("ugrave", 611.0),
("uhungarumlaut", 611.0),
("umacron", 611.0),
("underscore", 556.0),
("uogonek", 611.0),
("uring", 611.0),
("v", 556.0),
("w", 778.0),
("x", 556.0),
("y", 556.0),
("yacute", 556.0),
("ydieresis", 556.0),
("yen", 556.0),
("z", 500.0),
("zacute", 500.0),
("zcaron", 500.0),
("zdotaccent", 500.0),
("zero", 556.0),
];
static HELVETICA_OBLIQUE_WIDTHS: &[(&str, f64)] = &[
("A", 667.0),
("AE", 1000.0),
("Aacute", 667.0),
("Abreve", 667.0),
("Acircumflex", 667.0),
("Adieresis", 667.0),
("Agrave", 667.0),
("Amacron", 667.0),
("Aogonek", 667.0),
("Aring", 667.0),
("Atilde", 667.0),
("B", 667.0),
("C", 722.0),
("Cacute", 722.0),
("Ccaron", 722.0),
("Ccedilla", 722.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 556.0),
("F", 611.0),
("G", 778.0),
("Gbreve", 778.0),
("Gcommaaccent", 778.0),
("H", 722.0),
("I", 278.0),
("Iacute", 278.0),
("Icircumflex", 278.0),
("Idieresis", 278.0),
("Idotaccent", 278.0),
("Igrave", 278.0),
("Imacron", 278.0),
("Iogonek", 278.0),
("J", 500.0),
("K", 667.0),
("Kcommaaccent", 667.0),
("L", 556.0),
("Lacute", 556.0),
("Lcaron", 556.0),
("Lcommaaccent", 556.0),
("Lslash", 556.0),
("M", 833.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 778.0),
("OE", 1000.0),
("Oacute", 778.0),
("Ocircumflex", 778.0),
("Odieresis", 778.0),
("Ograve", 778.0),
("Ohungarumlaut", 778.0),
("Omacron", 778.0),
("Oslash", 778.0),
("Otilde", 778.0),
("P", 667.0),
("Q", 778.0),
("R", 722.0),
("Racute", 722.0),
("Rcaron", 722.0),
("Rcommaaccent", 722.0),
("S", 667.0),
("Sacute", 667.0),
("Scaron", 667.0),
("Scedilla", 667.0),
("Scommaaccent", 667.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 667.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 667.0),
("W", 944.0),
("X", 667.0),
("Y", 667.0),
("Yacute", 667.0),
("Ydieresis", 667.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 556.0),
("aacute", 556.0),
("abreve", 556.0),
("acircumflex", 556.0),
("acute", 333.0),
("adieresis", 556.0),
("ae", 889.0),
("agrave", 556.0),
("amacron", 556.0),
("ampersand", 667.0),
("aogonek", 556.0),
("aring", 556.0),
("asciicircum", 469.0),
("asciitilde", 584.0),
("asterisk", 389.0),
("at", 1015.0),
("atilde", 556.0),
("b", 556.0),
("backslash", 278.0),
("bar", 260.0),
("braceleft", 334.0),
("braceright", 334.0),
("bracketleft", 278.0),
("bracketright", 278.0),
("breve", 333.0),
("brokenbar", 260.0),
("bullet", 350.0),
("c", 500.0),
("cacute", 500.0),
("caron", 333.0),
("ccaron", 500.0),
("ccedilla", 500.0),
("cedilla", 333.0),
("cent", 556.0),
("circumflex", 333.0),
("colon", 278.0),
("comma", 278.0),
("commaaccent", 250.0),
("copyright", 737.0),
("currency", 556.0),
("d", 556.0),
("dagger", 556.0),
("daggerdbl", 556.0),
("dcaron", 643.0),
("dcroat", 556.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 584.0),
("dollar", 556.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 556.0),
("eacute", 556.0),
("ecaron", 556.0),
("ecircumflex", 556.0),
("edieresis", 556.0),
("edotaccent", 556.0),
("egrave", 556.0),
("eight", 556.0),
("ellipsis", 1000.0),
("emacron", 556.0),
("emdash", 1000.0),
("endash", 556.0),
("eogonek", 556.0),
("equal", 584.0),
("eth", 556.0),
("exclam", 278.0),
("exclamdown", 333.0),
("f", 278.0),
("fi", 500.0),
("five", 556.0),
("fl", 500.0),
("florin", 556.0),
("four", 556.0),
("fraction", 167.0),
("g", 556.0),
("gbreve", 556.0),
("gcommaaccent", 556.0),
("germandbls", 611.0),
("grave", 333.0),
("greater", 584.0),
("greaterequal", 549.0),
("guillemotleft", 556.0),
("guillemotright", 556.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 556.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 222.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 222.0),
("j", 222.0),
("k", 500.0),
("kcommaaccent", 500.0),
("l", 222.0),
("lacute", 222.0),
("lcaron", 299.0),
("lcommaaccent", 222.0),
("less", 584.0),
("lessequal", 549.0),
("logicalnot", 584.0),
("lozenge", 471.0),
("lslash", 222.0),
("m", 833.0),
("macron", 333.0),
("minus", 584.0),
("mu", 556.0),
("multiply", 584.0),
("n", 556.0),
("nacute", 556.0),
("ncaron", 556.0),
("ncommaaccent", 556.0),
("nine", 556.0),
("notequal", 549.0),
("ntilde", 556.0),
("numbersign", 556.0),
("o", 556.0),
("oacute", 556.0),
("ocircumflex", 556.0),
("odieresis", 556.0),
("oe", 944.0),
("ogonek", 333.0),
("ograve", 556.0),
("ohungarumlaut", 556.0),
("omacron", 556.0),
("one", 556.0),
("onehalf", 834.0),
("onequarter", 834.0),
("onesuperior", 333.0),
("ordfeminine", 370.0),
("ordmasculine", 365.0),
("oslash", 611.0),
("otilde", 556.0),
("p", 556.0),
("paragraph", 537.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 476.0),
("percent", 889.0),
("period", 278.0),
("periodcentered", 278.0),
("perthousand", 1000.0),
("plus", 584.0),
("plusminus", 584.0),
("q", 556.0),
("question", 556.0),
("questiondown", 611.0),
("quotedbl", 355.0),
("quotedblbase", 333.0),
("quotedblleft", 333.0),
("quotedblright", 333.0),
("quoteleft", 222.0),
("quoteright", 222.0),
("quotesinglbase", 222.0),
("quotesingle", 191.0),
("r", 333.0),
("racute", 333.0),
("radical", 453.0),
("rcaron", 333.0),
("rcommaaccent", 333.0),
("registered", 737.0),
("ring", 333.0),
("s", 500.0),
("sacute", 500.0),
("scaron", 500.0),
("scedilla", 500.0),
("scommaaccent", 500.0),
("section", 556.0),
("semicolon", 278.0),
("seven", 556.0),
("six", 556.0),
("slash", 278.0),
("space", 278.0),
("sterling", 556.0),
("summation", 600.0),
("t", 278.0),
("tcaron", 317.0),
("tcommaaccent", 278.0),
("thorn", 556.0),
("three", 556.0),
("threequarters", 834.0),
("threesuperior", 333.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 556.0),
("twosuperior", 333.0),
("u", 556.0),
("uacute", 556.0),
("ucircumflex", 556.0),
("udieresis", 556.0),
("ugrave", 556.0),
("uhungarumlaut", 556.0),
("umacron", 556.0),
("underscore", 556.0),
("uogonek", 556.0),
("uring", 556.0),
("v", 500.0),
("w", 722.0),
("x", 500.0),
("y", 500.0),
("yacute", 500.0),
("ydieresis", 500.0),
("yen", 556.0),
("z", 500.0),
("zacute", 500.0),
("zcaron", 500.0),
("zdotaccent", 500.0),
("zero", 556.0),
];
static SYMBOL_WIDTHS: &[(&str, f64)] = &[
("Alpha", 722.0),
("Beta", 667.0),
("Chi", 722.0),
("Delta", 612.0),
("Epsilon", 611.0),
("Eta", 722.0),
("Euro", 750.0),
("Gamma", 603.0),
("Ifraktur", 686.0),
("Iota", 333.0),
("Kappa", 722.0),
("Lambda", 686.0),
("Mu", 889.0),
("Nu", 722.0),
("Omega", 768.0),
("Omicron", 722.0),
("Phi", 763.0),
("Pi", 768.0),
("Psi", 795.0),
("Rfraktur", 795.0),
("Rho", 556.0),
("Sigma", 592.0),
("Tau", 611.0),
("Theta", 741.0),
("Upsilon", 690.0),
("Upsilon1", 620.0),
("Xi", 645.0),
("Zeta", 611.0),
("aleph", 823.0),
("alpha", 631.0),
("ampersand", 778.0),
("angle", 768.0),
("angleleft", 329.0),
("angleright", 329.0),
("apple", 790.0),
("approxequal", 549.0),
("arrowboth", 1042.0),
("arrowdblboth", 1042.0),
("arrowdbldown", 603.0),
("arrowdblleft", 987.0),
("arrowdblright", 987.0),
("arrowdblup", 603.0),
("arrowdown", 603.0),
("arrowhorizex", 1000.0),
("arrowleft", 987.0),
("arrowright", 987.0),
("arrowup", 603.0),
("arrowvertex", 603.0),
("asteriskmath", 500.0),
("bar", 200.0),
("beta", 549.0),
("braceex", 494.0),
("braceleft", 480.0),
("braceleftbt", 494.0),
("braceleftmid", 494.0),
("bracelefttp", 494.0),
("braceright", 480.0),
("bracerightbt", 494.0),
("bracerightmid", 494.0),
("bracerighttp", 494.0),
("bracketleft", 333.0),
("bracketleftbt", 384.0),
("bracketleftex", 384.0),
("bracketlefttp", 384.0),
("bracketright", 333.0),
("bracketrightbt", 384.0),
("bracketrightex", 384.0),
("bracketrighttp", 384.0),
("bullet", 460.0),
("carriagereturn", 658.0),
("chi", 549.0),
("circlemultiply", 768.0),
("circleplus", 768.0),
("club", 753.0),
("colon", 278.0),
("comma", 250.0),
("congruent", 549.0),
("copyrightsans", 790.0),
("copyrightserif", 790.0),
("degree", 400.0),
("delta", 494.0),
("diamond", 753.0),
("divide", 549.0),
("dotmath", 250.0),
("eight", 500.0),
("element", 713.0),
("ellipsis", 1000.0),
("emptyset", 823.0),
("epsilon", 439.0),
("equal", 549.0),
("equivalence", 549.0),
("eta", 603.0),
("exclam", 333.0),
("existential", 549.0),
("five", 500.0),
("florin", 500.0),
("four", 500.0),
("fraction", 167.0),
("gamma", 411.0),
("gradient", 713.0),
("greater", 549.0),
("greaterequal", 549.0),
("heart", 753.0),
("infinity", 713.0),
("integral", 274.0),
("integralbt", 686.0),
("integralex", 686.0),
("integraltp", 686.0),
("intersection", 768.0),
("iota", 329.0),
("kappa", 549.0),
("lambda", 549.0),
("less", 549.0),
("lessequal", 549.0),
("logicaland", 603.0),
("logicalnot", 713.0),
("logicalor", 603.0),
("lozenge", 494.0),
("minus", 549.0),
("minute", 247.0),
("mu", 576.0),
("multiply", 549.0),
("nine", 500.0),
("notelement", 713.0),
("notequal", 549.0),
("notsubset", 713.0),
("nu", 521.0),
("numbersign", 500.0),
("omega", 686.0),
("omega1", 713.0),
("omicron", 549.0),
("one", 500.0),
("parenleft", 333.0),
("parenleftbt", 384.0),
("parenleftex", 384.0),
("parenlefttp", 384.0),
("parenright", 333.0),
("parenrightbt", 384.0),
("parenrightex", 384.0),
("parenrighttp", 384.0),
("partialdiff", 494.0),
("percent", 833.0),
("period", 250.0),
("perpendicular", 658.0),
("phi", 521.0),
("phi1", 603.0),
("pi", 549.0),
("plus", 549.0),
("plusminus", 549.0),
("product", 823.0),
("propersubset", 713.0),
("propersuperset", 713.0),
("proportional", 713.0),
("psi", 686.0),
("question", 444.0),
("radical", 549.0),
("radicalex", 500.0),
("reflexsubset", 713.0),
("reflexsuperset", 713.0),
("registersans", 790.0),
("registerserif", 790.0),
("rho", 549.0),
("second", 411.0),
("semicolon", 278.0),
("seven", 500.0),
("sigma", 603.0),
("sigma1", 439.0),
("similar", 549.0),
("six", 500.0),
("slash", 278.0),
("space", 250.0),
("spade", 753.0),
("suchthat", 439.0),
("summation", 713.0),
("tau", 439.0),
("therefore", 863.0),
("theta", 521.0),
("theta1", 631.0),
("three", 500.0),
("trademarksans", 786.0),
("trademarkserif", 890.0),
("two", 500.0),
("underscore", 500.0),
("union", 768.0),
("universal", 713.0),
("upsilon", 576.0),
("weierstrass", 987.0),
("xi", 493.0),
("zero", 500.0),
("zeta", 494.0),
];
static TIMES_BOLD_WIDTHS: &[(&str, f64)] = &[
("A", 722.0),
("AE", 1000.0),
("Aacute", 722.0),
("Abreve", 722.0),
("Acircumflex", 722.0),
("Adieresis", 722.0),
("Agrave", 722.0),
("Amacron", 722.0),
("Aogonek", 722.0),
("Aring", 722.0),
("Atilde", 722.0),
("B", 667.0),
("C", 722.0),
("Cacute", 722.0),
("Ccaron", 722.0),
("Ccedilla", 722.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 500.0),
("F", 611.0),
("G", 778.0),
("Gbreve", 778.0),
("Gcommaaccent", 778.0),
("H", 778.0),
("I", 389.0),
("Iacute", 389.0),
("Icircumflex", 389.0),
("Idieresis", 389.0),
("Idotaccent", 389.0),
("Igrave", 389.0),
("Imacron", 389.0),
("Iogonek", 389.0),
("J", 500.0),
("K", 778.0),
("Kcommaaccent", 778.0),
("L", 667.0),
("Lacute", 667.0),
("Lcaron", 667.0),
("Lcommaaccent", 667.0),
("Lslash", 667.0),
("M", 944.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 778.0),
("OE", 1000.0),
("Oacute", 778.0),
("Ocircumflex", 778.0),
("Odieresis", 778.0),
("Ograve", 778.0),
("Ohungarumlaut", 778.0),
("Omacron", 778.0),
("Oslash", 778.0),
("Otilde", 778.0),
("P", 611.0),
("Q", 778.0),
("R", 722.0),
("Racute", 722.0),
("Rcaron", 722.0),
("Rcommaaccent", 722.0),
("S", 556.0),
("Sacute", 556.0),
("Scaron", 556.0),
("Scedilla", 556.0),
("Scommaaccent", 556.0),
("T", 667.0),
("Tcaron", 667.0),
("Tcommaaccent", 667.0),
("Thorn", 611.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 722.0),
("W", 1000.0),
("X", 722.0),
("Y", 722.0),
("Yacute", 722.0),
("Ydieresis", 722.0),
("Z", 667.0),
("Zacute", 667.0),
("Zcaron", 667.0),
("Zdotaccent", 667.0),
("a", 500.0),
("aacute", 500.0),
("abreve", 500.0),
("acircumflex", 500.0),
("acute", 333.0),
("adieresis", 500.0),
("ae", 722.0),
("agrave", 500.0),
("amacron", 500.0),
("ampersand", 833.0),
("aogonek", 500.0),
("aring", 500.0),
("asciicircum", 581.0),
("asciitilde", 520.0),
("asterisk", 500.0),
("at", 930.0),
("atilde", 500.0),
("b", 556.0),
("backslash", 278.0),
("bar", 220.0),
("braceleft", 394.0),
("braceright", 394.0),
("bracketleft", 333.0),
("bracketright", 333.0),
("breve", 333.0),
("brokenbar", 220.0),
("bullet", 350.0),
("c", 444.0),
("cacute", 444.0),
("caron", 333.0),
("ccaron", 444.0),
("ccedilla", 444.0),
("cedilla", 333.0),
("cent", 500.0),
("circumflex", 333.0),
("colon", 333.0),
("comma", 250.0),
("commaaccent", 250.0),
("copyright", 747.0),
("currency", 500.0),
("d", 556.0),
("dagger", 500.0),
("daggerdbl", 500.0),
("dcaron", 672.0),
("dcroat", 556.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 570.0),
("dollar", 500.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 444.0),
("eacute", 444.0),
("ecaron", 444.0),
("ecircumflex", 444.0),
("edieresis", 444.0),
("edotaccent", 444.0),
("egrave", 444.0),
("eight", 500.0),
("ellipsis", 1000.0),
("emacron", 444.0),
("emdash", 1000.0),
("endash", 500.0),
("eogonek", 444.0),
("equal", 570.0),
("eth", 500.0),
("exclam", 333.0),
("exclamdown", 333.0),
("f", 333.0),
("fi", 556.0),
("five", 500.0),
("fl", 556.0),
("florin", 500.0),
("four", 500.0),
("fraction", 167.0),
("g", 500.0),
("gbreve", 500.0),
("gcommaaccent", 500.0),
("germandbls", 556.0),
("grave", 333.0),
("greater", 570.0),
("greaterequal", 549.0),
("guillemotleft", 500.0),
("guillemotright", 500.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 556.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 333.0),
("k", 556.0),
("kcommaaccent", 556.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 394.0),
("lcommaaccent", 278.0),
("less", 570.0),
("lessequal", 549.0),
("logicalnot", 570.0),
("lozenge", 494.0),
("lslash", 278.0),
("m", 833.0),
("macron", 333.0),
("minus", 570.0),
("mu", 556.0),
("multiply", 570.0),
("n", 556.0),
("nacute", 556.0),
("ncaron", 556.0),
("ncommaaccent", 556.0),
("nine", 500.0),
("notequal", 549.0),
("ntilde", 556.0),
("numbersign", 500.0),
("o", 500.0),
("oacute", 500.0),
("ocircumflex", 500.0),
("odieresis", 500.0),
("oe", 722.0),
("ogonek", 333.0),
("ograve", 500.0),
("ohungarumlaut", 500.0),
("omacron", 500.0),
("one", 500.0),
("onehalf", 750.0),
("onequarter", 750.0),
("onesuperior", 300.0),
("ordfeminine", 300.0),
("ordmasculine", 330.0),
("oslash", 500.0),
("otilde", 500.0),
("p", 556.0),
("paragraph", 540.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 494.0),
("percent", 1000.0),
("period", 250.0),
("periodcentered", 250.0),
("perthousand", 1000.0),
("plus", 570.0),
("plusminus", 570.0),
("q", 556.0),
("question", 500.0),
("questiondown", 500.0),
("quotedbl", 555.0),
("quotedblbase", 500.0),
("quotedblleft", 500.0),
("quotedblright", 500.0),
("quoteleft", 333.0),
("quoteright", 333.0),
("quotesinglbase", 333.0),
("quotesingle", 278.0),
("r", 444.0),
("racute", 444.0),
("radical", 549.0),
("rcaron", 444.0),
("rcommaaccent", 444.0),
("registered", 747.0),
("ring", 333.0),
("s", 389.0),
("sacute", 389.0),
("scaron", 389.0),
("scedilla", 389.0),
("scommaaccent", 389.0),
("section", 500.0),
("semicolon", 333.0),
("seven", 500.0),
("six", 500.0),
("slash", 278.0),
("space", 250.0),
("sterling", 500.0),
("summation", 600.0),
("t", 333.0),
("tcaron", 416.0),
("tcommaaccent", 333.0),
("thorn", 556.0),
("three", 500.0),
("threequarters", 750.0),
("threesuperior", 300.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 500.0),
("twosuperior", 300.0),
("u", 556.0),
("uacute", 556.0),
("ucircumflex", 556.0),
("udieresis", 556.0),
("ugrave", 556.0),
("uhungarumlaut", 556.0),
("umacron", 556.0),
("underscore", 500.0),
("uogonek", 556.0),
("uring", 556.0),
("v", 500.0),
("w", 722.0),
("x", 500.0),
("y", 500.0),
("yacute", 500.0),
("ydieresis", 500.0),
("yen", 500.0),
("z", 444.0),
("zacute", 444.0),
("zcaron", 444.0),
("zdotaccent", 444.0),
("zero", 500.0),
];
static TIMES_BOLDITALIC_WIDTHS: &[(&str, f64)] = &[
("A", 667.0),
("AE", 944.0),
("Aacute", 667.0),
("Abreve", 667.0),
("Acircumflex", 667.0),
("Adieresis", 667.0),
("Agrave", 667.0),
("Amacron", 667.0),
("Aogonek", 667.0),
("Aring", 667.0),
("Atilde", 667.0),
("B", 667.0),
("C", 667.0),
("Cacute", 667.0),
("Ccaron", 667.0),
("Ccedilla", 667.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 667.0),
("Eacute", 667.0),
("Ecaron", 667.0),
("Ecircumflex", 667.0),
("Edieresis", 667.0),
("Edotaccent", 667.0),
("Egrave", 667.0),
("Emacron", 667.0),
("Eogonek", 667.0),
("Eth", 722.0),
("Euro", 500.0),
("F", 667.0),
("G", 722.0),
("Gbreve", 722.0),
("Gcommaaccent", 722.0),
("H", 778.0),
("I", 389.0),
("Iacute", 389.0),
("Icircumflex", 389.0),
("Idieresis", 389.0),
("Idotaccent", 389.0),
("Igrave", 389.0),
("Imacron", 389.0),
("Iogonek", 389.0),
("J", 500.0),
("K", 667.0),
("Kcommaaccent", 667.0),
("L", 611.0),
("Lacute", 611.0),
("Lcaron", 611.0),
("Lcommaaccent", 611.0),
("Lslash", 611.0),
("M", 889.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 722.0),
("OE", 944.0),
("Oacute", 722.0),
("Ocircumflex", 722.0),
("Odieresis", 722.0),
("Ograve", 722.0),
("Ohungarumlaut", 722.0),
("Omacron", 722.0),
("Oslash", 722.0),
("Otilde", 722.0),
("P", 611.0),
("Q", 722.0),
("R", 667.0),
("Racute", 667.0),
("Rcaron", 667.0),
("Rcommaaccent", 667.0),
("S", 556.0),
("Sacute", 556.0),
("Scaron", 556.0),
("Scedilla", 556.0),
("Scommaaccent", 556.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 611.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 667.0),
("W", 889.0),
("X", 667.0),
("Y", 611.0),
("Yacute", 611.0),
("Ydieresis", 611.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 500.0),
("aacute", 500.0),
("abreve", 500.0),
("acircumflex", 500.0),
("acute", 333.0),
("adieresis", 500.0),
("ae", 722.0),
("agrave", 500.0),
("amacron", 500.0),
("ampersand", 778.0),
("aogonek", 500.0),
("aring", 500.0),
("asciicircum", 570.0),
("asciitilde", 570.0),
("asterisk", 500.0),
("at", 832.0),
("atilde", 500.0),
("b", 500.0),
("backslash", 278.0),
("bar", 220.0),
("braceleft", 348.0),
("braceright", 348.0),
("bracketleft", 333.0),
("bracketright", 333.0),
("breve", 333.0),
("brokenbar", 220.0),
("bullet", 350.0),
("c", 444.0),
("cacute", 444.0),
("caron", 333.0),
("ccaron", 444.0),
("ccedilla", 444.0),
("cedilla", 333.0),
("cent", 500.0),
("circumflex", 333.0),
("colon", 333.0),
("comma", 250.0),
("commaaccent", 250.0),
("copyright", 747.0),
("currency", 500.0),
("d", 500.0),
("dagger", 500.0),
("daggerdbl", 500.0),
("dcaron", 608.0),
("dcroat", 500.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 570.0),
("dollar", 500.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 444.0),
("eacute", 444.0),
("ecaron", 444.0),
("ecircumflex", 444.0),
("edieresis", 444.0),
("edotaccent", 444.0),
("egrave", 444.0),
("eight", 500.0),
("ellipsis", 1000.0),
("emacron", 444.0),
("emdash", 1000.0),
("endash", 500.0),
("eogonek", 444.0),
("equal", 570.0),
("eth", 500.0),
("exclam", 389.0),
("exclamdown", 389.0),
("f", 333.0),
("fi", 556.0),
("five", 500.0),
("fl", 556.0),
("florin", 500.0),
("four", 500.0),
("fraction", 167.0),
("g", 500.0),
("gbreve", 500.0),
("gcommaaccent", 500.0),
("germandbls", 500.0),
("grave", 333.0),
("greater", 570.0),
("greaterequal", 549.0),
("guillemotleft", 500.0),
("guillemotright", 500.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 556.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 278.0),
("k", 500.0),
("kcommaaccent", 500.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 382.0),
("lcommaaccent", 278.0),
("less", 570.0),
("lessequal", 549.0),
("logicalnot", 606.0),
("lozenge", 494.0),
("lslash", 278.0),
("m", 778.0),
("macron", 333.0),
("minus", 606.0),
("mu", 576.0),
("multiply", 570.0),
("n", 556.0),
("nacute", 556.0),
("ncaron", 556.0),
("ncommaaccent", 556.0),
("nine", 500.0),
("notequal", 549.0),
("ntilde", 556.0),
("numbersign", 500.0),
("o", 500.0),
("oacute", 500.0),
("ocircumflex", 500.0),
("odieresis", 500.0),
("oe", 722.0),
("ogonek", 333.0),
("ograve", 500.0),
("ohungarumlaut", 500.0),
("omacron", 500.0),
("one", 500.0),
("onehalf", 750.0),
("onequarter", 750.0),
("onesuperior", 300.0),
("ordfeminine", 266.0),
("ordmasculine", 300.0),
("oslash", 500.0),
("otilde", 500.0),
("p", 500.0),
("paragraph", 500.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 494.0),
("percent", 833.0),
("period", 250.0),
("periodcentered", 250.0),
("perthousand", 1000.0),
("plus", 570.0),
("plusminus", 570.0),
("q", 500.0),
("question", 500.0),
("questiondown", 500.0),
("quotedbl", 555.0),
("quotedblbase", 500.0),
("quotedblleft", 500.0),
("quotedblright", 500.0),
("quoteleft", 333.0),
("quoteright", 333.0),
("quotesinglbase", 333.0),
("quotesingle", 278.0),
("r", 389.0),
("racute", 389.0),
("radical", 549.0),
("rcaron", 389.0),
("rcommaaccent", 389.0),
("registered", 747.0),
("ring", 333.0),
("s", 389.0),
("sacute", 389.0),
("scaron", 389.0),
("scedilla", 389.0),
("scommaaccent", 389.0),
("section", 500.0),
("semicolon", 333.0),
("seven", 500.0),
("six", 500.0),
("slash", 278.0),
("space", 250.0),
("sterling", 500.0),
("summation", 600.0),
("t", 278.0),
("tcaron", 366.0),
("tcommaaccent", 278.0),
("thorn", 500.0),
("three", 500.0),
("threequarters", 750.0),
("threesuperior", 300.0),
("tilde", 333.0),
("trademark", 1000.0),
("two", 500.0),
("twosuperior", 300.0),
("u", 556.0),
("uacute", 556.0),
("ucircumflex", 556.0),
("udieresis", 556.0),
("ugrave", 556.0),
("uhungarumlaut", 556.0),
("umacron", 556.0),
("underscore", 500.0),
("uogonek", 556.0),
("uring", 556.0),
("v", 444.0),
("w", 667.0),
("x", 500.0),
("y", 444.0),
("yacute", 444.0),
("ydieresis", 444.0),
("yen", 500.0),
("z", 389.0),
("zacute", 389.0),
("zcaron", 389.0),
("zdotaccent", 389.0),
("zero", 500.0),
];
static TIMES_ITALIC_WIDTHS: &[(&str, f64)] = &[
("A", 611.0),
("AE", 889.0),
("Aacute", 611.0),
("Abreve", 611.0),
("Acircumflex", 611.0),
("Adieresis", 611.0),
("Agrave", 611.0),
("Amacron", 611.0),
("Aogonek", 611.0),
("Aring", 611.0),
("Atilde", 611.0),
("B", 611.0),
("C", 667.0),
("Cacute", 667.0),
("Ccaron", 667.0),
("Ccedilla", 667.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 611.0),
("Eacute", 611.0),
("Ecaron", 611.0),
("Ecircumflex", 611.0),
("Edieresis", 611.0),
("Edotaccent", 611.0),
("Egrave", 611.0),
("Emacron", 611.0),
("Eogonek", 611.0),
("Eth", 722.0),
("Euro", 500.0),
("F", 611.0),
("G", 722.0),
("Gbreve", 722.0),
("Gcommaaccent", 722.0),
("H", 722.0),
("I", 333.0),
("Iacute", 333.0),
("Icircumflex", 333.0),
("Idieresis", 333.0),
("Idotaccent", 333.0),
("Igrave", 333.0),
("Imacron", 333.0),
("Iogonek", 333.0),
("J", 444.0),
("K", 667.0),
("Kcommaaccent", 667.0),
("L", 556.0),
("Lacute", 556.0),
("Lcaron", 611.0),
("Lcommaaccent", 556.0),
("Lslash", 556.0),
("M", 833.0),
("N", 667.0),
("Nacute", 667.0),
("Ncaron", 667.0),
("Ncommaaccent", 667.0),
("Ntilde", 667.0),
("O", 722.0),
("OE", 944.0),
("Oacute", 722.0),
("Ocircumflex", 722.0),
("Odieresis", 722.0),
("Ograve", 722.0),
("Ohungarumlaut", 722.0),
("Omacron", 722.0),
("Oslash", 722.0),
("Otilde", 722.0),
("P", 611.0),
("Q", 722.0),
("R", 611.0),
("Racute", 611.0),
("Rcaron", 611.0),
("Rcommaaccent", 611.0),
("S", 500.0),
("Sacute", 500.0),
("Scaron", 500.0),
("Scedilla", 500.0),
("Scommaaccent", 500.0),
("T", 556.0),
("Tcaron", 556.0),
("Tcommaaccent", 556.0),
("Thorn", 611.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 611.0),
("W", 833.0),
("X", 611.0),
("Y", 556.0),
("Yacute", 556.0),
("Ydieresis", 556.0),
("Z", 556.0),
("Zacute", 556.0),
("Zcaron", 556.0),
("Zdotaccent", 556.0),
("a", 500.0),
("aacute", 500.0),
("abreve", 500.0),
("acircumflex", 500.0),
("acute", 333.0),
("adieresis", 500.0),
("ae", 667.0),
("agrave", 500.0),
("amacron", 500.0),
("ampersand", 778.0),
("aogonek", 500.0),
("aring", 500.0),
("asciicircum", 422.0),
("asciitilde", 541.0),
("asterisk", 500.0),
("at", 920.0),
("atilde", 500.0),
("b", 500.0),
("backslash", 278.0),
("bar", 275.0),
("braceleft", 400.0),
("braceright", 400.0),
("bracketleft", 389.0),
("bracketright", 389.0),
("breve", 333.0),
("brokenbar", 275.0),
("bullet", 350.0),
("c", 444.0),
("cacute", 444.0),
("caron", 333.0),
("ccaron", 444.0),
("ccedilla", 444.0),
("cedilla", 333.0),
("cent", 500.0),
("circumflex", 333.0),
("colon", 333.0),
("comma", 250.0),
("commaaccent", 250.0),
("copyright", 760.0),
("currency", 500.0),
("d", 500.0),
("dagger", 500.0),
("daggerdbl", 500.0),
("dcaron", 544.0),
("dcroat", 500.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 675.0),
("dollar", 500.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 444.0),
("eacute", 444.0),
("ecaron", 444.0),
("ecircumflex", 444.0),
("edieresis", 444.0),
("edotaccent", 444.0),
("egrave", 444.0),
("eight", 500.0),
("ellipsis", 889.0),
("emacron", 444.0),
("emdash", 889.0),
("endash", 500.0),
("eogonek", 444.0),
("equal", 675.0),
("eth", 500.0),
("exclam", 333.0),
("exclamdown", 389.0),
("f", 278.0),
("fi", 500.0),
("five", 500.0),
("fl", 500.0),
("florin", 500.0),
("four", 500.0),
("fraction", 167.0),
("g", 500.0),
("gbreve", 500.0),
("gcommaaccent", 500.0),
("germandbls", 500.0),
("grave", 333.0),
("greater", 675.0),
("greaterequal", 549.0),
("guillemotleft", 500.0),
("guillemotright", 500.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 500.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 278.0),
("k", 444.0),
("kcommaaccent", 444.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 300.0),
("lcommaaccent", 278.0),
("less", 675.0),
("lessequal", 549.0),
("logicalnot", 675.0),
("lozenge", 471.0),
("lslash", 278.0),
("m", 722.0),
("macron", 333.0),
("minus", 675.0),
("mu", 500.0),
("multiply", 675.0),
("n", 500.0),
("nacute", 500.0),
("ncaron", 500.0),
("ncommaaccent", 500.0),
("nine", 500.0),
("notequal", 549.0),
("ntilde", 500.0),
("numbersign", 500.0),
("o", 500.0),
("oacute", 500.0),
("ocircumflex", 500.0),
("odieresis", 500.0),
("oe", 667.0),
("ogonek", 333.0),
("ograve", 500.0),
("ohungarumlaut", 500.0),
("omacron", 500.0),
("one", 500.0),
("onehalf", 750.0),
("onequarter", 750.0),
("onesuperior", 300.0),
("ordfeminine", 276.0),
("ordmasculine", 310.0),
("oslash", 500.0),
("otilde", 500.0),
("p", 500.0),
("paragraph", 523.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 476.0),
("percent", 833.0),
("period", 250.0),
("periodcentered", 250.0),
("perthousand", 1000.0),
("plus", 675.0),
("plusminus", 675.0),
("q", 500.0),
("question", 500.0),
("questiondown", 500.0),
("quotedbl", 420.0),
("quotedblbase", 556.0),
("quotedblleft", 556.0),
("quotedblright", 556.0),
("quoteleft", 333.0),
("quoteright", 333.0),
("quotesinglbase", 333.0),
("quotesingle", 214.0),
("r", 389.0),
("racute", 389.0),
("radical", 453.0),
("rcaron", 389.0),
("rcommaaccent", 389.0),
("registered", 760.0),
("ring", 333.0),
("s", 389.0),
("sacute", 389.0),
("scaron", 389.0),
("scedilla", 389.0),
("scommaaccent", 389.0),
("section", 500.0),
("semicolon", 333.0),
("seven", 500.0),
("six", 500.0),
("slash", 278.0),
("space", 250.0),
("sterling", 500.0),
("summation", 600.0),
("t", 278.0),
("tcaron", 300.0),
("tcommaaccent", 278.0),
("thorn", 500.0),
("three", 500.0),
("threequarters", 750.0),
("threesuperior", 300.0),
("tilde", 333.0),
("trademark", 980.0),
("two", 500.0),
("twosuperior", 300.0),
("u", 500.0),
("uacute", 500.0),
("ucircumflex", 500.0),
("udieresis", 500.0),
("ugrave", 500.0),
("uhungarumlaut", 500.0),
("umacron", 500.0),
("underscore", 500.0),
("uogonek", 500.0),
("uring", 500.0),
("v", 444.0),
("w", 667.0),
("x", 444.0),
("y", 444.0),
("yacute", 444.0),
("ydieresis", 444.0),
("yen", 500.0),
("z", 389.0),
("zacute", 389.0),
("zcaron", 389.0),
("zdotaccent", 389.0),
("zero", 500.0),
];
static TIMES_ROMAN_WIDTHS: &[(&str, f64)] = &[
("A", 722.0),
("AE", 889.0),
("Aacute", 722.0),
("Abreve", 722.0),
("Acircumflex", 722.0),
("Adieresis", 722.0),
("Agrave", 722.0),
("Amacron", 722.0),
("Aogonek", 722.0),
("Aring", 722.0),
("Atilde", 722.0),
("B", 667.0),
("C", 667.0),
("Cacute", 667.0),
("Ccaron", 667.0),
("Ccedilla", 667.0),
("D", 722.0),
("Dcaron", 722.0),
("Dcroat", 722.0),
("Delta", 612.0),
("E", 611.0),
("Eacute", 611.0),
("Ecaron", 611.0),
("Ecircumflex", 611.0),
("Edieresis", 611.0),
("Edotaccent", 611.0),
("Egrave", 611.0),
("Emacron", 611.0),
("Eogonek", 611.0),
("Eth", 722.0),
("Euro", 500.0),
("F", 556.0),
("G", 722.0),
("Gbreve", 722.0),
("Gcommaaccent", 722.0),
("H", 722.0),
("I", 333.0),
("Iacute", 333.0),
("Icircumflex", 333.0),
("Idieresis", 333.0),
("Idotaccent", 333.0),
("Igrave", 333.0),
("Imacron", 333.0),
("Iogonek", 333.0),
("J", 389.0),
("K", 722.0),
("Kcommaaccent", 722.0),
("L", 611.0),
("Lacute", 611.0),
("Lcaron", 611.0),
("Lcommaaccent", 611.0),
("Lslash", 611.0),
("M", 889.0),
("N", 722.0),
("Nacute", 722.0),
("Ncaron", 722.0),
("Ncommaaccent", 722.0),
("Ntilde", 722.0),
("O", 722.0),
("OE", 889.0),
("Oacute", 722.0),
("Ocircumflex", 722.0),
("Odieresis", 722.0),
("Ograve", 722.0),
("Ohungarumlaut", 722.0),
("Omacron", 722.0),
("Oslash", 722.0),
("Otilde", 722.0),
("P", 556.0),
("Q", 722.0),
("R", 667.0),
("Racute", 667.0),
("Rcaron", 667.0),
("Rcommaaccent", 667.0),
("S", 556.0),
("Sacute", 556.0),
("Scaron", 556.0),
("Scedilla", 556.0),
("Scommaaccent", 556.0),
("T", 611.0),
("Tcaron", 611.0),
("Tcommaaccent", 611.0),
("Thorn", 556.0),
("U", 722.0),
("Uacute", 722.0),
("Ucircumflex", 722.0),
("Udieresis", 722.0),
("Ugrave", 722.0),
("Uhungarumlaut", 722.0),
("Umacron", 722.0),
("Uogonek", 722.0),
("Uring", 722.0),
("V", 722.0),
("W", 944.0),
("X", 722.0),
("Y", 722.0),
("Yacute", 722.0),
("Ydieresis", 722.0),
("Z", 611.0),
("Zacute", 611.0),
("Zcaron", 611.0),
("Zdotaccent", 611.0),
("a", 444.0),
("aacute", 444.0),
("abreve", 444.0),
("acircumflex", 444.0),
("acute", 333.0),
("adieresis", 444.0),
("ae", 667.0),
("agrave", 444.0),
("amacron", 444.0),
("ampersand", 778.0),
("aogonek", 444.0),
("aring", 444.0),
("asciicircum", 469.0),
("asciitilde", 541.0),
("asterisk", 500.0),
("at", 921.0),
("atilde", 444.0),
("b", 500.0),
("backslash", 278.0),
("bar", 200.0),
("braceleft", 480.0),
("braceright", 480.0),
("bracketleft", 333.0),
("bracketright", 333.0),
("breve", 333.0),
("brokenbar", 200.0),
("bullet", 350.0),
("c", 444.0),
("cacute", 444.0),
("caron", 333.0),
("ccaron", 444.0),
("ccedilla", 444.0),
("cedilla", 333.0),
("cent", 500.0),
("circumflex", 333.0),
("colon", 278.0),
("comma", 250.0),
("commaaccent", 250.0),
("copyright", 760.0),
("currency", 500.0),
("d", 500.0),
("dagger", 500.0),
("daggerdbl", 500.0),
("dcaron", 588.0),
("dcroat", 500.0),
("degree", 400.0),
("dieresis", 333.0),
("divide", 564.0),
("dollar", 500.0),
("dotaccent", 333.0),
("dotlessi", 278.0),
("e", 444.0),
("eacute", 444.0),
("ecaron", 444.0),
("ecircumflex", 444.0),
("edieresis", 444.0),
("edotaccent", 444.0),
("egrave", 444.0),
("eight", 500.0),
("ellipsis", 1000.0),
("emacron", 444.0),
("emdash", 1000.0),
("endash", 500.0),
("eogonek", 444.0),
("equal", 564.0),
("eth", 500.0),
("exclam", 333.0),
("exclamdown", 333.0),
("f", 333.0),
("fi", 556.0),
("five", 500.0),
("fl", 556.0),
("florin", 500.0),
("four", 500.0),
("fraction", 167.0),
("g", 500.0),
("gbreve", 500.0),
("gcommaaccent", 500.0),
("germandbls", 500.0),
("grave", 333.0),
("greater", 564.0),
("greaterequal", 549.0),
("guillemotleft", 500.0),
("guillemotright", 500.0),
("guilsinglleft", 333.0),
("guilsinglright", 333.0),
("h", 500.0),
("hungarumlaut", 333.0),
("hyphen", 333.0),
("i", 278.0),
("iacute", 278.0),
("icircumflex", 278.0),
("idieresis", 278.0),
("igrave", 278.0),
("imacron", 278.0),
("iogonek", 278.0),
("j", 278.0),
("k", 500.0),
("kcommaaccent", 500.0),
("l", 278.0),
("lacute", 278.0),
("lcaron", 344.0),
("lcommaaccent", 278.0),
("less", 564.0),
("lessequal", 549.0),
("logicalnot", 564.0),
("lozenge", 471.0),
("lslash", 278.0),
("m", 778.0),
("macron", 333.0),
("minus", 564.0),
("mu", 500.0),
("multiply", 564.0),
("n", 500.0),
("nacute", 500.0),
("ncaron", 500.0),
("ncommaaccent", 500.0),
("nine", 500.0),
("notequal", 549.0),
("ntilde", 500.0),
("numbersign", 500.0),
("o", 500.0),
("oacute", 500.0),
("ocircumflex", 500.0),
("odieresis", 500.0),
("oe", 722.0),
("ogonek", 333.0),
("ograve", 500.0),
("ohungarumlaut", 500.0),
("omacron", 500.0),
("one", 500.0),
("onehalf", 750.0),
("onequarter", 750.0),
("onesuperior", 300.0),
("ordfeminine", 276.0),
("ordmasculine", 310.0),
("oslash", 500.0),
("otilde", 500.0),
("p", 500.0),
("paragraph", 453.0),
("parenleft", 333.0),
("parenright", 333.0),
("partialdiff", 476.0),
("percent", 833.0),
("period", 250.0),
("periodcentered", 250.0),
("perthousand", 1000.0),
("plus", 564.0),
("plusminus", 564.0),
("q", 500.0),
("question", 444.0),
("questiondown", 444.0),
("quotedbl", 408.0),
("quotedblbase", 444.0),
("quotedblleft", 444.0),
("quotedblright", 444.0),
("quoteleft", 333.0),
("quoteright", 333.0),
("quotesinglbase", 333.0),
("quotesingle", 180.0),
("r", 333.0),
("racute", 333.0),
("radical", 453.0),
("rcaron", 333.0),
("rcommaaccent", 333.0),
("registered", 760.0),
("ring", 333.0),
("s", 389.0),
("sacute", 389.0),
("scaron", 389.0),
("scedilla", 389.0),
("scommaaccent", 389.0),
("section", 500.0),
("semicolon", 278.0),
("seven", 500.0),
("six", 500.0),
("slash", 278.0),
("space", 250.0),
("sterling", 500.0),
("summation", 600.0),
("t", 278.0),
("tcaron", 326.0),
("tcommaaccent", 278.0),
("thorn", 500.0),
("three", 500.0),
("threequarters", 750.0),
("threesuperior", 300.0),
("tilde", 333.0),
("trademark", 980.0),
("two", 500.0),
("twosuperior", 300.0),
("u", 500.0),
("uacute", 500.0),
("ucircumflex", 500.0),
("udieresis", 500.0),
("ugrave", 500.0),
("uhungarumlaut", 500.0),
("umacron", 500.0),
("underscore", 500.0),
("uogonek", 500.0),
("uring", 500.0),
("v", 500.0),
("w", 722.0),
("x", 500.0),
("y", 500.0),
("yacute", 500.0),
("ydieresis", 500.0),
("yen", 500.0),
("z", 444.0),
("zacute", 444.0),
("zcaron", 444.0),
("zdotaccent", 444.0),
("zero", 500.0),
];
static ZAPFDINGBATS_WIDTHS: &[(&str, f64)] = &[
("a1", 974.0),
("a10", 692.0),
("a100", 668.0),
("a101", 732.0),
("a102", 544.0),
("a103", 544.0),
("a104", 910.0),
("a105", 911.0),
("a106", 667.0),
("a107", 760.0),
("a108", 760.0),
("a109", 626.0),
("a11", 960.0),
("a110", 694.0),
("a111", 595.0),
("a112", 776.0),
("a117", 690.0),
("a118", 791.0),
("a119", 790.0),
("a12", 939.0),
("a120", 788.0),
("a121", 788.0),
("a122", 788.0),
("a123", 788.0),
("a124", 788.0),
("a125", 788.0),
("a126", 788.0),
("a127", 788.0),
("a128", 788.0),
("a129", 788.0),
("a13", 549.0),
("a130", 788.0),
("a131", 788.0),
("a132", 788.0),
("a133", 788.0),
("a134", 788.0),
("a135", 788.0),
("a136", 788.0),
("a137", 788.0),
("a138", 788.0),
("a139", 788.0),
("a14", 855.0),
("a140", 788.0),
("a141", 788.0),
("a142", 788.0),
("a143", 788.0),
("a144", 788.0),
("a145", 788.0),
("a146", 788.0),
("a147", 788.0),
("a148", 788.0),
("a149", 788.0),
("a15", 911.0),
("a150", 788.0),
("a151", 788.0),
("a152", 788.0),
("a153", 788.0),
("a154", 788.0),
("a155", 788.0),
("a156", 788.0),
("a157", 788.0),
("a158", 788.0),
("a159", 788.0),
("a16", 933.0),
("a160", 894.0),
("a161", 838.0),
("a162", 924.0),
("a163", 1016.0),
("a164", 458.0),
("a165", 924.0),
("a166", 918.0),
("a167", 927.0),
("a168", 928.0),
("a169", 928.0),
("a17", 945.0),
("a170", 834.0),
("a171", 873.0),
("a172", 828.0),
("a173", 924.0),
("a174", 917.0),
("a175", 930.0),
("a176", 931.0),
("a177", 463.0),
("a178", 883.0),
("a179", 836.0),
("a18", 974.0),
("a180", 867.0),
("a181", 696.0),
("a182", 874.0),
("a183", 760.0),
("a184", 946.0),
("a185", 865.0),
("a186", 967.0),
("a187", 831.0),
("a188", 873.0),
("a189", 927.0),
("a19", 755.0),
("a190", 970.0),
("a191", 918.0),
("a192", 748.0),
("a193", 836.0),
("a194", 771.0),
("a195", 888.0),
("a196", 748.0),
("a197", 771.0),
("a198", 888.0),
("a199", 867.0),
("a2", 961.0),
("a20", 846.0),
("a200", 696.0),
("a201", 874.0),
("a202", 974.0),
("a203", 762.0),
("a204", 759.0),
("a205", 509.0),
("a206", 410.0),
("a21", 762.0),
("a22", 761.0),
("a23", 571.0),
("a24", 677.0),
("a25", 763.0),
("a26", 760.0),
("a27", 759.0),
("a28", 754.0),
("a29", 786.0),
("a3", 980.0),
("a30", 788.0),
("a31", 788.0),
("a32", 790.0),
("a33", 793.0),
("a34", 794.0),
("a35", 816.0),
("a36", 823.0),
("a37", 789.0),
("a38", 841.0),
("a39", 823.0),
("a4", 719.0),
("a40", 833.0),
("a41", 816.0),
("a42", 831.0),
("a43", 923.0),
("a44", 744.0),
("a45", 723.0),
("a46", 749.0),
("a47", 790.0),
("a48", 792.0),
("a49", 695.0),
("a5", 789.0),
("a50", 776.0),
("a51", 768.0),
("a52", 792.0),
("a53", 759.0),
("a54", 707.0),
("a55", 708.0),
("a56", 682.0),
("a57", 701.0),
("a58", 826.0),
("a59", 815.0),
("a6", 494.0),
("a60", 789.0),
("a61", 789.0),
("a62", 707.0),
("a63", 687.0),
("a64", 696.0),
("a65", 689.0),
("a66", 786.0),
("a67", 787.0),
("a68", 713.0),
("a69", 791.0),
("a7", 552.0),
("a70", 785.0),
("a71", 791.0),
("a72", 873.0),
("a73", 761.0),
("a74", 762.0),
("a75", 759.0),
("a76", 892.0),
("a77", 892.0),
("a78", 788.0),
("a79", 784.0),
("a8", 537.0),
("a81", 438.0),
("a82", 138.0),
("a83", 277.0),
("a84", 415.0),
("a85", 509.0),
("a86", 410.0),
("a87", 234.0),
("a88", 234.0),
("a89", 390.0),
("a9", 577.0),
("a90", 390.0),
("a91", 276.0),
("a92", 276.0),
("a93", 317.0),
("a94", 317.0),
("a95", 334.0),
("a96", 334.0),
("a97", 392.0),
("a98", 392.0),
("a99", 668.0),
("space", 278.0),
];
fn width_from_table(table: &[(&str, f64)], glyph: &str) -> Option<f64> {
table
.binary_search_by_key(&glyph, |&(k, _)| k)
.ok()
.map(|i| table[i].1)
}
pub fn standard14_glyph_width(font: &str, glyph: &str) -> Option<f64> {
match font {
"Courier" => Some(600.0),
"Courier-Bold" => Some(600.0),
"Courier-BoldOblique" => Some(600.0),
"Courier-Oblique" => Some(600.0),
"Helvetica" => width_from_table(HELVETICA_WIDTHS, glyph),
"Helvetica-Bold" => width_from_table(HELVETICA_BOLD_WIDTHS, glyph),
"Helvetica-BoldOblique" => width_from_table(HELVETICA_BOLDOBLIQUE_WIDTHS, glyph),
"Helvetica-Oblique" => width_from_table(HELVETICA_OBLIQUE_WIDTHS, glyph),
"Symbol" => width_from_table(SYMBOL_WIDTHS, glyph),
"Times-Bold" => width_from_table(TIMES_BOLD_WIDTHS, glyph),
"Times-BoldItalic" => width_from_table(TIMES_BOLDITALIC_WIDTHS, glyph),
"Times-Italic" => width_from_table(TIMES_ITALIC_WIDTHS, glyph),
"Times-Roman" => width_from_table(TIMES_ROMAN_WIDTHS, glyph),
"ZapfDingbats" => width_from_table(ZAPFDINGBATS_WIDTHS, glyph),
_ => None,
}
}
pub fn standard14_default_width(font: &str) -> Option<f64> {
match font {
"Courier" => Some(600.0),
"Courier-Bold" => Some(600.0),
"Courier-BoldOblique" => Some(600.0),
"Courier-Oblique" => Some(600.0),
"Helvetica" => Some(0.0),
"Helvetica-Bold" => Some(0.0),
"Helvetica-BoldOblique" => Some(0.0),
"Helvetica-Oblique" => Some(0.0),
"Symbol" => Some(0.0),
"Times-Bold" => Some(0.0),
"Times-BoldItalic" => Some(0.0),
"Times-Italic" => Some(0.0),
"Times-Roman" => Some(0.0),
"ZapfDingbats" => Some(0.0),
_ => None,
}
}
pub fn has_standard14_metrics(font: &str) -> bool {
standard14_default_width(font).is_some()
}
pub fn font_basic_metrics(font: &str) -> Option<(Option<f64>, Option<f64>)> {
match font {
"Courier" => Some((Some(629.0), Some(-157.0))),
"Courier-Bold" => Some((Some(629.0), Some(-157.0))),
"Courier-BoldOblique" => Some((Some(629.0), Some(-157.0))),
"Courier-Oblique" => Some((Some(629.0), Some(-157.0))),
"Helvetica" => Some((Some(718.0), Some(-207.0))),
"Helvetica-Bold" => Some((Some(718.0), Some(-207.0))),
"Helvetica-BoldOblique" => Some((Some(718.0), Some(-207.0))),
"Helvetica-Oblique" => Some((Some(718.0), Some(-207.0))),
"Symbol" => Some((None, None)),
"Times-Bold" => Some((Some(683.0), Some(-217.0))),
"Times-BoldItalic" => Some((Some(683.0), Some(-217.0))),
"Times-Italic" => Some((Some(683.0), Some(-217.0))),
"Times-Roman" => Some((Some(683.0), Some(-217.0))),
"ZapfDingbats" => Some((None, None)),
_ => None,
}
}