MathObjectType

MathObjectType enumeration

Spécifie le type d’un objet Office Math.

public enum MathObjectType

Valeurs

NomÉvaluerLa description
OMath0Instance de texte mathématique.
OMathPara1Paragraphe mathématique, ou zone d’affichage mathématique, qui contient un ou plusieursOMath éléments qui sont en mode d’affichage.
Accent2Fonction Accent, composée d’une base et d’un signe diacritique combiné.
Bar3Fonction Bar, composée d’un argument de base et d’une barre supérieure ou inférieure.
BorderBox4Objet Border Box, constitué d’une bordure dessinée autour d’une instance de texte mathématique (comme une formule ou une équation)
Box5Objet Box, utilisé pour regrouper les composants d’une équation ou d’une autre instance de texte mathématique.
Delimiter6Objet Delimiter, composé de délimiteurs ouvrants et fermants (tels que des parenthèses, des accolades , des crochets et des barres verticales) et d’un élément contenu à l’intérieur.
Degree7Diplôme dans le radical mathématique.
Argument8Objet argument. Entoure les entités Office Math lorsqu’elles sont utilisées comme arguments pour d’autres entités Office Math.
Array9Objet tableau, composé d’une ou plusieurs équations, expressions ou autres passages de texte mathématique qui peuvent être justifiés verticalement en tant qu’unité par rapport au texte environnant sur la ligne.
Fraction10Objet Fraction, composé d’un numérateur et d’un dénominateur séparés par une barre de fraction.
Denominator11Dénominateur d’un objet fraction.
Numerator12Numérateur de l’objet Fraction.
Function13Objet Function-Apply, qui se compose d’un nom de fonction et d’un élément d’argument sur lequel on agit.
FunctionName14Nom de la fonction. Par exemple, les noms de fonctions sont sin et cos.
GroupCharacter15Objet Group-Character, constitué d’un caractère dessiné au-dessus ou en dessous du texte, souvent dans le but de regrouper visuellement les éléments
Limit16Limite inférieure duLowerLimit objet et la limite supérieure duUpperLimit fonction.
LowerLimit17Objet Lower-Limit, composé de texte sur la ligne de base et de texte de taille réduite immédiatement en dessous.
UpperLimit18Objet Upper-Limit, composé de texte sur la ligne de base et de texte de taille réduite immédiatement au-dessus.
Matrix19Objet matriciel, composé d’un ou plusieurs éléments disposés en une ou plusieurs lignes et une ou plusieurs colonnes.
MatrixRow20Ligne unique de la matrice.
NAry21Objet N-aire, composé d’un objet n-aire, d’une base (ou opérande) et de limites supérieure et inférieure facultatives.
Phantom22Objet fantôme.
Radical23Objet radical, composé d’un radical, d’un élément de base et d’un degré facultatif .
SubscriptPart24Indice de l’objet pouvant avoir une partie indice.
SuperscriptPart25Exposant de l’objet exposant.
PreSubSuperscript26Objet Pre-Sub-Superscript, qui se compose d’un élément de base et d’un indice et d’un exposant placés à gauche de la base.
Subscript27Objet Indice, composé d’un élément de base et d’un script de taille réduite placé en bas et à droite.
SubSuperscript28Objet sous-exposant, composé d’un élément de base, d’un script de taille réduite placé en bas et à droite, et d’un script de taille réduite placé au-dessus et à droite.
Supercript29Objet Superscript, composé d’un élément de base et d’un script de taille réduite placé au-dessus et à droite.

Exemples

Montre comment imprimer la structure de chaque nœud mathématique de bureau dans un document.

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

    // Lorsque nous obtenons qu'un nœud composite accepte un visiteur de document, le visiteur visite le nœud accepteur,
    // puis parcourt tous les enfants du nœud en profondeur.
    // Le visiteur peut lire et modifier chaque nœud visité.
    doc.Accept(visitor);

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

/// <summary>
/// Parcourt l'arborescence non binaire des nœuds enfants d'un nœud.
/// Crée une carte sous la forme d'une chaîne de tous les nœuds OfficeMath rencontrés et de leurs enfants.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
    public OfficeMathStructurePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideOfficeMath = false;
    }

    /// <summary>
    /// Obtient le texte brut du document accumulé par le visiteur.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    /// <summary>
    /// Appelé lorsqu'un nœud Run est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mVisitorIsInsideOfficeMath) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud OfficeMath est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitOfficeMathStart(OfficeMath officeMath)
    {
        IndentAndAppendLine("[OfficeMath start] Math object type: " + officeMath.MathObjectType);
        mDocTraversalDepth++;
        mVisitorIsInsideOfficeMath = true;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé après que tous les nœuds enfants d'un nœud OfficeMath ont été visités.
    /// </summary>
    public override VisitorAction VisitOfficeMathEnd(OfficeMath officeMath)
    {
        mDocTraversalDepth--;
        IndentAndAppendLine("[OfficeMath end]");
        mVisitorIsInsideOfficeMath = false;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Ajoutez une ligne au StringBuilder et indentez-la en fonction de la profondeur du visiteur dans l'arborescence du document.
    /// </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;
}

Voir également