MathObjectType

MathObjectType enumeration

Anger typen av ett Office Math-objekt.

public enum MathObjectType

Värderingar

namnVärdeBeskrivning
OMath0Instans av matematisk text.
OMathPara1Matematikstycke, eller visningsmattezon, som innehåller en eller fleraOMath element som är i visningsläge.
Accent2Accentfunktion, bestående av en bas och ett kombinerande diakritiskt tecken.
Bar3Stapelfunktion, bestående av ett basargument och ett över- eller understreck.
BorderBox4Border Box-objekt, bestående av en kantlinje ritad runt en förekomst av matematisk text (såsom en formel eller ekvation)
Box5Boxobjekt, som används för att gruppera komponenter i en ekvation eller annan instans av matematisk text.
Delimiter6Avgränsningsteckenobjekt, bestående av inledande och avslutande avgränsare (såsom parenteser, klammerparenteser, hakparenteser och vertikala streck), och ett element inuti.
Degree7Grad i den matematiska radikalen.
Argument8Argumentobjekt. Omsluter Office Math-entiteter när de används som argument till andra Office Math-entiteter.
Array9Arrayobjekt, bestående av en eller flera ekvationer, uttryck eller andra matematiska textkörningar som kan justeras vertikalt som en enhet i förhållande till omgivande text på raden.
Fraction10Bråkobjekt, bestående av en täljare och nämnare separerade med en bråkstreck.
Denominator11Nämnaren i ett bråkobjekt.
Numerator12Täljare för bråkobjektet.
Function13Function-Apply-objekt, som består av ett funktionsnamn och ett argumentelement som påverkas.
FunctionName14Funktionens namn. Till exempel är funktionsnamn sin och cos.
GroupCharacter15Grupp-Teckenobjekt, bestående av ett tecken ritat ovanför eller under text, ofta i syfte att visuellt gruppera objekt
Limit16Nedre gräns förLowerLimit objektet och den övre gränsen förUpperLimit funktion.
LowerLimit17Nedre gränsobjekt, bestående av text på baslinjen och förminskad text omedelbart under den.
UpperLimit18Övre gränsobjekt, bestående av text på baslinjen och förminskad text omedelbart ovanför den.
Matrix19Matrisobjekt, bestående av ett eller flera element utplacerade i en eller flera rader och en eller flera kolumner.
MatrixRow20En rad i matrisen.
NAry21N-ärt objekt, bestående av ett n-ärt objekt, en bas (eller operand) och valfria övre och undre gränser.
Phantom22Fantomobjekt.
Radical23Radikalobjekt, bestående av en radikal, ett baselement och en valfri grad .
SubscriptPart24Subskript för objektet som kan ha en subskriptdel.
SuperscriptPart25Upphöjd skrift för det upphöjda objektet.
PreSubSuperscript26Pre-Sub-Superscript-objekt, som består av ett baselement och ett subscript och ett superscript placerade till vänster om basen.
Subscript27Subscript-objekt, som består av ett baselement och ett skript i reducerad storlek placerat nedanför och till höger.
SubSuperscript28Sub-superscript-objekt, som består av ett baselement, ett skript med reducerad storlek placerat nedanför och till höger, och ett skript med reducerad storlek placerat ovanför och till höger.
Supercript29Superscript-objekt, som består av ett baselement och ett förminskat skript placerat ovanför och till höger.

Exempel

Visar hur man skriver ut nodstrukturen för varje kontorsmatematiknod 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 undernoder.
/// Skapar en karta i form av en sträng av alla påträffade OfficeMath-noder och deras undernoder.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
    public OfficeMathStructurePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideOfficeMath = false;
    }

    /// <summary>
    /// Hämtar klartexten från dokumentet som besökaren samlade in.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    /// <summary>
    /// Anropas när en Run-nod 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 till 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 inne i dokumentträdet besökaren befinner sig.
    /// </summary>
    /// <param namn="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