import {CHARSET, CHARS} from '@mathjax/font-tools/js/CharMap.js'; import {Font} from '@mathjax/font-tools/js/Font.js'; import {Variants} from '@mathjax/font-tools/js/Variant.js'; import {Delimiters} from '@mathjax/font-tools/js/Delimiters.js'; import {FontDef} from '@mathjax/font-tools/js/CommonFont.js'; import {SVGFont} from '@mathjax/font-tools/js/SVGFont.js'; import {CHTMLFont} from '@mathjax/font-tools/js/CHTMLFont.js'; import {Components} from '@mathjax/font-tools/js/Components.js'; import {GenericFont as GenericSVGFont} from '@mathjax/fonts/generic/mjs/svg.js'; import {GenericFont as GenericCHTMLFont} from '@mathjax/fonts/generic/mjs/chtml.js'; import {FontData} from '@mathjax/src/mjs/output/common/FontData.js'; /***********************************************************************************/ try { Font.load({ 'EE-M': ['../mathjax-euler/fonts/euler.otf', {autoPUA: 0xE000, ignore: /\.ssty.?$/}] }); /***********************************************************************************/ const IeeeEulerVariants = Variants.define({ '-euler-R': ['EE-M', [ CHARS.Range(0x21, 0x07A).minus(CHARS.Range(0x5B, 0x5D), CHARS.At(0x2F, 0x5F, 0x7E)), CHARS.At(0x131, 0x237, 0x2C6, 0x2C7, 0x302, 0x30C), CHARSET.Greek.minus(CHARS.At(0x3C2, 0x3F4, 0x3F0, 0x3F1)), CHARS.At(0x210E, 0x210F, 0x2126, 0x2127, 0x2135) ]], '-euler-F': ['EE-M', [ CHARSET.FrakturToAlphaUC, CHARSET.FrakturToAlphaLC, ]], '-euler-S': ['EE-M', [ CHARSET.ScriptToAlphaUC ]], }); /***********************************************************************************/ const IeeeEulerDelimiters = { font: 'EE-M', variants: IeeeEulerVariants, sizeVariants: ['normal'], stretchVariants: ['normal'], readMathTable: false }; /***********************************************************************************/ const IeeeEulerData: FontDef = { name: 'IeeeEuler', prefix: 'IEEE', variants: IeeeEulerVariants, delimiters: null, ranges: [ // ['fraktur', { // F: {'-euler-F': RANGES.FRAKTUR} // }], // ['calligraphic', { // C: {'-euler-S': RANGES.ALPHAUC}, // }], // ['greek', { // GK: { // '-euler-R': [ // [0x3B1, 0x3C1], [0x3C3, 0x3C9], 0x3D1, 0x3D5, 0x3D6, 0x3F5, // [0x1D6A8, 0x1D6B8], [0x1D6BA, 0x1D6D2], [0x1D6D4, 0x1D6DD], 0x1D6DF, 0x1D6E1, // [0x1D71C, 0x1D72C], [0x1D72E, 0x1D746], [0x1D748, 0x1D751], 0x1D753, 0x1D755 // ] // } // }] ] }; const IeeeEulerSVGData: FontDef = { ...IeeeEulerData, delimiters: Delimiters.define({ ...IeeeEulerDelimiters, extends: { fontClass: GenericSVGFont as typeof FontData, path: '@mathjax/fonts/generic/mjs/svg.js' }, }) }; const IeeeEulerCHTMLData: FontDef = { ...IeeeEulerData, delimiters: Delimiters.define({ ...IeeeEulerDelimiters, extends: { fontClass: GenericCHTMLFont as typeof FontData, path: '@mathjax/fonts/generic/mjs/chtml.js' }, }) }; Components.define('svg', IeeeEulerSVGData).writeExtension(); SVGFont.define(IeeeEulerSVGData).writeExtension('ieee-euler'); Components.define('chtml', IeeeEulerCHTMLData).writeExtension(); CHTMLFont.define(IeeeEulerCHTMLData).writeExtension('ieee-euler').makeWoffFonts('EE-M', false); } catch (err) { console.log(err); process.exit(1); }