diff --git a/testsuite/tests/input/tex/Mhchem.test.ts b/testsuite/tests/input/tex/Mhchem.test.ts index ba0fc030c..f1dc8888a 100644 --- a/testsuite/tests/input/tex/Mhchem.test.ts +++ b/testsuite/tests/input/tex/Mhchem.test.ts @@ -46,7 +46,7 @@ describe('Mhchem0', () => { - + 2 @@ -1283,7 +1283,7 @@ describe('Mhchem2', () => { - + @@ -1306,7 +1306,7 @@ describe('Mhchem2', () => { - + @@ -1329,7 +1329,7 @@ describe('Mhchem2', () => { - + @@ -1352,7 +1352,7 @@ describe('Mhchem2', () => { - + @@ -1375,7 +1375,7 @@ describe('Mhchem2', () => { - + @@ -1398,7 +1398,7 @@ describe('Mhchem2', () => { - + 🣒 @@ -1421,7 +1421,7 @@ describe('Mhchem2', () => { - + 🣓 @@ -2944,13 +2944,13 @@ describe('Mhchem6', () => { A - + B - + C @@ -3754,7 +3754,7 @@ describe('Mhchem7', () => { - + @@ -3814,7 +3814,7 @@ describe('Mhchem8', () => { - + @@ -4030,7 +4030,7 @@ describe('Mhchem8', () => { - + + @@ -4130,7 +4130,7 @@ describe('Mhchem8', () => { - + + @@ -4757,7 +4757,7 @@ describe('Mhchem-Ams', () => { - + I @@ -4808,7 +4808,7 @@ describe('Mhchem-Ams', () => { - + I @@ -4910,7 +4910,7 @@ describe('Mhchem-Ams', () => { - + H @@ -4965,7 +4965,7 @@ describe('Mhchem-Ams', () => { - + @@ -5007,7 +5007,7 @@ describe('Mhchem-Ams', () => { - + @@ -5094,7 +5094,7 @@ describe('Mhchem-Ams', () => { - + Δ @@ -5240,7 +5240,7 @@ describe('Mhchem-Ams', () => { - + I @@ -5298,7 +5298,7 @@ describe('Mhchem-Ams', () => { - + I @@ -5414,7 +5414,7 @@ describe('Mhchem-Ams', () => { - + text @@ -5448,7 +5448,7 @@ describe('Mhchem-Ams', () => { - + text @@ -5482,7 +5482,7 @@ describe('Mhchem-Ams', () => { - + text @@ -5516,7 +5516,7 @@ describe('Mhchem-Ams', () => { - + text @@ -5550,7 +5550,7 @@ describe('Mhchem-Ams', () => { - + text @@ -5584,7 +5584,7 @@ describe('Mhchem-Ams', () => { - + 🣒 text @@ -5618,7 +5618,7 @@ describe('Mhchem-Ams', () => { - + 🣓 text @@ -5647,7 +5647,7 @@ describe('Mhchem-Ams', () => { A - + B diff --git a/ts/input/tex/ams/AmsMethods.ts b/ts/input/tex/ams/AmsMethods.ts index d1ea310da..05df4ccc7 100644 --- a/ts/input/tex/ams/AmsMethods.ts +++ b/ts/input/tex/ams/AmsMethods.ts @@ -41,6 +41,7 @@ import { AbstractMmlTokenNode, } from '../../../core/MmlTree/MmlNode.js'; import { NewcommandUtil } from '../newcommand/NewcommandUtil.js'; +import { OptionList } from '../../../util/Options.js'; /** * Utility for breaking the \sideset scripts from any other material. @@ -541,6 +542,7 @@ export const AmsMethods: { [key: string]: ParseMethod } = { * @param {number} l Left width. * @param {number} r Right width. * @param {number} m Min width + * @param {string} variant The variant for the arrow */ xArrow( parser: TexParser, @@ -548,7 +550,8 @@ export const AmsMethods: { [key: string]: ParseMethod } = { chr: number, l: number, r: number, - m: number = 0 + m: number = 0, + variant: string = '' ) { const def = { width: '+' + UnitUtil.em((l + r) / 18), @@ -557,12 +560,14 @@ export const AmsMethods: { [key: string]: ParseMethod } = { const bot = parser.GetBrackets(name); const first = parser.ParseArg(name); const dstrut = parser.create('node', 'mspace', [], { depth: '.2em' }); - let arrow = parser.create( - 'token', - 'mo', - { stretchy: true, texClass: TEXCLASS.ORD }, // REL is applied in a TeXAtom below - String.fromCodePoint(chr) - ); + const attrs: OptionList = { + stretchy: true, + texClass: TEXCLASS.ORD, // REL is applied in a TeXAtom below + }; + if (variant) { + attrs.mathvariant = variant; + } + let arrow = parser.create('token', 'mo', attrs, String.fromCodePoint(chr)); if (m) { arrow.attributes.set('minsize', UnitUtil.em(m)); } diff --git a/ts/input/tex/mhchem/MhchemConfiguration.ts b/ts/input/tex/mhchem/MhchemConfiguration.ts index 0015c31cf..8c98a9c7e 100644 --- a/ts/input/tex/mhchem/MhchemConfiguration.ts +++ b/ts/input/tex/mhchem/MhchemConfiguration.ts @@ -33,6 +33,11 @@ import { AmsMethods } from '../ams/AmsMethods.js'; import { mhchemParser } from '#mhchem/mhchemParser.js'; import { TEXCLASS } from '../../../core/MmlTree/MmlNode.js'; +/** + * The variant to use for mhchem arrows and bonds + */ +export const MHCHEM = '-mhchem'; + /** * Creates mo token elements with the proper attributes */ @@ -41,7 +46,7 @@ export const MhchemUtils = { const def = { stretchy: true, texClass: TEXCLASS.REL, - mathvariant: '-mhchem', + mathvariant: MHCHEM, ...(mchar.attributes || {}), }; const node = parser.create('token', 'mo', def, mchar.char); @@ -121,13 +126,13 @@ export const MhchemMethods: { [key: string]: ParseMethod } = { const mhchemMacros = new CommandMap('mhchem', { ce: [MhchemMethods.Machine, 'ce'], pu: [MhchemMethods.Machine, 'pu'], - mhchemxrightarrow: [MhchemMethods.xArrow, 0xe429, 5, 9], - mhchemxleftarrow: [MhchemMethods.xArrow, 0xe428, 9, 5], - mhchemxleftrightarrow: [MhchemMethods.xArrow, 0xe42a, 9, 9], - mhchemxleftrightarrows: [MhchemMethods.xArrow, 0xe42b, 9, 9], - mhchemxrightleftharpoons: [MhchemMethods.xArrow, 0xe408, 5, 9], - mhchemxRightleftharpoons: [MhchemMethods.xArrow, 0xe409, 5, 9], - mhchemxLeftrightharpoons: [MhchemMethods.xArrow, 0xe40a, 9, 11], + mhchemxleftarrow: [MhchemMethods.xArrow, 0x27f5, 9, 5, 0, MHCHEM], + mhchemxrightarrow: [MhchemMethods.xArrow, 0x27f6, 5, 9, 0, MHCHEM], + mhchemxleftrightarrow: [MhchemMethods.xArrow, 0x27f7, 9, 9, 0, MHCHEM], + mhchemxleftrightarrows: [MhchemMethods.xArrow, 0x21c4, 9, 9, 0, MHCHEM], + mhchemxrightleftharpoons: [MhchemMethods.xArrow, 0x21cc, 5, 9, 0, MHCHEM], + mhchemxRightleftharpoons: [MhchemMethods.xArrow, 0x1f8d2, 5, 9, 0, MHCHEM], + mhchemxLeftrightharpoons: [MhchemMethods.xArrow, 0x1f8d3, 9, 11, 0, MHCHEM], }); /** @@ -138,16 +143,16 @@ const mhchemChars = new CharacterMap('mhchem-chars', MhchemUtils.relmo, { mhchemBondTD: ['\uE411', { stretchy: false }], mhchemBondTDD: ['\uE412', { stretchy: false }], mhchemBondDTD: ['\uE413', { stretchy: false }], - mhchemlongleftarrow: '\uE428', - mhchemlongrightarrow: '\uE429', - mhchemlongleftrightarrow: '\uE42A', - mhchemlongrightleftharpoons: '\uE408', - mhchemlongRightleftharpoons: '\uE409', - mhchemlongLeftrightharpoons: '\uE40A', - mhchemlongleftrightarrows: '\uE42B', - mhchemrightarrow: '\uE42D', - mhchemleftarrow: '\uE42C', - mhchemleftrightarrow: '\uE42E', + mhchemlongleftarrow: '\u27F5', + mhchemlongrightarrow: '\u27F6', + mhchemlongleftrightarrow: '\u27F7', + mhchemlongrightleftharpoons: '\u21CC', + mhchemlongRightleftharpoons: '\u{1F8D2}', + mhchemlongLeftrightharpoons: '\u{1F8D3}', + mhchemlongleftrightarrows: '\u21C4', + mhchemrightarrow: '\u2192', + mhchemleftarrow: '\u2190', + mhchemleftrightarrow: '\u2194', }); /** diff --git a/ts/output/chtml/FontData.ts b/ts/output/chtml/FontData.ts index a5180c61b..92b4b51c0 100644 --- a/ts/output/chtml/FontData.ts +++ b/ts/output/chtml/FontData.ts @@ -64,7 +64,10 @@ export type ChtmlCharData = CharDataArray; /** * The extra data needed for a Variant in CHTML output */ -export interface ChtmlVariantData extends VariantData { +export interface ChtmlVariantData extends VariantData< + ChtmlCharOptions, + ChtmlDelimiterData +> { letter: string; // the font letter(s) for the default font for this variant } @@ -141,7 +144,7 @@ export class ChtmlFontData extends FontData< /** * Data about the delimiters used (for adpative CSS) */ - public delimUsage: Usage = new Usage(); + public delimUsage: Usage<[number, string]> = new Usage<[number, string]>(); /** * New styles since last update @@ -354,8 +357,8 @@ export class ChtmlFontData extends FontData< * @returns {StyleJson} The modified style list. */ public updateStyles(styles: StyleJson): StyleJson { - for (const N of this.delimUsage.update()) { - this.addDelimiterStyles(styles, N, this.getDelimiter(N)); + for (const [N, v] of this.delimUsage.update()) { + this.addDelimiterStyles(styles, N, this.getDelimiter(N, v)); } for (const [name, N] of this.charUsage.update()) { const variant = this.variant[name]; @@ -440,7 +443,7 @@ export class ChtmlFontData extends FontData< ) { const HDW = data.HDW as ChtmlCharData; const [beg, ext, end, mid] = data.stretch; - const [begV, extV, endV, midV] = this.getStretchVariants(n); + const [begV, extV, endV, midV] = this.getStretchVariants(n, data.v); const Hb = this.addDelimiterVPart(styles, c, 'beg', beg, begV, HDW); this.addDelimiterVPart(styles, c, 'ext', ext, extV, HDW); const He = this.addDelimiterVPart(styles, c, 'end', end, endV, HDW); @@ -524,7 +527,7 @@ export class ChtmlFontData extends FontData< ) { const HDW = [...data.HDW] as ChtmlCharData; const [beg, ext, end, mid] = data.stretch; - const [begV, extV, endV, midV] = this.getStretchVariants(n); + const [begV, extV, endV, midV] = this.getStretchVariants(n, data.v); if (data.hd && !this.options.mathmlSpacing) { // // Interpolate between full character height/depth and that of the extender, diff --git a/ts/output/chtml/Wrappers/mo.ts b/ts/output/chtml/Wrappers/mo.ts index 404708054..7cb9920dd 100644 --- a/ts/output/chtml/Wrappers/mo.ts +++ b/ts/output/chtml/Wrappers/mo.ts @@ -247,11 +247,11 @@ export const ChtmlMo = (function (): ChtmlMoClass { */ protected stretchHTML(chtml: N[]) { const c = this.getText().codePointAt(0); - this.font.delimUsage.add(c); + this.font.delimUsage.add([c, this.variant]); this.childNodes[0].markUsed(); const delim = this.stretch; const stretch = delim.stretch; - const stretchv = this.font.getStretchVariants(c); + const stretchv = this.font.getStretchVariants(c, this.variant); const dom: N[] = []; // diff --git a/ts/output/common.ts b/ts/output/common.ts index 2fe819740..f7d9f23c3 100644 --- a/ts/output/common.ts +++ b/ts/output/common.ts @@ -109,7 +109,7 @@ export abstract class CommonOutputJax< WW, WF, WC, CC, VV, DD, FD, FC >, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -189,7 +189,7 @@ export abstract class CommonOutputJax< */ public static genericFont: FontDataClass< CharOptions, - VariantData, + VariantData, DelimiterData >; diff --git a/ts/output/common/FontData.ts b/ts/output/common/FontData.ts index 779196645..2d1d3c8aa 100644 --- a/ts/output/common/FontData.ts +++ b/ts/output/common/FontData.ts @@ -87,17 +87,22 @@ export type CharMapMap = { * Data for a variant * * @template C The CharOptions type + * @template D The DelimiterData type */ -export interface VariantData { +export interface VariantData { /** * A list of CharMaps that must be updated when characters are * added to this variant */ - linked: CharMap[]; + linked: [CharMap, DelimiterMap][]; /** * The character data for this variant */ chars: CharMap; + /** + * The delimiters for the variant + */ + delims: DelimiterMap; } /** @@ -106,7 +111,11 @@ export interface VariantData { * @template C The CharOptions type * @template V The VariantData type */ -export type VariantMap> = { +export type VariantMap< + C extends CharOptions, + V extends VariantData, + D extends DelimiterData, +> = { [name: string]: V; }; @@ -144,6 +153,7 @@ export type DelimiterData = { ext?: number; // The extenders left- plus right-bearing min?: number; // The minimum size a multi-character version can be c?: number; // The character number (for aliased delimiters) + v?: string; // The variant where this delimiter is defined (normal if not present) fullExt?: [number, number] // When present, extenders must be full sized, and the first number is // the size of the extender, while the second is the total size of the ends }; @@ -157,6 +167,15 @@ export type DelimiterMap = { [n: number]: D | DynamicFile; }; +/** + * An object mapping variant names to delimiter data maps + * + * @template D The DelimiterData type + */ +export type VDelimiterMap = { + [variant: string]: DelimiterMap; +}; + /** * Delimiter data for a non-stretchy character */ @@ -253,7 +272,7 @@ export type FontParameterList = { */ export type Font = FontData< CharOptions, - VariantData, + VariantData, DelimiterData >; @@ -344,6 +363,7 @@ export interface FontExtensionData< sizeVariants?: string[] | { '[+]'?: string[]; '[-]'?: string[] }; stretchVariants?: string[] | { '[+]'?: string[]; '[-]'?: string[] }; ranges?: DynamicFileDef[]; + variantDelimiters?: VDelimiterMap; } /** @@ -373,7 +393,7 @@ export function mergeOptions( */ export class FontData< C extends CharOptions, - V extends VariantData, + V extends VariantData, D extends DelimiterData, > { /** @@ -642,6 +662,11 @@ export class FontData< */ protected static defaultDelimiters: DelimiterMap = {}; + /** + * The default VariantDelimiter data + */ + protected static defaultVariantDelimiters: VDelimiterMap = {}; + /** * The default character data */ @@ -675,7 +700,7 @@ export class FontData< /** * The actual variant information for this font */ - protected variant: VariantMap = {}; + protected variant: VariantMap = {}; /** * The actual delimiter information for this font @@ -902,6 +927,18 @@ export class FontData< extension.stretchN ); } + if (data.variantDelimiters) { + Object.entries(data.variantDelimiters).forEach(([name, delims]) => { + this.defaultVariantDelimiters[name] ??= {}; + Object.assign(this.defaultVariantDelimiters[name], delims); + this.adjustDelimiters( + this.defaultVariantDelimiters[name], + Object.keys(delims), + extension.sizeN, + extension.stretchN + ); + }); + } } /** @@ -924,6 +961,12 @@ export class FontData< Object.keys(CLASS.defaultChars).forEach((name) => this.defineChars(name, CLASS.defaultChars[name] as CharMap) ); + Object.keys(CLASS.defaultVariantDelimiters).forEach((name) => + this.defineDelimiters( + CLASS.defaultVariantDelimiters[name] as DelimiterMap, + name + ) + ); this.defineRemap('accent', CLASS.defaultAccentMap); this.defineRemap('mo', CLASS.defaultMoMap); this.defineRemap('mn', CLASS.defaultMnMap); @@ -985,6 +1028,20 @@ export class FontData< dynamicFont.stretchN ); } + if (data.variantDelimiters) { + Object.entries(data.variantDelimiters).forEach(([name, delims]) => { + this.defineDelimiters( + mergeOptions({ delimiters: {} }, 'delimiters', delims), + name + ); + this.CLASS.adjustDelimiters( + this.variant[name].delims, + Object.keys(delims), + dynamicFont.sizeN, + dynamicFont.stretchN + ); + }); + } for (const name of Object.keys(data.chars || {})) { this.defineChars(name, data.chars[name]); } @@ -1052,11 +1109,17 @@ export class FontData< chars: Object.create( inherit ? this.variant[inherit].chars : {} ) as CharMap, + delims: + name === 'normal' + ? this.delimiters + : Object.create(inherit ? this.variant[inherit].delims : {}), } as unknown as V; if (this.variant[link]) { Object.assign(variant.chars, this.variant[link].chars); - this.variant[link].linked.push(variant.chars); + Object.assign(variant.delims, this.variant[link].delims); + this.variant[link].linked.push([variant.chars, variant.delims]); variant.chars = Object.create(variant.chars); + variant.delims = Object.create(variant.delims); } this.remapSmpChars(variant.chars, name); this.variant[name] = variant; @@ -1131,7 +1194,7 @@ export class FontData< const variant = this.variant[name]; Object.assign(variant.chars, chars); for (const link of variant.linked) { - Object.assign(link, chars); + Object.assign(link[0], chars); } } @@ -1153,9 +1216,20 @@ export class FontData< * Defines stretchy delimiters * * @param {DelimiterMap} delims The delimiters to define - */ - public defineDelimiters(delims: DelimiterMap) { - Object.assign(this.delimiters, delims); + * @param {string} name The name of the variant for the delimiter (or normal if missing) + */ + public defineDelimiters(delims: DelimiterMap, name?: string) { + if (name && name !== 'normal') { + delims = { ...delims }; + Object.values(delims).forEach((delim: D) => { + delim.v = name; + }); + } + const variant = this.variant[name || 'normal']; + Object.assign(variant.delims, delims); + for (const link of variant.linked) { + Object.assign(link[1], delims); + } } /** @@ -1318,13 +1392,15 @@ export class FontData< public addDynamicFontCss(_fonts: string[], _root?: string) {} /** - * @param {number} n The delimiter character number whose data is desired + * @param {number} n The delimiter character number whose data is desired + * @param {string} name The name of the variant for the delimiter * @returns {DelimiterData} The data for that delimiter (or undefined) */ - public getDelimiter(n: number): DelimiterData { - const delim = this.delimiters[n]; + public getDelimiter(n: number, name?: string): DelimiterData { + const variant = this.variant[name || 'normal']; + const delim = variant.delims[n]; if (delim && !('dir' in delim)) { - this.delimiters[n] = null; + variant.delims[n] = null; retryAfter(this.loadDynamicFile(delim)); return null; } @@ -1332,12 +1408,13 @@ export class FontData< } /** - * @param {number} n The delimiter character number whose variant is needed - * @param {number} i The index in the size array of the size whose variant is needed - * @returns {string} The variant of the i-th size for delimiter n + * @param {number} n The delimiter character number whose variant is needed + * @param {number} i The index in the size array of the size whose variant is needed + * @param {string} name The name of the variant for the delimiter + * @returns {string} The variant of the i-th size for delimiter n */ - public getSizeVariant(n: number, i: number): string { - const delim = this.getDelimiter(n); + public getSizeVariant(n: number, i: number, name?: string): string { + const delim = this.getDelimiter(n, name || 'normal'); if (delim && delim.variants) { i = delim.variants[i]; } @@ -1345,21 +1422,23 @@ export class FontData< } /** - * @param {number} n The delimiter character number whose variant is needed - * @param {number} i The index in the stretch array of the part whose variant is needed - * @returns {string} The variant of the i-th part for delimiter n + * @param {number} n The delimiter character number whose variant is needed + * @param {number} i The index in the stretch array of the part whose variant is needed + * @param {string} name The name of the variant for the delimiter + * @returns {string} The variant of the i-th part for delimiter n */ - public getStretchVariant(n: number, i: number): string { - const delim = this.getDelimiter(n); + public getStretchVariant(n: number, i: number, name?: string): string { + const delim = this.getDelimiter(n, name); return this.stretchVariants[delim.stretchv ? delim.stretchv[i] : 0]; } /** - * @param {number} n The delimiter character number whose variants are needed - * @returns {string[]} The variants for the parts of the delimiter + * @param {number} n The delimiter character number whose variants are needed + * @param {string} name The name of the variant for the delimiter + * @returns {string[]} The variants for the parts of the delimiter */ - public getStretchVariants(n: number): string[] { - return [0, 1, 2, 3].map((i) => this.getStretchVariant(n, i)); + public getStretchVariants(n: number, name?: string): string[] { + return [0, 1, 2, 3].map((i) => this.getStretchVariant(n, i, name)); } /** @@ -1423,7 +1502,7 @@ export class FontData< */ export interface FontDataClass< C extends CharOptions, - V extends VariantData, + V extends VariantData, D extends DelimiterData, > { OPTIONS: OptionList; diff --git a/ts/output/common/LinebreakVisitor.ts b/ts/output/common/LinebreakVisitor.ts index a0872cdc7..d28b54027 100644 --- a/ts/output/common/LinebreakVisitor.ts +++ b/ts/output/common/LinebreakVisitor.ts @@ -109,7 +109,7 @@ export class Linebreaks< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -151,7 +151,7 @@ export class LinebreakVisitor< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrapper.ts b/ts/output/common/Wrapper.ts index 3d2844404..6e247d8a3 100644 --- a/ts/output/common/Wrapper.ts +++ b/ts/output/common/Wrapper.ts @@ -143,7 +143,7 @@ export type CommonWrapperConstructor< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -179,7 +179,7 @@ export interface CommonWrapperClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -260,7 +260,7 @@ export class CommonWrapper< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/WrapperFactory.ts b/ts/output/common/WrapperFactory.ts index 5562964ed..9a42975ab 100644 --- a/ts/output/common/WrapperFactory.ts +++ b/ts/output/common/WrapperFactory.ts @@ -60,7 +60,7 @@ export class CommonWrapperFactory< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/TeXAtom.ts b/ts/output/common/Wrappers/TeXAtom.ts index b68d9c0ff..12d9c24de 100644 --- a/ts/output/common/Wrappers/TeXAtom.ts +++ b/ts/output/common/Wrappers/TeXAtom.ts @@ -63,7 +63,7 @@ export interface CommonTeXAtom< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -94,7 +94,7 @@ export interface CommonTeXAtomClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -130,7 +130,7 @@ export function CommonTeXAtomMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/TextNode.ts b/ts/output/common/Wrappers/TextNode.ts index 10eed2797..6aa564395 100644 --- a/ts/output/common/Wrappers/TextNode.ts +++ b/ts/output/common/Wrappers/TextNode.ts @@ -65,7 +65,7 @@ export interface CommonTextNode< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -103,7 +103,7 @@ export interface CommonTextNodeClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -139,7 +139,7 @@ export function CommonTextNodeMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/XmlNode.ts b/ts/output/common/Wrappers/XmlNode.ts index bc5e36f03..3bb86e4fa 100644 --- a/ts/output/common/Wrappers/XmlNode.ts +++ b/ts/output/common/Wrappers/XmlNode.ts @@ -67,7 +67,7 @@ export interface CommonXmlNode< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -128,7 +128,7 @@ export interface CommonXmlNodeClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -164,7 +164,7 @@ export function CommonXmlNodeMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/maction.ts b/ts/output/common/Wrappers/maction.ts index a9ba4cc53..e3f6cac17 100644 --- a/ts/output/common/Wrappers/maction.ts +++ b/ts/output/common/Wrappers/maction.ts @@ -70,7 +70,7 @@ export type ActionHandler< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -86,7 +86,7 @@ export type ActionPair< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -105,7 +105,7 @@ export type ActionMap< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -121,7 +121,7 @@ export type ActionDef< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -189,7 +189,7 @@ export interface CommonMaction< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -252,7 +252,7 @@ export interface CommonMactionClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -296,7 +296,7 @@ export function CommonMactionMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/math.ts b/ts/output/common/Wrappers/math.ts index b7b949308..d54aefb89 100644 --- a/ts/output/common/Wrappers/math.ts +++ b/ts/output/common/Wrappers/math.ts @@ -63,7 +63,7 @@ export interface CommonMath< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -94,7 +94,7 @@ export interface CommonMathClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -130,7 +130,7 @@ export function CommonMathMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/menclose.ts b/ts/output/common/Wrappers/menclose.ts index 9fc2d4315..d1a78db6d 100644 --- a/ts/output/common/Wrappers/menclose.ts +++ b/ts/output/common/Wrappers/menclose.ts @@ -69,7 +69,7 @@ export interface CommonMenclose< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -236,7 +236,7 @@ export interface CommonMencloseClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -278,7 +278,7 @@ export function CommonMencloseMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mfenced.ts b/ts/output/common/Wrappers/mfenced.ts index 86bc419d2..a1cc88d40 100644 --- a/ts/output/common/Wrappers/mfenced.ts +++ b/ts/output/common/Wrappers/mfenced.ts @@ -66,7 +66,7 @@ export interface CommonMfenced< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -121,7 +121,7 @@ export interface CommonMfencedClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -157,7 +157,7 @@ export function CommonMfencedMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mfrac.ts b/ts/output/common/Wrappers/mfrac.ts index 4d20e3ce2..16a58bae4 100644 --- a/ts/output/common/Wrappers/mfrac.ts +++ b/ts/output/common/Wrappers/mfrac.ts @@ -66,7 +66,7 @@ export interface CommonMfrac< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -168,7 +168,7 @@ export interface CommonMfracClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -204,7 +204,7 @@ export function CommonMfracMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mglyph.ts b/ts/output/common/Wrappers/mglyph.ts index eaab08df0..021ede1af 100644 --- a/ts/output/common/Wrappers/mglyph.ts +++ b/ts/output/common/Wrappers/mglyph.ts @@ -65,7 +65,7 @@ export interface CommonMglyph< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -123,7 +123,7 @@ export interface CommonMglyphClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -159,7 +159,7 @@ export function CommonMglyphMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mi.ts b/ts/output/common/Wrappers/mi.ts index 53f804f7f..fd2c340ce 100644 --- a/ts/output/common/Wrappers/mi.ts +++ b/ts/output/common/Wrappers/mi.ts @@ -63,7 +63,7 @@ export interface CommonMi< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -94,7 +94,7 @@ export interface CommonMiClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -130,7 +130,7 @@ export function CommonMiMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mmultiscripts.ts b/ts/output/common/Wrappers/mmultiscripts.ts index ae095bbf7..5bbe3e23c 100644 --- a/ts/output/common/Wrappers/mmultiscripts.ts +++ b/ts/output/common/Wrappers/mmultiscripts.ts @@ -106,7 +106,7 @@ export interface CommonMmultiscripts< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -203,7 +203,7 @@ export interface CommonMmultiscriptsClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -239,7 +239,7 @@ export function CommonMmultiscriptsMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mn.ts b/ts/output/common/Wrappers/mn.ts index 05e72c42e..b213a347b 100644 --- a/ts/output/common/Wrappers/mn.ts +++ b/ts/output/common/Wrappers/mn.ts @@ -62,7 +62,7 @@ export interface CommonMn< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -93,7 +93,7 @@ export interface CommonMnClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -129,7 +129,7 @@ export function CommonMnMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mo.ts b/ts/output/common/Wrappers/mo.ts index 1bd017db9..6fea485c6 100644 --- a/ts/output/common/Wrappers/mo.ts +++ b/ts/output/common/Wrappers/mo.ts @@ -68,7 +68,7 @@ export interface CommonMo< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -220,7 +220,7 @@ export interface CommonMoClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -256,7 +256,7 @@ export function CommonMoMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -387,7 +387,7 @@ export function CommonMoMixin< const C = this.getText().codePointAt(0); let delim = this.stretch; if (this.size) { - this.stretch = delim = this.font.getDelimiter(C) as DD; + this.stretch = delim = this.font.getDelimiter(C, this.variant) as DD; this.size = null; } const c = delim.c || C; @@ -426,7 +426,7 @@ export function CommonMoMixin< */ protected setDelimSize(c: number, i: number) { const delim = this.stretch; - this.variant = this.font.getSizeVariant(c, i); + this.variant = this.font.getSizeVariant(c, i, this.variant); this.size = i; const schar = delim.schar ? delim.schar[Math.min(i, delim.schar.length - 1)] || c @@ -667,7 +667,7 @@ export function CommonMoMixin< if (!attributes.get('stretchy')) return false; const c = this.getText(); if (Array.from(c).length !== 1) return false; - const delim = this.font.getDelimiter(c.codePointAt(0)); + const delim = this.font.getDelimiter(c.codePointAt(0), this.variant); this.stretch = ( delim && delim.dir === direction ? delim : NOSTRETCH ) as DD; diff --git a/ts/output/common/Wrappers/mpadded.ts b/ts/output/common/Wrappers/mpadded.ts index acbc5a6b0..88ede142c 100644 --- a/ts/output/common/Wrappers/mpadded.ts +++ b/ts/output/common/Wrappers/mpadded.ts @@ -64,7 +64,7 @@ export interface CommonMpadded< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -123,7 +123,7 @@ export interface CommonMpaddedClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -159,7 +159,7 @@ export function CommonMpaddedMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mroot.ts b/ts/output/common/Wrappers/mroot.ts index 49f7bcce7..3f841c441 100644 --- a/ts/output/common/Wrappers/mroot.ts +++ b/ts/output/common/Wrappers/mroot.ts @@ -60,7 +60,7 @@ export interface CommonMroot< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -91,7 +91,7 @@ export interface CommonMrootClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -127,7 +127,7 @@ export function CommonMrootMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mrow.ts b/ts/output/common/Wrappers/mrow.ts index 01dd522d8..cc911fec7 100644 --- a/ts/output/common/Wrappers/mrow.ts +++ b/ts/output/common/Wrappers/mrow.ts @@ -66,7 +66,7 @@ export interface CommonMrow< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -113,7 +113,7 @@ export interface CommonMrowClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -149,7 +149,7 @@ export function CommonMrowMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -478,7 +478,7 @@ export interface CommonInferredMrow< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -509,7 +509,7 @@ export interface CommonInferredMrowClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -545,7 +545,7 @@ export function CommonInferredMrowMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/ms.ts b/ts/output/common/Wrappers/ms.ts index 9bb99ae14..b4dc892ff 100644 --- a/ts/output/common/Wrappers/ms.ts +++ b/ts/output/common/Wrappers/ms.ts @@ -63,7 +63,7 @@ export interface CommonMs< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -102,7 +102,7 @@ export interface CommonMsClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -138,7 +138,7 @@ export function CommonMsMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mspace.ts b/ts/output/common/Wrappers/mspace.ts index 6b961d0de..2fd9151b9 100644 --- a/ts/output/common/Wrappers/mspace.ts +++ b/ts/output/common/Wrappers/mspace.ts @@ -66,7 +66,7 @@ export interface CommonMspace< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -114,7 +114,7 @@ export interface CommonMspaceClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -150,7 +150,7 @@ export function CommonMspaceMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/msqrt.ts b/ts/output/common/Wrappers/msqrt.ts index b7980b41d..633b9ed7a 100644 --- a/ts/output/common/Wrappers/msqrt.ts +++ b/ts/output/common/Wrappers/msqrt.ts @@ -66,7 +66,7 @@ export interface CommonMsqrt< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -149,7 +149,7 @@ export interface CommonMsqrtClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -185,7 +185,7 @@ export function CommonMsqrtMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/msubsup.ts b/ts/output/common/Wrappers/msubsup.ts index d997d60d2..a431aaf64 100644 --- a/ts/output/common/Wrappers/msubsup.ts +++ b/ts/output/common/Wrappers/msubsup.ts @@ -70,7 +70,7 @@ export interface CommonMsub< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -101,7 +101,7 @@ export interface CommonMsubClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -137,7 +137,7 @@ export function CommonMsubMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -199,7 +199,7 @@ export interface CommonMsup< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -230,7 +230,7 @@ export interface CommonMsupClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -266,7 +266,7 @@ export function CommonMsupMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -323,7 +323,7 @@ export interface CommonMsubsup< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -379,7 +379,7 @@ export interface CommonMsubsupClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -415,7 +415,7 @@ export function CommonMsubsupMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mtable.ts b/ts/output/common/Wrappers/mtable.ts index 3c908ad44..48673e6c6 100644 --- a/ts/output/common/Wrappers/mtable.ts +++ b/ts/output/common/Wrappers/mtable.ts @@ -98,7 +98,7 @@ export interface CommonMtable< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -469,7 +469,7 @@ export interface CommonMtableClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -506,7 +506,7 @@ export function CommonMtableMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mtd.ts b/ts/output/common/Wrappers/mtd.ts index 36ab52250..c35817818 100644 --- a/ts/output/common/Wrappers/mtd.ts +++ b/ts/output/common/Wrappers/mtd.ts @@ -64,7 +64,7 @@ export interface CommonMtd< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -95,7 +95,7 @@ export interface CommonMtdClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -131,7 +131,7 @@ export function CommonMtdMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mtext.ts b/ts/output/common/Wrappers/mtext.ts index 748d58a9d..b78b8d9f2 100644 --- a/ts/output/common/Wrappers/mtext.ts +++ b/ts/output/common/Wrappers/mtext.ts @@ -65,7 +65,7 @@ export interface CommonMtext< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -128,7 +128,7 @@ export interface CommonMtextClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -172,7 +172,7 @@ export function CommonMtextMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/mtr.ts b/ts/output/common/Wrappers/mtr.ts index 6446a406a..4e75e4732 100644 --- a/ts/output/common/Wrappers/mtr.ts +++ b/ts/output/common/Wrappers/mtr.ts @@ -66,7 +66,7 @@ export interface CommonMtr< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -133,7 +133,7 @@ export interface CommonMtrClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -169,7 +169,7 @@ export function CommonMtrMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -307,7 +307,7 @@ export interface CommonMlabeledtr< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -338,7 +338,7 @@ export interface CommonMlabeledtrClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -374,7 +374,7 @@ export function CommonMlabeledtrMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/munderover.ts b/ts/output/common/Wrappers/munderover.ts index 2a9f5f1fb..94c7fbfce 100644 --- a/ts/output/common/Wrappers/munderover.ts +++ b/ts/output/common/Wrappers/munderover.ts @@ -70,7 +70,7 @@ export interface CommonMunder< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -101,7 +101,7 @@ export interface CommonMunderClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -137,7 +137,7 @@ export function CommonMunderMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -216,7 +216,7 @@ export interface CommonMover< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -247,7 +247,7 @@ export interface CommonMoverClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -282,7 +282,7 @@ export function CommonMoverMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -364,7 +364,7 @@ export interface CommonMunderover< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -405,7 +405,7 @@ export interface CommonMunderoverClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -441,7 +441,7 @@ export function CommonMunderoverMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/scriptbase.ts b/ts/output/common/Wrappers/scriptbase.ts index 192e8c7f9..f3ed7ab03 100644 --- a/ts/output/common/Wrappers/scriptbase.ts +++ b/ts/output/common/Wrappers/scriptbase.ts @@ -74,7 +74,7 @@ export interface CommonScriptbase< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -317,7 +317,7 @@ export interface CommonScriptbaseClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -355,7 +355,7 @@ export type CommonScriptbaseConstructor< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -392,7 +392,7 @@ export function CommonScriptbaseMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/common/Wrappers/semantics.ts b/ts/output/common/Wrappers/semantics.ts index 5a5266e0a..7f1ba0ce0 100644 --- a/ts/output/common/Wrappers/semantics.ts +++ b/ts/output/common/Wrappers/semantics.ts @@ -63,7 +63,7 @@ export interface CommonSemantics< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -94,7 +94,7 @@ export interface CommonSemanticsClass< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, @@ -130,7 +130,7 @@ export function CommonSemanticsMixin< WF extends CommonWrapperFactory, WC extends CommonWrapperClass, CC extends CharOptions, - VV extends VariantData, + VV extends VariantData, DD extends DelimiterData, FD extends FontData, FC extends FontDataClass, diff --git a/ts/output/svg/FontData.ts b/ts/output/svg/FontData.ts index 312317274..88b9700a5 100644 --- a/ts/output/svg/FontData.ts +++ b/ts/output/svg/FontData.ts @@ -53,7 +53,10 @@ export type SvgCharData = CharDataArray; /** * The extra data needed for a Variant in SVG output */ -export interface SvgVariantData extends VariantData { +export interface SvgVariantData extends VariantData< + SvgCharOptions, + SvgDelimiterData +> { cacheID: string; } diff --git a/ts/output/svg/Wrappers/mo.ts b/ts/output/svg/Wrappers/mo.ts index 087330bec..341034027 100644 --- a/ts/output/svg/Wrappers/mo.ts +++ b/ts/output/svg/Wrappers/mo.ts @@ -210,11 +210,11 @@ export const SvgMo = (function (): SvgMoClass { * * @returns {string[]} The variants array */ - protected getStretchVariants() { + protected getStretchVariants(): string[] { const c = this.stretch.c || this.getText().codePointAt(0); const variants = [] as string[]; for (const i of this.stretch.stretch.keys()) { - variants[i] = this.font.getStretchVariant(c, i); + variants[i] = this.font.getStretchVariant(c, i, this.variant); } return variants; }