return { name = "common-math", version = "1.00", comment = "Goodies that complement pagella.", author = "Hans Hagen & Mikael Sundqvist", copyright = "ConTeXt development team", mathematics = { tweaks = { presets = { fallbacks = function(parameters) return { tweak = "fallbacks", } end, scripttocalligraphic = function(parameters) return { tweak = "replacealphabets", feature = "scripttocalligraphic", list = { { source = "uppercasescript", target = "uppercasecalligraphic", }, { source = "uppercaseboldscript", target = "uppercaseboldcalligraphic", }, }, } end, moderntocalligraphic = function(parameters) return { tweak = "replacealphabets", feature = "moderntocalligraphic", list = { { source = "uppercasescript", target = "uppercasecalligraphic", filename = "latinmodern-math.otf", rscale = parameters.rscale, }, { source = "uppercaseboldscript", target = "uppercaseboldcalligraphic", filename = "latinmodern-math.otf", rscale = parameters.rscale, }, }, } end, eulertocalligraphic = function(parameters) return { tweak = "replacealphabets", feature = "eulertocalligraphic", list = { { source = "uppercasescript", target = "uppercasecalligraphic", filename = "euler-math.otf", rscale = parameters.rscale, }, { source = "uppercaseboldscript", target = "uppercaseboldcalligraphic", filename = "euler-math.otf", rscale = parameters.rscale, }, }, } end, rsfstoscript = function(parameters) return { tweak = "replacealphabets", feature = "rsfstoscript", list = { { source = "uppercasescript", target = "uppercasescript", filename = "ralphsmithsformalscript-companion.otf", rscale = parameters.rscale, }, { source = "uppercaseboldscript", target = "uppercaseboldscript", filename = "ralphsmithsformalscript-companion.otf", rscale = parameters.rscale, }, }, } end, rsfsuprighttoscript = function(parameters) return { tweak = "replacealphabets", feature = "rsfsuprighttoscript", list = { { source = "uppercasescript", target = "uppercasescript", filename = "ralphsmithsformalscript-companion.otf", rscale = parameters.rscale, feature = "ss01", }, { source = "uppercaseboldscript", target = "uppercaseboldscript", filename = "ralphsmithsformalscript-companion.otf", rscale = parameters.rscale, feature = "ss01", }, }, } end, braille = function(parameters) return { tweak = "replacealphabets", feature = "braille", list = { { source = "braillepatterns", target = "braillepatterns", filename = "dejavuserif.ttf", rscale = parameters.rscale, }, }, } end, xitsarabic = function(parameters) return { tweak = "replacealphabets", feature = "xitsarabic", list = { { source = "arabicmathematicalalphabeticsymbols", target = "arabicmathematicalalphabeticsymbols", filename = "xitsmath-companion.otf", rscale = parameters.rscale, }, { source = "digitsarabicindic", target = "digitsarabicindic", filename = "xitsmath-companion.otf", rscale = parameters.rscale, }, { source = "digitsextendedarabicindic", target = "digitsextendedarabicindic", filename = "xitsmath-companion.otf", rscale = parameters.rscale, }, }, } end, moveitalics = function(parameters) return { tweak = "moveitalics", correct = parameters.correct, list = (parameters.all and "all") or (parameters.letters and "letters") or { -- "lowercasenormal", "lowercaseitalic", "lowercasebold", "lowercasebolditalic", "lowercasegreeknormal", "lowercasegreekitalic", "lowercasegreekbold", "lowercasegreekbolditalic", "lowercaseboldfraktur", "lowercaseboldscript", "lowercasedoublestruck", "lowercasefraktur", "lowercasegreeksansserifbold", "lowercasegreeksansserifbolditalic", "lowercasemonospace", "lowercasesansserifbold", "lowercasesansserifbolditalic", "lowercasesansserifitalic", "lowercasesansserifnormal", "lowercasescript", -- "uppercasenormal", "uppercaseitalic", "uppercasebold", "uppercasebolditalic", "uppercasegreeknormal", "uppercasegreekitalic", "uppercasegreekbold", "uppercasegreekbolditalic", "uppercaseboldfraktur", "uppercasebolditalic", "uppercaseboldscript", "uppercasedoublestruck", "uppercasefraktur", "uppercasegreeksansserifbold", "uppercasegreeksansserifbolditalic", "uppercasemonospace", "uppercasesansserifbold", "uppercasesansserifbolditalic", "uppercasesansserifitalic", "uppercasesansserifnormal", "uppercasescript", -- "digitsbold", "digitsdoublestruck", "digitslatin", "digitsmonospace", "digitsnormal", "digitssansserifbold", "digitssansserifnormal", -- -- We don't do these (one can use all=true) because now we can get -- more details about what gets italics. -- -- "latinextendeda", -- "latinextendedadditional", -- "latinextendedb", -- "latinextendedc", -- "latinextendedd", -- "latinextendede", -- "latinextendedf", -- "latinextendedg", -- "latinsupplement", -- mathematics.tweaks.subsets.dotless, } } end, moveintegrals = function(parameters) return { tweak = "movelimits", factor = parameters.factor or 1, icfactor = parameters.icfactor or 1, list = mathematics.tweaks.subsets.integrals, } end, wipeitalics = function(parameters) return { tweak = "wipeitalics", all = true, } end, wipeanchors = function(parameters) return { -- For upright alphabets, we unset the anchor. This means that accents are placed -- centered over the character. Should be on top. tweak = "wipeanchors", 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", "uppercasesansserifbold", "uppercasesansserifnormal", }, } end, pagellaradical = function(parameters) return { tweak = "tweaks", feature = "pagellaradical", list = { { tweak = "replacealphabets", list = { { source = { first = 0x0221A }, -- sqrt filename = "texgyrepagella-math.otf", inherit = { RadicalRuleThickness = true, }, }, }, }, -- { -- tweak = "parameters", -- list = { -- RadicalRuleThickness = 122.88, -- 60*2048/1000 -- }, -- }, }, } end, }, }, }, }