@mathjax/src
    Preparing search index...

    Interface CommonMenclose<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC, S>

    The CommonMenclose interface

    interface CommonMenclose<
        N,
        T,
        D,
        JX extends CommonOutputJax<N, T, D, WW, WF, WC, CC, VV, DD, FD, FC>,
        WW extends CommonWrapper<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>,
        WF extends
            CommonWrapperFactory<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>,
        WC extends CommonWrapperClass<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>,
        CC extends CharOptions,
        VV extends VariantData<CC>,
        DD extends DelimiterData,
        FD extends FontData<CC, VV, DD>,
        FC extends FontDataClass<CC, VV, DD>,
        S extends CommonMsqrt<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>,
    > {
        _breakCount: number;
        arrowhead: { dx: number; x: number; y: number };
        bbox: BBox;
        bboxComputed: boolean;
        childNodes: WW[];
        dom: N[];
        factory: WF;
        font: FD;
        lineBBox: LineBBox[];
        msqrt: S;
        node: MmlNode;
        notations: List<WW, N>;
        padding: number;
        parent: WW;
        removedStyles: StringMap;
        renderChild: Renderer<WW, N>;
        stretch: DD;
        styleData: StyleData;
        styles: Styles;
        thickness: number;
        TRBL: PaddingData;
        variant: string;
        get adaptor(): DOMAdaptor<N, T, D>;
        get breakCount(): number;
        get containerWidth(): number;
        get fixesPWidth(): boolean;
        get jax(): JX;
        get kind(): string;
        get linebreakOptions(): {
            inline: boolean;
            LinebreakVisitor: null;
            lineleading: number;
            width: string;
        };
        get linebreaks(): Linebreaks<
            N,
            T,
            D,
            CommonOutputJax<N, T, D, WW, WF, WC, CC, VV, DD, FD, FC>,
            WW,
            WF,
            WC,
            CC,
            VV,
            DD,
            FD,
            FC,
        >;
        get metrics(): Metrics;
        addLeftBorders(bbox: BBox): void;
        addMiddleBorders(bbox: BBox): void;
        addRightBorders(bbox: BBox): void;
        arrow(
            w: number,
            a: number,
            double: boolean,
            offset?: string,
            trans?: number,
        ): N;
        arrowAW(): [number, number];
        arrowData(): { a: number; W: number; x: number; y: number };
        breakTop(mrow: WW, _child: WW): WW;
        breakToWidth(_W: number): void;
        canStretch(direction: string): boolean;
        computeBBox(bbox: BBox, recompute?: boolean): void;
        computeLineBBox(i: number): LineBBox;
        copySkewIC(bbox: BBox): void;
        core(): WW;
        coreMO(): CommonMo<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>;
        coreRScale(): number;
        createMo(
            text: string,
        ): CommonMo<N, T, D, JX, WW, WF, WC, CC, VV, DD, FD, FC>;
        createMsqrt(child: WW): S;
        em(m: number): string;
        embellishedBBox(i: number): LineBBox;
        explicitVariant(
            fontFamily: string,
            fontWeight: string,
            fontStyle: string,
        ): string;
        getAlignShift(): [string, number];
        getAlignX(W: number, bbox: BBox, align: string): number;
        getAlignY(
            H: number,
            D: number,
            h: number,
            d: number,
            align: string,
        ): number;
        getArgMod(w: number, h: number): [number, number];
        getBBox(save?: boolean): BBox;
        getBBoxExtenders(): PaddingData;
        getBreakNode(bbox: LineBBox): [WW, WW];
        getChildAlign(_i: number): string;
        getChildLineBBox(child: WW, i: number): LineBBox;
        getLineBBox(i: number): LineBBox;
        getMathMLSpacing(): void;
        getNotations(): void;
        getOffset(direction: string): number;
        getOuterBBox(save?: boolean): BBox;
        getPadding(): PaddingData;
        getParameters(): void;
        getRScale(): number;
        getScale(): void;
        getSpace(): void;
        getStyleData(): void;
        getStyles(): void;
        getTeXSpacing(isTop: boolean, hasSpacing: boolean): void;
        getText(): string;
        getUnbrokenHD(): [number, number];
        getVariant(): void;
        getVariantChar(variant: string, n: number): CharDataArray<CC>;
        getWrapWidth(i: number): number;
        html(type: string, def?: OptionList, content?: (N | T)[]): N;
        initializeNotations(): void;
        invalidateBBox(bubble?: boolean): void;
        isTopEmbellished(): boolean;
        length2em(length: Property, size?: number, scale?: number): number;
        maximizeEntries(X: PaddingData, Y: PaddingData): void;
        mmlNode(
            kind: string,
            properties?: PropertyList,
            children?: MmlNode[],
        ): MmlNode;
        mmlText(text: string): TextNode;
        percent(m: number): string;
        processIndent(
            indentalign: string,
            indentshift: string,
            align?: string,
            shift?: string,
            width?: number,
        ): [string, number];
        px(m: number, M?: number): string;
        remapChars(chars: number[]): number[];
        removeRedundantNotations(): void;
        setChildPWidths(recompute: boolean, w?: number, clear?: boolean): boolean;
        sqrtTRBL(): number[];
        unicodeChars(text: string, name?: string): number[];
        walkTree(func: (node: WW, data?: any) => void, data?: any): any;
        wrap<TT = WW>(node: MmlNode, parent?: WW): TT;
    }

    Type Parameters

    Hierarchy (View Summary)

    Index

    Properties

    _breakCount: number = -1

    The cached number of linebreaks

    arrowhead: { dx: number; x: number; y: number }

    The shape of the arrow head (may be overridden using data-arrowhead attibutes)

    bbox: BBox

    The bounding box for this node

    bboxComputed: boolean = false

    Whether the bounding box has been computed yet

    childNodes: WW[]

    The children of this node

    dom: N[] = null

    The DOM tree generated for this wrapper

    factory: WF

    The factory used to create more wrappers

    font: FD = null

    Easy access to the font parameters

    lineBBox: LineBBox[] = []

    Sizes of lines into which the element is broken

    msqrt: S

    A fake msqrt for radial notation (if used)

    node: MmlNode
    notations: List<WW, N>

    The notations active on this menclose, if any

    padding: number

    The padding of the arrow head (may be overridden using data-padding attibute)

    parent: WW = null

    The parent of this node

    removedStyles: StringMap = null

    Styles that must be handled directly by the wrappers (mostly having to do with fonts)

    renderChild: Renderer<WW, N>

    The notation to use for the child, if any

    stretch: DD = ...

    Delimiter data for stretching this node (NOSTRETCH means not yet determined)

    styleData: StyleData = null

    The padding and border information from the style attribute

    styles: Styles = null

    The explicit styles set by the node

    thickness: number

    The thickness of the arrow head (may be overridden using data-thickness attibute)

    The top, right, bottom, and left padding, added by notations

    variant: string = ''

    The mathvariant for this node

    Accessors

    • get breakCount(): number

      Returns number

      The number of breakpoints in the node

    • get containerWidth(): number

      Easy access to the container width

      Returns number

      The container width

    • get fixesPWidth(): boolean

      Returns boolean

      True if children with percentage widths should be resolved by this container

    • get linebreakOptions(): {
          inline: boolean;
          LinebreakVisitor: null;
          lineleading: number;
          width: string;
      }

      Easy access to the linebreak options

      Returns { inline: boolean; LinebreakVisitor: null; lineleading: number; width: string }

      The linebreak options

    Methods

    • Create an arrow for output

      Parameters

      • w: number

        The length of the arrow

      • a: number

        The angle for the arrow

      • double: boolean

        True if this is a double-headed arrow

      • Optionaloffset: string

        'X' for vertical arrow, 'Y' for horizontal

      • Optionaltrans: number

        Distance to translate in the offset direction

      Returns N

      The newly created arrow

    • Get the angle and width of a diagonal arrow, plus the x and y extension past the content bounding box

      Returns { a: number; W: number; x: number; y: number }

    • Parameters

      • bbox: BBox

        The bounding box to modify (either this.bbox, or an empty one)

      • recompute: boolean = false

        True if we are recomputing due to changes in children that have percentage widths

      Returns void

    • Create an unattached msqrt wrapper to render the 'radical' notation. We replace the inferred mrow of the msqrt with the one from the menclose but without changing the parent pointer, so as not to detach it from the menclose (which would desrtoy the original MathML tree).

      Parameters

      • child: WW

        The inferred mrow that is the child of this menclose

      Returns S

      The newly created (but detached) msqrt wrapper

    • Set the CSS for a token element having an explicit font (rather than regular mathvariant).

      Parameters

      • fontFamily: string

        The font family to use

      • fontWeight: string

        The font weight to use

      • fontStyle: string

        The font style to use

      Returns string

      The explicit font marker

    • Parameters

      • H: number

        The total height

      • D: number

        The total depth

      • h: number

        The height to be aligned

      • d: number

        The depth to be aligned

      • align: string

        How to align (top, bottom, center, axis, baseline)

      Returns number

      The y position of the aligned baseline

    • Parameters

      • w: number

        The width of the box whose diagonal is needed

      • h: number

        The height of the box whose diagonal is needed

      Returns [number, number]

      The angle and width of the diagonal of the box

    • Return the wrapped node's bounding box, either the cached one, if it exists, or computed directly if not.

      Parameters

      • save: boolean = true

        Whether to cache the bbox or not (used for stretchy elements)

      Returns BBox

      The computed bounding box

    • Get the bounding box for the i-th line (first and last may be part of a surrounding line). Get the bbox from the lineBBox cache, or compute it, as needed.

      Parameters

      • i: number

        The number of the segment whose sizes are to be obtained

      Returns LineBBox

      The bounding box of the specified segment

    • Get the offset amount for the given direction for vertical and horizontal centering

      Parameters

      • direction: string

        The direction 'X' or 'Y' for the offset

      Returns number

      The amount of offset in that direction

    • Return the wrapped node's bounding box that includes borders and padding

      Parameters

      • save: boolean = true

        Whether to cache the bbox or not (used for stretchy elements)

      Returns BBox

      The computed bounding box

    • Get the spacing using the TeX rules

      Parameters

      • isTop: boolean

        True when this is a top-level embellished operator

      • hasSpacing: boolean

        True when there is an explicit or inherited 'form' attribute

      Returns void

    • Parameters

      • length: Property

        A dimension (giving number and units) or number to be converted to ems

      • size: number = 1

        The default size of the dimension (for percentage values)

      • scale: number = null

        The current scaling factor (to handle absolute units)

      Returns number

      The dimension converted to ems

    • Parameters

      • indentalign: string

        The indentalign to process

      • indentshift: string

        The indentshift to process

      • align: string = ''

        The default alignment for 'auto'

      • shift: string = ''

        The default indentshift for 'auto'

      • width: number = ...

        The container width for relative shifts

      Returns [string, number]

      The alignment and indentation shift (normal and last) for the Mo

    • Parameters

      • m: number

        A number of em's to be shown as pixels

      • M: number = -LENGTHS.BIGDIMEN

        The minimum number of pixels to allow

      Returns string

      The number with units of px

    • Recursively resolve any percentage widths in the child nodes using the given container width (or the child width, if none was passed). Overriden for mtables in order to compute the width.

      Parameters

      • recompute: boolean

        True if we are recomputing due to changes in children

      • w: number = null

        The width of the container (from which percentages are computed)

      • clear: boolean = true

        True if pwidth marker is to be cleared

      Returns boolean

      True if a percentage width was found

    • Returns number[]

      The differences between the msqrt bounding box and its child bounding box (i.e., the extra space created by the radical symbol).

    • Parameters

      • text: string

        The text to turn into unicode locations

      • name: string = ...

        The name of the variant for the characters

      Returns number[]

      Array of numbers represeting the string's unicode character positions