Ecuaciones Matemáticas de PowerPoint

Resumen

En PowerPoint, es posible escribir una ecuación o fórmula matemática y mostrarla en la presentación. Para ello, se representan varios símbolos matemáticos en PowerPoint que se pueden añadir al texto o ecuación. Para eso, se utiliza el constructor de ecuaciones matemáticas en PowerPoint, que ayuda a crear fórmulas complejas como:

  • Fracción matemática
  • Radical matemático
  • Función matemática
  • Límites y funciones logarítmicas
  • Operaciones N-arias
  • Matriz
  • Operadores grandes
  • Funciones seno, coseno

Para agregar una ecuación matemática en PowerPoint, se utiliza el menú Insertar -> Ecuación:

todo:image_alt_text

Esto creará un texto matemático en XML que se puede mostrar en PowerPoint como sigue:

todo:image_alt_text

PowerPoint admite una gran cantidad de símbolos matemáticos para crear ecuaciones matemáticas. Sin embargo, crear ecuaciones matemáticas complicadas en PowerPoint a menudo no produce un buen resultado de aspecto profesional. Los usuarios que necesitan crear presentaciones matemáticas con frecuencia recurren al uso de soluciones de terceros para crear fórmulas matemáticas bien diseñadas.

Usando Aspose.Slide API, puedes trabajar con ecuaciones matemáticas en las presentaciones de PowerPoint de manera programática en C#. Crea nuevas expresiones matemáticas o edita las que ya han sido creadas. La exportación de estructuras matemáticas a imágenes también es parcialmente compatible.

Cómo Crear una Ecuación Matemática

Los elementos matemáticos se utilizan para construir cualquier construcción matemática con cualquier nivel de anidación. Una colección lineal de elementos matemáticos forma un bloque matemático representado por la clase MathBlock. La clase MathBlock esencialmente es una expresión, fórmula o ecuación matemática separada. MathPortion es una porción matemática, utilizada para contener texto matemático (no confundir con Portion). MathParagraph permite manipular un conjunto de bloques matemáticos. Las clases mencionadas anteriormente son la clave para trabajar con ecuaciones matemáticas en PowerPoint a través de Aspose.Slides API.

Veamos cómo podemos crear la siguiente ecuación matemática a través de Aspose.Slides API:

todo:image_alt_text

Para agregar una expresión matemática en la diapositiva, primero, agrega una forma que contendrá el texto matemático:

Presentation pres = new Presentation();
try {
    IAutoShape mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
} finally {
    if (pres != null) pres.dispose();
}

Después de crearla, la forma ya contendrá un párrafo con una porción matemática por defecto. La clase MathPortion es una porción que contiene un texto matemático dentro. Para acceder al contenido matemático dentro de MathPortion, consulta la variable MathParagraph:

IMathParagraph mathParagraph = ((MathPortion)mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0)).getMathParagraph();

La clase MathParagraph permite leer, agregar, editar y eliminar bloques matemáticos (MathBlock), que constan de una combinación de elementos matemáticos. Por ejemplo, crea una fracción y colócala en la presentación:

IMathFraction fraction = new MathematicalText("x").divide("y");

mathParagraph.add(new MathBlock(fraction));

Cada elemento matemático está representado por una clase que implementa la interfaz IMathElement. Esta interfaz proporciona muchos métodos para crear expresiones matemáticas fácilmente. Puedes crear una expresión matemática bastante compleja con una sola línea de código. Por ejemplo, el teorema de Pitágoras se vería así:

IMathBlock mathBlock = new MathematicalText("c")
        .setSuperscript("2")
        .join("=")
        .join(new MathematicalText("a").setSuperscript("2"))
        .join("+")
        .join(new MathematicalText("b").setSuperscript("2"));

Las operaciones de la interfaz IMathElement se implementan en cualquier tipo de elemento, incluyendo MathBlock.

El código fuente completo:

