MathObjectType

MathObjectType enumeration

Especifica el tipo de objeto de Office Math.

public enum MathObjectType

Valores

NombreValorDescripción
OMath0Instancia de texto matemático.
OMathPara1Párrafo matemático, o zona matemática de visualización, que contiene uno o másOMath elementos que están en modo de visualización.
Accent2Función de acento, compuesta por una base y un signo diacrítico combinado.
Bar3Función de barra, que consta de un argumento base y una barra superior o inferior.
BorderBox4Objeto Border Box, que consta de un borde dibujado alrededor de una instancia de texto matemático (como una fórmula o ecuación)
Box5Objeto de cuadro, que se utiliza para agrupar componentes de una ecuación u otra instancia de texto matemático.
Delimiter6Objeto delimitador, que consta de delimitadores de apertura y cierre (como paréntesis, llaves, corchetes y barras verticales) y un elemento contenido en su interior.
Degree7Grado en el radical matemático.
Argument8Objeto de argumento. Encierra entidades de Office Math cuando se utilizan como argumentos para otras entidades de Office Math.
Array9Objeto de matriz, que consta de una o más ecuaciones, expresiones u otras ejecuciones de texto matemático que pueden justificarse verticalmente como una unidad con respecto al texto circundante en la línea.
Fraction10Objeto fracción, que consta de un numerador y un denominador separados por una barra de fracción.
Denominator11Denominador de un objeto fracción.
Numerator12Numerador del objeto Fracción.
Function13Objeto de aplicación de función, que consta de un nombre de función y un elemento de argumento sobre el que se actúa.
FunctionName14Nombre de la función. Por ejemplo, los nombres de las funciones son sin y cos.
GroupCharacter15Objeto de carácter de grupo, que consiste en un carácter dibujado encima o debajo del texto, a menudo con el propósito de agrupar elementos visualmente
Limit16Límite inferior delLowerLimit objeto y el límite superior delUpperLimit función.
LowerLimit17Objeto de límite inferior, que consta de texto en la línea base y texto de tamaño reducido inmediatamente debajo.
UpperLimit18Objeto de límite superior, que consta de texto en la línea base y texto de tamaño reducido inmediatamente encima.
Matrix19Objeto matriz, que consta de uno o más elementos dispuestos en una o más filas y una o más columnas.
MatrixRow20Fila única de la matriz.
NAry21Objeto N-ario, que consta de un objeto n-ario, una base (u operando) y límites superior e inferior opcionales.
Phantom22Objeto fantasma.
Radical23Objeto radical, que consta de un radical, un elemento base y un grado opcional .
SubscriptPart24Subíndice del objeto que puede tener parte de subíndice.
SuperscriptPart25Superíndice del objeto superíndice.
PreSubSuperscript26Objeto Pre-Sub-Superíndice, que consta de un elemento base y un subíndice y superíndice colocados a la izquierda de la base.
Subscript27Objeto subíndice, que consta de un elemento base y un guión de tamaño reducido colocado debajo y a la derecha.
SubSuperscript28Objeto subsuperíndice, que consta de un elemento base, un guión de tamaño reducido colocado debajo y a la derecha, y un guión de tamaño reducido colocado arriba y a la derecha.
Supercript29Objeto superíndice, que consta de un elemento base y un guión de tamaño reducido colocado arriba y a la derecha.

Ejemplos

Muestra cómo imprimir la estructura de nodos de cada nodo matemático de Office en un documento.

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

    // Cuando conseguimos que un nodo compuesto acepte un visitante del documento, el visitante visita el nodo receptor,
    // y luego atraviesa todos los hijos del nodo en profundidad.
    // El visitante puede leer y modificar cada nodo visitado.
    doc.Accept(visitor);

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

/// <summary>
/// Atraviesa el árbol no binario de nodos secundarios de un nodo.
/// Crea un mapa en forma de cadena de todos los nodos de OfficeMath encontrados y sus hijos.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
    public OfficeMathStructurePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideOfficeMath = false;
    }

    /// <summary>
    /// Obtiene el texto sin formato del documento acumulado por el visitante.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo Ejecutar en el documento.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mVisitorIsInsideOfficeMath) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo OfficeMath en el documento.
    /// </summary>
    public override VisitorAction VisitOfficeMathStart(OfficeMath officeMath)
    {
        IndentAndAppendLine("[OfficeMath start] Math object type: " + officeMath.MathObjectType);
        mDocTraversalDepth++;
        mVisitorIsInsideOfficeMath = true;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama después de que se hayan visitado todos los nodos secundarios de un nodo de OfficeMath.
    /// </summary>
    public override VisitorAction VisitOfficeMathEnd(OfficeMath officeMath)
    {
        mDocTraversalDepth--;
        IndentAndAppendLine("[OfficeMath end]");
        mVisitorIsInsideOfficeMath = false;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Agrega una línea al StringBuilder y sangra dependiendo de qué tan profundo esté el visitante en el árbol del documento.
    /// </summary>
    /// <param nombre="texto"></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;
}

Ver también