diff options
Diffstat (limited to 'tex/context/fonts/mkiv/lm.lfg')
-rw-r--r-- | tex/context/fonts/mkiv/lm.lfg | 400 |
1 files changed, 372 insertions, 28 deletions
diff --git a/tex/context/fonts/mkiv/lm.lfg b/tex/context/fonts/mkiv/lm.lfg index 5ea043b55..0c0b0a1dc 100644 --- a/tex/context/fonts/mkiv/lm.lfg +++ b/tex/context/fonts/mkiv/lm.lfg @@ -9,6 +9,11 @@ local dimensions, kerns if CONTEXTLMTXMODE == 0 then kerns = { [0x1D449] = kern_150, -- [0x1D44A] = kern_200, -- 𝑊 + + [0x1D4AB] = { + -- topleft = { { kern = -200 } }, + bottomright = { { kern = -200 } }, + }, } dimensions = { @@ -24,6 +29,7 @@ local dimensions, kerns if CONTEXTLMTXMODE == 0 then height = 960, depth = 40, }, + -- [0xFE932] = { xoffset = 50, width = 290 }, -- used prime -- [0x2032] = { xoffset = 50, width = 290 }, -- prime }, @@ -64,41 +70,367 @@ return { { tweak = "dimensions", list = { - [0x00060] = { yoffset = -0.05 }, -- grave - [0x000B4] = { yoffset = -0.05 }, -- acute - [0x002C6] = { yoffset = -0.05 }, -- hat - [0x002DC] = { yoffset = -0.05 }, -- tilde - [0x000AF] = { yoffset = -0.1 }, -- bar - [0x002D8] = { yoffset = -0.05 }, -- breve - [0x002D9] = { yoffset = -0.05 }, -- dot - [0x000A8] = { yoffset = -0.05 }, -- ddot - [0x020DB] = { yoffset = -0.15 }, -- dddot (seem to hit some max) - [0x002DA] = { yoffset = -0.05 }, -- ring - [0x002C7] = { yoffset = -0.05 }, -- check - [0x020D7] = { yoffset = -0.05 }, -- vec - [0x00300] = { yoffset = -0.07, all = true }, -- widegrave - [0x00301] = { yoffset = -0.07, all = true }, -- wideacute - [0x00302] = { yoffset = -0.1, all = true }, -- widehat - [0x00303] = { yoffset = -0.09, all = true }, -- widetilde - [0x00304] = { yoffset = -0.1, all = true }, -- widebar - [0x00306] = { yoffset = -0.07, all = true }, -- widebreve - [0x00307] = { yoffset = -0.05, all = true }, -- widedot - [0x00308] = { yoffset = -0.05, all = true }, -- wideddot - [0x020DB] = { yoffset = -0.075, all = true }, -- widedddot - [0x0030A] = { yoffset = -0.05, all = true }, -- widering - [0x0030C] = { yoffset = -0.075, all = true }, -- widecheck + -- [0x00060] = { yoffset = -0.05 }, -- grave + -- [0x000B4] = { yoffset = -0.05 }, -- acute + -- -- [0x002C6] = { yoffset = -0.05 }, -- hat + -- [0x002DC] = { yoffset = -0.05 }, -- tilde + -- [0x000AF] = { yoffset = -0.075 }, -- bar + -- [0x002D8] = { yoffset = -0.05 }, -- breve + -- [0x002D9] = { yoffset = -0.05 }, -- dot + -- [0x000A8] = { yoffset = -0.05 }, -- ddot + -- [0x020DB] = { yoffset = 0.2 }, -- dddot (done below!) + [0x002DA] = { width = 0, }, -- ring (bounding box is wrong) + -- [0x002C7] = { yoffset = -0.05 }, -- check + -- [0x020D7] = { yoffset = -0.05 }, -- vec + [0x00300] = { yoffset = -0.03, all = true }, -- widegrave + [0x00301] = { yoffset = -0.03, all = true }, -- wideacute + [0x00302] = { yoffset = -0.075, all = true }, -- widehat + [0x00303] = { yoffset = -0.05, all = true }, -- widetilde + [0x00304] = { yoffset = -0.02, all = true }, -- widebar + [0x00306] = { yoffset = -0.05, all = true }, -- widebreve + [0x00307] = { yoffset = -0.027, all = true }, -- widedot + [0x00308] = { yoffset = -0.027, all = true }, -- wideddot + [0x020DB] = { yoffset = -0.065, all = true }, -- widedddot + [0x0030C] = { yoffset = -0.05, all = true }, -- widecheck + [0x0030A] = { yoffset = -0.025, all = true }, -- widering + + -- [0x0212C] = { width = 0.95, italic = 0.05 }, -- script B + -- [0x1D49E] = { width = 0.8, italic = 0.25 }, -- script C + -- [0x1D49F] = { width = 0.9, italic = 0.11 }, -- script D + -- [0x02130] = { width = 0.85, italic = 0.18 }, -- script E + -- [0x02131] = { width = 0.75, italic = 0.3 }, -- script F + -- [0x1D4A2] = { width = 0.9, italic = 0.11 }, -- script G + -- [0x0210B] = { width = 0.85, italic = 0.18 }, -- script H + -- [0x02110] = { width = 0.8, italic = 0.25 }, -- script I + -- [0x1D4A5] = { width = 0.8, italic = 0.25 }, -- script J + -- [0x1D4A6] = { width = 0.9, italic = 0.11 }, -- script K + -- [0x02112] = { width = 0.95, italic = 0.05 }, -- script L + -- [0x02133] = { width = 0.9, italic = 0.11 }, -- script M + -- [0x1D4A9] = { width = 0.85, italic = 0.18 }, -- script N + -- [0x1D4AA] = { width = 0.95, italic = 0.05 }, -- script O + -- [0x1D4AB] = { width = 0.8, italic = 0.25 }, -- script P + -- [0x1D4AB] = { width = 0.95, italic = 0.05 }, -- script Q + -- [0x0211B] = { width = 0.95, italic = 0.05 }, -- script R + -- [0x1D4AE] = { width = 0.9, italic = 0.11 }, -- script S + -- [0x1D4AF] = { width = 0.75, italic = 0.33 }, -- script T + -- [0x1D4B0] = { width = 0.9, italic = 0.11 }, -- script U + -- [0x1D4B1] = { width = 0.8, italic = 0.25 }, -- script V + -- [0x1D4B2] = { width = 0.8, italic = 0.25 }, -- script W + -- [0x1D4B3] = { width = 0.9, italic = 0.11 }, -- script X + -- [0x1D4B4] = { width = 0.85, italic = 0.18 }, -- script Y + -- [0x1D4B5] = { width = 0.95, italic = 0.05 }, -- script Z + + -- Setting anchors to shift the location of accents + -- Note: Many non-italic alphabets are wiped below + -- Todo: Check the less common italic alphabets + -- [0x1D483] = { anchor = 1.15, }, -- bold italic b + -- [0x1D485] = { anchor = 0.8, }, -- bold italic d + [0x1D487] = { anchor = 0.9, }, -- bold italic f + [0x1D489] = { anchor = 1.2, }, -- bold italic h + [0x1D48C] = { anchor = 1.2, }, -- bold italic k + [0x1D48F] = { anchor = 1.1, }, -- bold italic n + [0x1D491] = { anchor = 1.2, }, -- bold italic p + [0x1D492] = { anchor = 0.9, }, -- bold italic q + [0x1D49B] = { anchor = 0.9, }, -- bold italic z + + [0x1D736] = { anchor = 0.9, }, -- bold italic alpha + [0x1D737] = { anchor = 0.9, }, -- bold italic beta + [0x1D738] = { anchor = 1.1, }, -- bold italic gamma + [0x1D740] = { anchor = 1.2, }, -- bold italic lambda + [0x1D744] = { anchor = 1.2, }, -- bold italic omicron + + [0x1D6FE] = { anchor = 1.1, }, -- italic gamma + [0x1D702] = { anchor = 1.1, }, -- italic eta + -- [0x1D70A] = { anchor = 1.2, }, -- italic omicron -- no difference + -- [0x1D70D] = { anchor = 1.2, }, -- italic varsigma -- no difference + + [0x1D44F] = { anchor = 1.15, }, -- italic b + [0x1D451] = { anchor = 0.8, }, -- italic d + [0x1D455] = { anchor = 1.15, }, -- italic h + -- [0x1D456] = { anchor = 1.15, }, -- italic i (wrong code?) + [0x1D458] = { anchor = 1.15, }, -- italic k + [0x1D45B] = { anchor = 1.1, }, -- italic n + [0x1D45D] = { anchor = 1.1, }, -- italic p + [0x1D45E] = { anchor = 0.9, }, -- italic q + [0x1D467] = { anchor = 0.9, }, -- italic z + + [0x1D6FE] = { anchor = 1.2, }, -- italic gamma + [0x1D706] = { anchor = 1.2, }, -- italic lambda + [0x1D70A] = { anchor = 1.1, }, -- italic omikron + [0x1D70D] = { anchor = 1.1, }, -- italic varsigma + + [0x1D46A] = { anchor = 0.75, }, -- bold italic C + [0x1D46B] = { anchor = 1.1, }, -- bold italic D + [0x1D46E] = { anchor = 0.75, }, -- bold italic G + [0x1D479] = { anchor = 1.2, }, -- bold italic R + [0x1D47A] = { anchor = 0.8, }, -- bold italic S + + -- uppercaseboldscript could be improved + + [0x1D435] = { anchor = 1.05, }, -- italic B + [0x1D436] = { anchor = 0.7, }, -- italic C + [0x1D437] = { anchor = 1.05, }, -- italic D + [0x1D43A] = { anchor = 0.8, }, -- italic G + [0x1D443] = { anchor = 1.1, }, -- italic P + [0x1D445] = { anchor = 1.05, }, -- italic R + [0x1D446] = { anchor = 0.85, }, -- italic S + + [0x1D49C] = { anchor = 0.9 }, -- script A + [0x1D49D] = { anchor = 0.95, }, -- script B + [0x1D49E] = { anchor = 0.8, }, -- script C + [0x1D49F] = { anchor = 0.95, }, -- script D + [0x1D4A0] = { anchor = 0.85, }, -- script E + [0x1D4A1] = { anchor = 0.75, }, -- script F + [0x1D4A2] = { anchor = 0.9, }, -- script G + [0x1D4A3] = { anchor = 0.85, }, -- script H + [0x1D4A4] = { anchor = 0.8, }, -- script I + [0x1D4A5] = { anchor = 0.8, }, -- script J + [0x1D4A6] = { anchor = 0.85, }, -- script K + [0x1D4A7] = { anchor = 0.75, }, -- script L + [0x1D4A8] = { anchor = 0.9, }, -- script M + [0x1D4A9] = { anchor = 0.85, }, -- script N + [0x1D4AA] = { anchor = 0.95, }, -- script O + [0x1D4AB] = { anchor = 0.95, }, -- script P + [0x1D4AC] = { anchor = 0.95, }, -- script Q + [0x1D4AD] = { anchor = 0.95, }, -- script R + [0x1D4AE] = { anchor = 0.9, }, -- script S + [0x1D4AF] = { anchor = 0.75, }, -- script T + [0x1D4B0] = { anchor = 0.9, }, -- script U + [0x1D4B1] = { anchor = 0.95, }, -- script V + [0x1D4B2] = { anchor = 0.95, }, -- script W + [0x1D4B3] = { anchor = 0.95, }, -- script X + [0x1D4B4] = { anchor = 0.9, }, -- script Y + [0x1D4B5] = { anchor = 1, }, -- script Z + +-- [984874]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984881]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984888]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984895]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984902]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984909]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- [984916]={ squeeze = 0.50, height = 0.50, depth = 0.50 }, +-- ["0x7C.variants.*"]={ squeeze = 0.75, height = 0.75, depth = 0.75, extend = 1.15, width = 1.15 }, -- squeeze: glyph, height, depth: bbox +-- ["0x7C.variants.*"]={ squeeze = 0.75, height = 0.8, depth = 0.8, extend = 1.1, width = 1.1 }, -- squeeze: glyph, height, depth: bbox + + +["0x7C.variants.1"]={ squeeze = 0.90, height = 0.90, depth = 0.90 }, +["0x7C.variants.2"]={ squeeze = 0.85, height = 0.85, depth = 0.85 }, +["0x7C.variants.3"]={ squeeze = 0.80, height = 0.80, depth = 0.80 }, +["0x7C.variants.4"]={ squeeze = 0.80, height = 0.80, depth = 0.80 }, +["0x7C.variants.5"]={ squeeze = 0.80, height = 0.80, depth = 0.80 }, +["0x7C.variants.6"]={ squeeze = 0.80, height = 0.80, depth = 0.80 }, +["0x7C.variants.7"]={ squeeze = 0.80, height = 0.80, depth = 0.80 }, + + +-- [utf.byte("1")] = { +-- original = utf.byte("2"), +-- mode = 1, +-- scale = 2, +-- }, +-- ["lowercasegreeksansserifbolditalic"] = { +-- delta = 0x003B1 - 0x1D7AA, +-- slant = 0.4, +-- slant = -0.2, +-- line = 0.1, +-- -- line = 0.4, +-- mode = 1, +-- width = 1.25, +-- width = 0.95, +-- scale = 0.975, +-- }, }, }, { + -- Here we modify "corner kerns". + -- We started with 0x2F, the solidus + -- to have the 2 in x^2/5 a bit over the slash tweak = "kerns", list = { [0x2F] = { topleft = -0.2, -- bottomleft = 0, -- topright = 0, - bottomright = -0.2, - }, + bottomright = -0.2, + }, -- solidus + [0x1D49C] = { bottomright = -0.05, }, -- script A + [0x1D49D] = { bottomright = -0.05, }, -- script B + [0x1D49E] = { bottomright = -0.25, }, -- script C + [0x1D49F] = { bottomright = -0.11, }, -- script D + [0x1D4A0] = { bottomright = -0.18, }, -- script E + [0x1D4A1] = { bottomright = -0.30, }, -- script F + [0x1D4A2] = { bottomright = -0.11, }, -- script G + [0x1D4A3] = { bottomright = -0.18, }, -- script H + [0x1D4A4] = { bottomright = -0.25, }, -- script I + [0x1D4A5] = { bottomright = -0.25, }, -- script J + [0x1D4A6] = { bottomright = -0.11, }, -- script K + [0x1D4A7] = { bottomright = -0.05, }, -- script L + [0x1D4A8] = { bottomright = -0.11, }, -- script M + [0x1D4A9] = { bottomright = -0.18, }, -- script N + [0x1D4AA] = { bottomright = -0.05, }, -- script O + [0x1D4AB] = { bottomright = -0.25, }, -- script P + [0x1D4AC] = { bottomright = -0.05, }, -- script Q + [0x1D4AD] = { bottomright = -0.05, }, -- script R + [0x1D4AE] = { bottomright = -0.11, }, -- script S + [0x1D4AF] = { bottomright = -0.33, }, -- script T + [0x1D4B0] = { bottomright = -0.11, }, -- script U + [0x1D4B1] = { bottomright = -0.25, }, -- script V + [0x1D4B2] = { bottomright = -0.25, }, -- script W + [0x1D4B3] = { bottomright = -0.11, }, -- script X + [0x1D4B4] = { bottomright = -0.18, }, -- script Y + [0x1D4B5] = { bottomright = -0.05, }, -- script Z + }, + }, + -- { + -- tweak = "staircase", + -- list = { + -- }, + -- }, + { + -- For upright alphabets, we unset the anchor. + -- This means that accents are placed + -- centered over the character + tweak = "wipeanchors", + -- list = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, -- todo: ranges + list = { + "digitsbold", + "digitsdoublestruck", + "digitsmonospace", + "digitsnormal", + "digitssansserifbold", + "digitssansserifnormal", + "lowercasebold", + "lowercaseboldfraktur", + "lowercasedoublestruck", + "lowercasefraktur", + "lowercasegreekbold", + "lowercasegreeknormal", + "lowercasegreeksansserifbold", + "lowercasemonospace", + "lowercasenormal", + "lowercasesansserifbold", + "lowercasesansserifnormal", + "uppercasebold", + "uppercaseboldfraktur", + "uppercasedoublestruck", + "uppercasefraktur", + "uppercasegreekbold", + "uppercasegreeknormal", + "uppercasegreeksansserifbold", + "uppercasemonospace", + "uppercasenormal", -- they are italic! + "uppercasesansserifbold", + "uppercasesansserifnormal", + }, + }, + { + -- For non-italic alphabets we + -- remove italic correction. + tweak = "wipeitalics", + list = { + -- "digitsbold", + -- "digitsdoublestruck", + -- "digitsmonospace", + -- "digitsnormal", + -- "digitssansserifbold", + -- "digitssansserifnormal", + -- "lowercasebold", + -- "lowercaseboldfraktur", + -- "lowercasedoublestruck", + -- "lowercasefraktur", + "lowercasemonospace", + "lowercasenormal", + -- "lowercasesansserifbold", + -- "lowercasesansserifnormal", + -- "lowercasegreeknormal", + "uppercasebold", + -- "uppercaseboldfraktur", + -- "uppercasedoublestruck", + -- "uppercasefraktur", + -- "uppercasegreekbold", + -- "uppercasegreeknormal", + -- "uppercasegreeksansserifbold", + "uppercasemonospace", + "uppercasesansserifbold", + "uppercasesanserifnormal", }, + }, + { + -- This one fakes margins to get larger/smaller accents + -- with for example \widetilde. + tweak = "margins", + list = { + [0x1D487] = { left = -.2, right = -.2 }, -- bold italic f + [0x1D489] = { left = -.2, right = -.2 }, -- bold italic h + [0x1D496] = { left = -.1, right = -.1 }, -- bold italic u + [0x1D499] = { left = -.1, right = -.1 }, -- bold italic x + + [0x1D711] = { left = -.1, right = -.1 }, -- italic varphi + [0x1D713] = { left = -.1, right = -.1 }, -- italic psi + + [0x1D659] = { left = -.1, right = -.1 }, -- sans bold italic d + [0x1D65C] = { left = -.1, right = -.1 }, -- sans bold italic g + + [0x1D409] = { left = .1, right = .1 }, -- bold upright J + [0x1D412] = { left = .1, right = .1 }, -- bold upright S + + [0x1D509] = { left = .1, right = .1 }, -- fraktur F + [0x1D50C] = { left = .1, right = .1 }, -- fraktur I + [0x1D50D] = { left = .1, right = .1 }, -- fraktur J + [0x1D51D] = { left = .1, right = .1 }, -- fraktur Z + + [0x1D538] = { left = .1, right = .1 }, -- doublestruck A + [0x1D539] = { left = .1, right = .1 }, -- doublestruck B + [0x1D53C] = { left = .1, right = .1 }, -- doublestruck E + [0x1D53D] = { left = .1, right = .1 }, -- doublestruck F + [0x1D541] = { left = .1, right = .1 }, -- doublestruck J + [0x1D542] = { left = .1, right = .1 }, -- doublestruck K + [0x1D543] = { left = .1, right = .1 }, -- doublestruck L + [0x1D547] = { left = .1, right = .1 }, -- doublestruck P + [0x1D549] = { left = .1, right = .1 }, -- doublestruck R + [0x1D54A] = { left = .1, right = .1 }, -- doublestruck S + [0x1D54B] = { left = .1, right = .1 }, -- doublestruck T + [0x1D54D] = { left = .1, right = .1 }, -- doublestruck V + [0x1D550] = { left = .1, right = .1 }, -- doublestruck Y + + [0x1D506] = { left = .1, right = .1 }, -- fraktur C + + [0x00393] = { left = .1, right = .1 }, -- upfight Gamma + [0x00396] = { left = .1, right = .1 }, -- upfight Zeta + + + [0x1D5D8] = { left = .1, right = .1 }, -- sans bold E + [0x1D5D9] = { left = .1, right = .1 }, -- sans bold F + -- [0x1D5DD] = { left = .2, right = .2 }, -- sans bold J -- nope + [0x1D5DF] = { left = .1, right = .1 }, -- sans bold L + [0x1D5E6] = { left = .1, right = .1 }, -- sans bold S + + [0x1D61A] = { left = .1, right = .1 }, -- sans italic S + + [0x1D5A2] = { left = .1, right = .1 }, -- sans C + [0x1D5A4] = { left = .1, right = .1 }, -- sans E + [0x1D5A5] = { left = .1, right = .1 }, -- sans F + -- [0x1D5AB] = { left = .1, right = .1 }, -- sans L -- nope + [0x1D5AF] = { left = .1, right = .1 }, -- sans P + [0x1D5B2] = { left = .1, right = .1 }, -- sans S + [0x1D5B9] = { left = .1, right = .1 }, -- sans Z + + [0x1D4A0] = { left = .1, right = .1 }, -- script E + [0x1D4AE] = { left = .1, right = .1 }, -- script S + [0x1D4B4] = { left = .1, right = .1 }, -- script Y + + -- [0x4A] = { left = .2, right = .2 }, -- J + [0x4C] = { left = .1, right = .1 }, -- L + [0x53] = { left = .1, right = .1 }, -- S + [0x5A] = { left = .1, right = .1 }, -- Z + + [0x1D43D] = { left = -.1, right = -.1 }, -- italic J + + [0x1D409] = { left = -.1, right = -.1 }, -- bold J + + [0x1D471] = { left = -.1, right = -.1 }, -- bold italic J + + [0x1D4D9] = { left = -.05, right = -.05 }, -- bold script J + }, }, { tweak = "fixprimes", @@ -122,17 +454,29 @@ return { { tweak = "addrules", }, + -- { + -- tweak = "wipevariants", + -- list = { + -- 0x7C, + -- }, + -- }, }, }, parameters = { FractionNumeratorDisplayStyleShiftUp = 600, -- used to be a function NoLimitSupFactor = 0, NoLimitSubFactor = 900, - -- AccentBaseHeight = 0, - AccentBaseDepth = 50, + -- AccentBaseHeight = 0, + -- AccentBaseDepth = 0, + -- AccentTopOvershoot = 66, + AccentSuperscriptDrop = 100, -- drop the superscripts if accents are present. Amount in percentage of height of accent(?) + AccentSuperscriptPercent = 0, + DelimiterPercent = 90, + DelimiterShortfall = 400, + -- DisplayOperatorMinHeight = 1800, -- 1300 in font (only one) }, bigslots = { - 1, 3, 5, 7 + 1, 3, 5, 7 -- In fact, 6 is the last one. }, -- -- experimental fixes for mkiv: |