Presentation pres = new Presentation();
try {
    IAutoShape mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);

    IMathParagraph mathParagraph = ((MathPortion)mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0)).getMathParagraph();
    
    IMathFraction fraction = new MathematicalText("x").divide("y");

    mathParagraph.add(new MathBlock(fraction));

    IMathBlock mathBlock = new MathematicalText("c")
            .setSuperscript("2")
            .join("=")
            .join(new MathematicalText("a").setSuperscript("2"))
            .join("+")
            .join(new MathematicalText("b").setSuperscript("2"));
    mathParagraph.add(mathBlock);

    pres.save("math.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Tipos de Elementos Matemáticos

Las expresiones matemáticas se forman a partir de secuencias de elementos matemáticos. La secuencia de elementos matemáticos está representada por un bloque matemático, y los argumentos de los elementos matemáticos forman una anidación en forma de árbol.

Hay muchos tipos de elementos matemáticos que se pueden utilizar para construir un bloque matemático. Cada uno de estos elementos puede incluirse (agregarse) en otro elemento. Es decir, los elementos son en realidad contenedores de otros, formando una estructura en forma de árbol. El tipo más simple de elemento no contiene otros elementos del texto matemático.

Cada tipo de elemento matemático implementa la interfaz IMathElement, permitiendo el uso del conjunto común de operaciones matemáticas en diferentes tipos de elementos matemáticos.

Clase MathematicalText

La clase MathematicalText representa un texto matemático: el elemento subyacente de todas las construcciones matemáticas. El texto matemático puede representar operandos y operadores, variables y cualquier otro texto lineal.

Ejemplo: 𝑎=𝑏+𝑐

Clase MathFraction

La clase MathFraction especifica el objeto fracción, que consiste en un numerador y un denominador separados por una barra de fracción. La barra de fracción puede ser horizontal o diagonal, dependiendo de las propiedades de la fracción. El objeto fracción también se usa para representar la función de pila, que coloca un elemento encima de otro, sin barra de fracción.

Ejemplo:

todo:image_alt_text

Clase MathRadical

La clase MathRadical especifica la función radical (raíz matemática), que consiste en una base y un grado opcional.

Ejemplo:

todo:image_alt_text

Clase MathFunction

La clase MathFunction especifica una función de un argumento. Contiene propiedades: getName - nombre de la función y getBase - argumento de la función.

Ejemplo:

todo:image_alt_text

Clase MathNaryOperator

La clase MathNaryOperator especifica un objeto matemático N-ario, como Suma e Integral. Consiste en un operador, una base (o operando) y límites superiores e inferiores opcionales. Ejemplos de operadores N-arios son Suma, Unión, Intersección, Integral.

Esta clase no incluye operadores simples como suma, resta, etc. Se representan mediante un solo elemento de texto - MathematicalText.

Ejemplo:

todo:image_alt_text

Clase MathLimit

La clase MathLimit crea el límite superior o inferior. Especifica el objeto límite, que consiste en texto en la línea base y texto de tamaño reducido inmediatamente encima o debajo de él. Este elemento no incluye la palabra “lim", pero permite colocar texto en la parte superior o en la inferior de la expresión. Entonces, la expresión

todo:image_alt_text

se crea utilizando una combinación de elementos MathFunction y MathLimit de esta manera:

MathLimit funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑥→∞"));

MathFunction mathFunc = new MathFunction(funcName, new MathematicalText("𝑥"));

Clases MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement

Las siguientes clases especifican un índice inferior o un índice superior. Puedes establecer subíndice y superíndice al mismo tiempo en el lado izquierdo o derecho de un argumento, pero se admite el subíndice o superíndice único solo en el lado derecho. El MathSubscriptElement también puede usarse para establecer el grado matemático de un número.

Ejemplo:

todo:image_alt_text

Clase MathMatrix

La clase MathMatrix especifica el objeto Matriz, que consta de elementos secundarios dispuestos en una o más filas y columnas. Es importante tener en cuenta que las matrices no tienen delimitadores integrados. Para colocar la matriz entre corchetes, debes usar el objeto delimitador - IMathDelimiter. Los argumentos nulos pueden usarse para crear espacios en matrices.

Ejemplo:

todo:image_alt_text

Clase MathArray

La clase MathArray especifica un arreglo vertical de ecuaciones u otros objetos matemáticos.

Ejemplo:

todo:image_alt_text

Formateo de Elementos Matemáticos

  • La clase MathBorderBox: dibuja un borde rectangular u otro borde alrededor del IMathElement.

    Ejemplo: todo:image_alt_text

  • La clase MathBox: especifica el enmarcado lógico (empaquetado) del elemento matemático. Por ejemplo, un objeto enmarcado puede servir como emulador de operador con o sin un punto de alineación, servir como un punto de ruptura de línea o estar agrupado para no permitir saltos de línea dentro. Por ejemplo, el operador “==” debe estar enmarcado para evitar saltos de línea.

  • La clase MathDelimiter: especifica el objeto delimitador, que consiste en caracteres de apertura y cierre (como paréntesis, llaves, corchetes y barras verticales), y uno o más elementos matemáticos dentro, separados por un carácter especificado. Ejemplos: (𝑥2); [𝑥2|𝑦2].

    Ejemplo: todo:image_alt_text

  • La clase MathAccent: especifica la función de acento, que consiste en una base y una marca diacrítica combinada.

    Ejemplo: 𝑎́.

  • La clase MathBar: especifica la función de barra, que consiste en un argumento base y una sobrebarra o subbarra.

    Ejemplo: todo:image_alt_text

  • La clase MathGroupingCharacter: especifica un símbolo agrupador encima o debajo de una expresión, generalmente para resaltar las relaciones entre elementos.

    Ejemplo: todo:image_alt_text

Operaciones Matemáticas

Cada elemento matemático y expresión matemática (a través de MathBlock) implementa la interfaz IMathElement. Esto te permite usar operaciones sobre la estructura existente y formar expresiones matemáticas más complejas. Todas las operaciones tienen dos conjuntos de parámetros: ya sea IMathElement o string como argumentos. Las instancias de la clase MathematicalText se crean implícitamente a partir de cadenas especificadas cuando se utilizan argumentos de cadenas. Las operaciones matemáticas disponibles en Aspose.Slides se enumeran a continuación.

Método Join

Une un elemento matemático y forma un bloque matemático. Por ejemplo:

IMathElement element1 = new MathematicalText("x");

IMathElement element2 = new MathematicalText("y");

IMathBlock block = element1.join(element2);

Método Divide

Crea una fracción del tipo especificado con este numerador y denominador especificado. Por ejemplo:

IMathElement numerator = new MathematicalText("x");

IMathFraction fraction = numerator.divide("y", MathFractionTypes.Linear);

Método Enclose

Encierra el elemento en caracteres especificados, como paréntesis u otro carácter como enmarcamiento.

/**
 * <p>
 * Encierra un elemento matemático en paréntesis
 * </p>
 */
public IMathDelimiter enclose();

/**
 * <p>
 * Encierra este elemento en caracteres especificados, como paréntesis u otros caracteres como enmarcamiento
 * </p>
 */
public IMathDelimiter enclose(char beginningCharacter, char endingCharacter);

Por ejemplo:

IMathDelimiter delimiter = new MathematicalText("x").enclose('[', ']');

IMathDelimiter delimiter2 = new MathematicalText("elem1").join("elem2").enclose();

Método Function

Toma una función de un argumento utilizando el objeto actual como el nombre de la función.

/**
 * <p>
 * Toma una función de un argumento utilizando esta instancia como el nombre de la función
 * </p>
 */
public IMathFunction function(IMathElement functionArgument);

/**
 * <p>
 * Toma una función de un argumento utilizando esta instancia como el nombre de la función
 * </p>
 */
public IMathFunction function(String functionArgument);

Por ejemplo:

IMathFunction func = new MathematicalText("sin").function("x");

Método AsArgumentOfFunction

Toma la función especificada usando la instancia actual como argumento. Puedes:

Por ejemplo:

MathLimit funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑛→∞"));

IMathFunction func1 = new MathematicalText("2x").asArgumentOfFunction(funcName);

IMathFunction func2 = new MathematicalText("x").asArgumentOfFunction("sin");

IMathFunction func3 = new MathematicalText("x").asArgumentOfFunction(MathFunctionsOfOneArgument.Sin);

IMathFunction func4 = new MathematicalText("x").asArgumentOfFunction(MathFunctionsOfTwoArguments.Log, "3");

Métodos SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft

Establece subíndice y superíndice. Puedes establecer subíndice y superíndice al mismo tiempo en el lado izquierdo o derecho del argumento, pero el subíndice o superíndice único se admite solo en el lado derecho. El Superscript también puede usarse para establecer el grado matemático de un número.

Ejemplo:

IMathLeftSubSuperscriptElement script = new MathematicalText("y").setSubSuperscriptOnTheLeft("2x", "3z");

Método Radical

Especifica la raíz matemática del grado dado del argumento especificado.

Ejemplo:

IMathRadical radical = new MathematicalText("x").radical("3");

Métodos SetUpperLimit y SetLowerLimit

Toma el límite superior o inferior. Aquí, el superior e inferior simplemente indican la ubicación del argumento en relación con la base.

Consideremos una expresión:

todo:image_alt_text

Dichas expresiones pueden crearse mediante una combinación de clases MathFunction y MathLimit, y operaciones de la IMathElement de la siguiente manera:

IMathFunction mathExpression = new MathematicalText("lim").setLowerLimit("x→∞").function("x");

Métodos Nary e Integral

Tanto los métodos nary como integral crean y devuelven el operador N-ario representado por el tipo IMathNaryOperator. En el método nary, la enumeración MathNaryOperatorTypes especifica el tipo de operador: suma, unión, etc., sin incluir integrales. En el método Integral, hay la operación especializada Integral con la enumeración de tipos de integral MathIntegralTypes.

Ejemplo:

IMathBlock baseArg = new MathematicalText("x").join(new MathematicalText("dx").toBox());

IMathNaryOperator integral = baseArg.integral(MathIntegralTypes.Simple, "0", "1");

Método ToMathArray

toMathArray coloca elementos en un arreglo vertical. Si esta operación se llama para una instancia de MathBlock, todos los elementos secundarios se colocarán en el arreglo devuelto.

Ejemplo:

IMathArray arrayFunction = new MathematicalText("x").join("y").toMathArray();

Operaciones de formateo: Acento, Sobrebarra, Subbarra, Agrupar, ToBorderBox, ToBox

  • El método accent establece una marca de acento (un carácter en la parte superior del elemento).
  • Los métodos overbar y underbar establecen una barra en la parte superior o inferior.
  • El método group coloca en un grupo utilizando un carácter de agrupación, como una llave inferior o otro.
  • El método toBorderBox coloca en un borde-box.
  • El método toBox coloca en una caja no visual (agrupación lógica).

Ejemplos:

IMathAccent accent = new MathematicalText("x").accent('\u0303');

IMathBar bar = new MathematicalText("x").overbar();

IMathGroupingCharacter groupChr = new MathematicalText("x").join("y").join("z").group('\u23E1', MathTopBotPositions.Bottom, MathTopBotPositions.Top);

IMathBorderBox borderBox = new MathematicalText("x+y+z").toBorderBox();

IMathBox boxedOperator = new MathematicalText(":=").toBox();