Esempio n. 1
0
        internal static string MathAtomToString(I_ExtensionAtom atom)
        {
            switch (atom)
            {
            case RaiseBox r:
                return($@"\raisebox{{{r.Raise.Length}{(r.Raise.IsMu ? "mu" : "pt")}}}{{{Builder.MathListToString(r.InnerList)}}}");

            default:
                throw new InvalidCodePathException($"Atom implements {nameof(I_ExtensionAtom)} but its type is unknown?");
            }
        }
Esempio n. 2
0
        internal static void CreateDisplayAtom <TFont, TGlyph>(Typesetter <TFont, TGlyph> t, I_ExtensionAtom atom)
            where TFont : IFont <TGlyph>
        {
            switch (atom.AtomType)
            {
            case MathAtomType.RaiseBox:
                t.AddDisplayLine(false);
                var raiseBox      = atom as RaiseBox;
                var raisedDisplay = Typesetter <TFont, TGlyph> .CreateLine(raiseBox.InnerList, t._font, t._context, t._style);

                var raisedPosition = t._currentPosition;
                raisedPosition.Y      += raiseBox.Raise.ActualLength(t._mathTable, t._font);
                raisedDisplay.Position = raisedPosition;
                t._currentPosition.X  += raisedDisplay.Width;
                t._displayAtoms.Add(raisedDisplay);
                break;
            }
        }