MathObjectType

MathObjectType enumeration

Anger typen av ett Office Math-objekt.

public enum MathObjectType

Värderingar

namn Värde Beskrivning
OMath 0 Förekomst av matematisk text.
OMathPara 1 Matematisk stycke, eller visa matematikzon, som innehåller en eller fleraOMath element som är i visningsläge.
Accent 2 Accentfunktion, bestående av en bas och ett kombinerat diakritiskt tecken.
Bar 3 Bar funktion, bestående av ett basargument och en överstreck eller understreck.
BorderBox 4 Border Box-objekt, som består av en ram som ritas runt en instans av matematisk text (som en formel eller ekvation)
Box 5 Box-objekt, som används för att gruppera komponenter i en ekvation eller annan instans av matematisk text.
Delimiter 6 Avgränsningsobjekt, bestående av öppnande och stängda avgränsare (som parenteser, parenteser, parenteser och vertikala streck) och ett element inuti.
Degree 7 Examen i den matematiska radikalen.
Argument 8 Argumentobjekt. Omger Office Math-entiteter när de används som argument till andra Office Math-entiteter.
Array 9 Arrayobjekt som består av en eller flera ekvationer, uttryck eller annan matematisk text körs som kan justeras vertikalt som en enhet med avseende på omgivande text på raden.
Fraction 10 Bråkobjekt, bestående av en täljare och nämnare separerade av en bråkstapel.
Denominator 11 Nämnare för ett bråkobjekt.
Numerator 12 Täljare för bråkobjektet.
Function 13 Function-Apply-objekt, som består av ett funktionsnamn och ett argumentelement som åtgärdas.
FunctionName 14 Namn på funktionen. Funktionsnamn är till exempel sin och cos.
GroupCharacter 15 Grupp-teckenobjekt, som består av ett tecken ritat över eller under text, ofta i syfte att visuellt gruppera objekt
Limit 16 Nedre gräns förLowerLimit objekt och den övre gränsen förUpperLimit function.
LowerLimit 17 Lower-Limit-objekt, bestående av text på baslinjen och förminskad text omedelbart under det.
UpperLimit 18 Upper-Limit-objekt, bestående av text på baslinjen och förminskad text omedelbart ovanför det.
Matrix 19 Matrisobjekt, bestående av ett eller flera element utlagda i en eller flera rader och en eller flera kolumner.
MatrixRow 20 Enkel rad i matrisen.
NAry 21 N-ärt objekt, bestående av ett n-ärt objekt, en bas (eller operand) och valfria övre och nedre gränser.
Phantom 22 Fantomobjekt.
Radical 23 Radikalt objekt, bestående av en radikal, ett baselement och en valfri grad .
SubscriptPart 24 Subscript för objektet som kan ha subscript del.
SuperscriptPart 25 Upphöjd skrift för objektet upphöjd.
PreSubSuperscript 26 Pre-Sub-Superscript-objekt, som består av ett baselement och en subscript och superscript placerad till vänster om basen.
Subscript 27 Subscript-objekt, som består av ett baselement och ett förminskat skript placerat under och till höger.
SubSuperscript 28 Sub-superscript-objekt, som består av ett baselement, ett reducerat skript placerat under och till höger, och ett reducerat skript placerat ovanför och till höger.
Supercript 29 Superscript-objekt, som består av ett baselement och ett skript i förminskad storlek placerat ovanför och till höger.

Exempel

Visar hur man skriver ut nodstrukturen för varje kontors matematisk nod i ett dokument.

public void OfficeMathToText()
{
    Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
    OfficeMathStructurePrinter visitor = new OfficeMathStructurePrinter();

    // När vi får en sammansatt nod att acceptera en dokumentbesökare, besöker besökaren den accepterande noden,
    // och sedan korsar alla nodens barn på ett djup-först sätt.
    // Besökaren kan läsa och ändra varje besökt nod.
    doc.Accept(visitor);

    Console.WriteLine(visitor.GetText());
}

/// <summary>
/// Går igenom en nods icke-binära träd av underordnade noder.
/// Skapar en karta i form av en sträng av alla påträffade OfficeMath-noder och deras barn.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
    public OfficeMathStructurePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideOfficeMath = false;
    }

    /// <summary>
    /// Hämtar vanlig text av dokumentet som samlades av besökaren.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    /// <summary>
    /// Anropas när en körnod påträffas i dokumentet.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mVisitorIsInsideOfficeMath) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Anropas när en OfficeMath-nod påträffas i dokumentet.
    /// </summary>
    public override VisitorAction VisitOfficeMathStart(OfficeMath officeMath)
    {
        IndentAndAppendLine("[OfficeMath start] Math object type: " + officeMath.MathObjectType);
        mDocTraversalDepth++;
        mVisitorIsInsideOfficeMath = true;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Anropas efter att alla undernoder i en OfficeMath-nod har besökts.
    /// </summary>
    public override VisitorAction VisitOfficeMathEnd(OfficeMath officeMath)
    {
        mDocTraversalDepth--;
        IndentAndAppendLine("[OfficeMath end]");
        mVisitorIsInsideOfficeMath = false;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Lägg till en rad i StringBuilder och dra in den beroende på hur djupt besökaren befinner sig i dokumentträdet.
    /// </summary>
    /// <param name="text"></param>
    private void IndentAndAppendLine(string text)
    {
        for (int i = 0; i < mDocTraversalDepth; i++) mBuilder.Append("|  ");

        mBuilder.AppendLine(text);
    }

    private bool mVisitorIsInsideOfficeMath;
    private int mDocTraversalDepth;
    private readonly StringBuilder mBuilder;
}

Se även