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 mathématique d’affichage, qui contient un ou plusieursOMath éléments qui sont en mode d’affichage.
Accent2Fonction d’accentuation, composée d’une base et d’un signe diacritique combiné.
Bar3Fonction de barre, 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, qui est utilisé pour regrouper les composants d’une équation ou d’une autre instance de texte mathématique.
Delimiter6Objet délimiteur, 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 en radical mathématique.
Argument8Objet argument. Englobe les entités Office Math utilisées comme arguments d’autres entités Office Math.
Array9Objet tableau, composé d’une ou plusieurs équations, expressions ou autres textes mathématiques, qui peuvent être justifiés verticalement comme une 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 fractionnaire.
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 fonction sont sin et cos.
GroupCharacter15Objet de groupe-caractère, constitué d’un caractère dessiné au-dessus ou au-dessous du texte, souvent dans le but de regrouper visuellement des éléments
Limit16Limite inférieure de laLowerLimit objet et la limite supérieure de laUpperLimit fonction.
LowerLimit17Objet de limite inférieure, composé de texte sur la ligne de base et de texte de taille réduite immédiatement en dessous.
UpperLimit18Objet de limite supérieure, composé de texte sur la ligne de base et de texte de taille réduite immédiatement au-dessus.
Matrix19Objet matriciel, constitué d’un ou plusieurs éléments disposés sur 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é optionnel.
SubscriptPart24Indice de l’objet qui peut avoir une partie en indice.
SuperscriptPart25Exposant de l’objet exposant.
PreSubSuperscript26Objet pré-sous-exposant, qui se compose d’un élément de base et d’un indice et d’un exposant placés à gauche de la base.
Subscript27Objet Subscript, qui se compose d’un élément de base et d’un script de taille réduite placé en dessous et à droite.
SubSuperscript28Objet sous-exposant, qui se compose d’un élément de base, d’un script de taille réduite placé en dessous et à droite, et d’un script de taille réduite placé au-dessus et à droite.
Supercript29Objet Superscript, qui se compose 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 des nœuds 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 un nœud composite pour accepter un visiteur de document, le visiteur visite le nœud acceptant,
    // et parcourt ensuite tous les enfants du nœud de manière approfondie.
    // Le visiteur peut lire et modifier chaque nœud visité.
    doc.Accept(visitor);

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

/// <summary>
/// Parcourt l'arbre 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 à laquelle se trouve le visiteur dans l'arborescence du document.
    /// </summary>
    /// <param name="texte"></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