MathObjectType

MathObjectType enumeration

Anger typen av ett Office Math-objekt.

public enum MathObjectType

Värderingar

namnVärdeBeskrivning
OMath0Förekomst av matematisk text.
OMathPara1Matematisk stycke, eller visa matematikzon, som innehåller en eller fleraOMath element som är i visningsläge.
Accent2Accentfunktion, bestående av en bas och ett kombinerat diakritiskt tecken.
Bar3Bar funktion, bestående av ett basargument och en överstreck eller understreck.
BorderBox4Border Box-objekt, som består av en ram som ritas runt en instans av matematisk text (som en formel eller ekvation)
Box5Box-objekt, som används för att gruppera komponenter i en ekvation eller annan instans av matematisk text.
Delimiter6Avgränsningsobjekt, bestående av öppnande och stängda avgränsare (som parenteser, parenteser, parenteser och vertikala streck) och ett element inuti.
Degree7Examen i den matematiska radikalen.
Argument8Argumentobjekt. Omger Office Math-entiteter när de används som argument till andra Office Math-entiteter.
Array9Arrayobjekt 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.
Fraction10Bråkobjekt, bestående av en täljare och nämnare separerade av en bråkstapel.
Denominator11Nämnare för ett bråkobjekt.
Numerator12Täljare för bråkobjektet.
Function13Function-Apply-objekt, som består av ett funktionsnamn och ett argumentelement som åtgärdas.
FunctionName14Namn på funktionen. Funktionsnamn är till exempel sin och cos.
GroupCharacter15Grupp-teckenobjekt, som består av ett tecken ritat över eller under text, ofta i syfte att visuellt gruppera objekt
Limit16Nedre gräns förLowerLimit objekt och den övre gränsen förUpperLimit function.
LowerLimit17Lower-Limit-objekt, bestående av text på baslinjen och förminskad text omedelbart under det.
UpperLimit18Upper-Limit-objekt, bestående av text på baslinjen och förminskad text omedelbart ovanför det.
Matrix19Matrisobjekt, bestående av ett eller flera element utlagda i en eller flera rader och en eller flera kolumner.
MatrixRow20Enkel rad i matrisen.
NAry21N-ärt objekt, bestående av ett n-ärt objekt, en bas (eller operand) och valfria övre och nedre gränser.
Phantom22Fantomobjekt.
Radical23Radikalt objekt, bestående av en radikal, ett baselement och en valfri grad .
SubscriptPart24Subscript för objektet som kan ha subscript del.
SuperscriptPart25Upphöjd skrift för objektet upphöjd.
PreSubSuperscript26Pre-Sub-Superscript-objekt, som består av ett baselement och en subscript och superscript placerad till vänster om basen.
Subscript27Subscript-objekt, som består av ett baselement och ett förminskat skript placerat under och till höger.
SubSuperscript28Sub-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.
Supercript29Superscript-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