Ecuaciones Matemáticas de PowerPoint
Descripción general
En PowerPoint, es posible escribir una ecuación matemática o fórmula y mostrarla en la presentación. Para hacer eso, varios símbolos matemáticos están representados en PowerPoint y pueden ser añadidos al texto o a la 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 sen, cos
Para agregar una ecuación matemática en PowerPoint, se utiliza el menú Insertar -> Ecuación:
Esto creará un texto matemático en XML que se puede mostrar en PowerPoint de la siguiente manera:
PowerPoint soporta 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 resultado atractivo y profesional. Los usuarios que necesitan crear presentaciones matemáticas con frecuencia recurren al uso de soluciones de terceros para crear fórmulas matemáticas de buen aspecto.
Usando la API de Aspose.Slide, puedes trabajar con ecuaciones matemáticas en las presentaciones de PowerPoint programáticamente en Python. Crea nuevas expresiones matemáticas o edita las ya creadas. La exportación de estructuras matemáticas a imágenes también es compatible de manera parcial.
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 anidamiento. Una colección lineal de elementos matemáticos forma un bloque matemático representado por la clase MathBlock. La clase MathBlock es esencialmente una expresión matemática separada, fórmula o ecuación. MathPortion es una porción matemática, utilizada para contener texto matemático (no mezclar con Portion). MathParagraph permite manipular un conjunto de bloques matemáticos. Las clases antes mencionadas son clave para trabajar con ecuaciones matemáticas de PowerPoint a través de la API de Aspose.Slides.
Veamos cómo podemos crear la siguiente ecuación matemática a través de la API de Aspose.Slides:
Para añadir una expresión matemática en la diapositiva, primero añade una forma que contenga el texto matemático:
import aspose.slides as slides
import aspose.slides.mathtext as math
with slides.Presentation() as pres:
mathShape = pres.slides[0].shapes.add_math_shape(0, 0, 720, 150)
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 en su interior. Para acceder al contenido matemático dentro de MathPortion, referirse a la variable MathParagraph:
mathParagraph = mathShape.text_frame.paragraphs[0].portions[0].math_paragraph
La clase MathParagraph permite leer, agregar, editar y eliminar bloques matemáticos (MathBlock), que consisten en una combinación de elementos matemáticos. Por ejemplo, crea una fracción y colócala en la presentación:
fraction = math.MathematicalText("x").divide("y")
mathParagraph.add(math.MathBlock(fraction))
Cada elemento matemático está representado por alguna clase que implementa la interfaz IMathElement. Esta interfaz proporciona muchos métodos para crear expresiones matemáticas de manera sencilla. 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í:
mathBlock = (
math.MathematicalText("c").set_superscript("2").
join("=").
join(math.MathematicalText("a").set_superscript("2")).
join("+").
join(math.MathematicalText("b").set_superscript("2")))
Las operaciones de la interfaz IMathElement están implementadas en cualquier tipo de elemento, incluidos los MathBlock.
El código fuente completo de ejemplo:
import aspose.slides as slides
import aspose.slides.mathtext as math
with slides.Presentation() as pres:
mathShape = pres.slides[0].shapes.add_math_shape(0, 0, 720, 150)
mathParagraph = mathShape.text_frame.paragraphs[0].portions[0].math_paragraph
fraction = math.MathematicalText("x").divide("y")
mathParagraph.add(math.MathBlock(fraction))
mathBlock = (
math.MathematicalText("c").set_superscript("2").
join("=").
join(math.MathematicalText("a").set_superscript("2")).
join("+").
join(math.MathematicalText("b").set_superscript("2")))
mathParagraph.add(mathBlock)
pres.save("math.pptx", slides.export.SaveFormat.PPTX)
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 es 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 ser incluido (agregado) en otro elemento. Es decir, los elementos son en realidad contenedores para otros, formando una estructura en forma de árbol. El tipo más simple de elemento que 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 de fracción, consistiendo 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 de fracción también se utiliza para representar la función de pila, que coloca un elemento encima de otro, sin barra de fracción.
Ejemplo:
Clase MathRadical
La clase MathRadical especifica la función radical (raíz matemática), que consiste en una base y un grado opcional.
Ejemplo:
Clase MathFunction
La clase MathFunction especifica una función de un argumento. Contiene propiedades: Name - nombre de la función y Base - argumento de la función.
Ejemplo:
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. Están representados por un solo elemento de texto - MathematicalText.
Ejemplo:
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 arriba o abajo de él. Este elemento no incluye la palabra “lim”, pero permite colocar texto en la parte superior o inferior de la expresión. Así, la expresión
se crea utilizando una combinación de elementos MathFunction y MathLimit de esta manera:
funcName = math.MathLimit(math.MathematicalText("lim"), math.MathematicalText("𝑥→∞"))
mathFunc = math.MathFunction(funcName, math.MathematicalText("𝑥"))
Clases MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement
- MathSubscriptElement
- MathSuperscriptElement
- MathRightSubSuperscriptElement
- MathLeftSubSuperscriptElement
Las siguientes clases especifican un índice inferior o un índice superior. Puedes establecer superíndices e índices inferiores al mismo tiempo en el lado izquierdo o derecho de un argumento, pero se admite un solo superíndice o subíndice solo en el lado derecho. El MathSubscriptElement también puede ser utilizado para establecer el grado matemático de un número.
Ejemplo:
Clase MathMatrix
La clase MathMatrix especifica el objeto Matriz, que consiste en elementos secundarios dispuestos en una o más filas y columnas. Es importante notar que las matrices no tienen delimitadores incorporados. Para colocar la matriz en los corchetes, debes usar el objeto delimitador - IMathDelimiter. Los argumentos nulos se pueden utilizar para crear espacios en las matrices.
Ejemplo:
Clase MathArray
La clase MathArray especifica un arreglo vertical de ecuaciones u objetos matemáticos.
Ejemplo:
Formatación de elementos matemáticos
-
La clase MathBorderBox: dibuja un borde rectangular u otro alrededor del IMathElement.
Ejemplo:
-
La clase MathBox especifica el enmarcado lógico (empaque) 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 ser agrupado para no permitir saltos de línea dentro. Por ejemplo, el operador “==” debe estar enmarcado para prevenir saltos de línea.
-
La clase MathDelimiter especifica el objeto delimitador, consistiendo 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:
-
La clase MathAccent especifica la función 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 barra superior o inferior.
Ejemplo:
-
La clase MathGroupingCharacter especifica un símbolo de agrupamiento por encima o por debajo de una expresión, generalmente para resaltar las relaciones entre elementos.
Ejemplo:
Operaciones Matemáticas
Cada elemento matemático y expresión matemática (a través de MathBlock) implementa la interfaz IMathElement. Permite utilizar operaciones sobre la estructura existente y formar expresiones matemáticas más complejas. Todas las operaciones tienen dos conjuntos de parámetros: o IMathElement o cadena como argumentos. Las instancias de la clase MathematicalText se crean implícitamente a partir de cadenas especificadas cuando se utilizan argumentos de cadena. 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:
element1 = math.MathematicalText("x")
element2 = math.MathematicalText("y")
block = element1.join(element2)
Método Divide
- Divide(String)
- Divide(IMathElement)
- Divide(String, MathFractionTypes)
- Divide(IMathElement, MathFractionTypes)
Crea una fracción del tipo especificado con este numerador y denominador especificado. Por ejemplo:
numerator = math.MathematicalText("x")
fraction = numerator.divide("y", math.MathFractionTypes.LINEAR)
Método Enclose
Encierra el elemento en caracteres especificados como paréntesis u otro carácter como enmarcamiento.
# Enclava un elemento matemático en paréntesis
MathDelimiter enclose()
# Enclava este elemento en caracteres especificados como paréntesis u otros caracteres como enmarcamiento
MathDelimiter enclose(char beginningCharacter, char endingCharacter)
Por ejemplo:
delimiter = math.MathematicalText("x").enclose('[', ']')
delimiter2 = math.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.
Por ejemplo:
func = math.MathematicalText("sin").function("x")
Método AsArgumentOfFunction
- AsArgumentOfFunction(String)
- AsArgumentOfFunction(IMathElement)
- AsArgumentOfFunction(MathFunctionsOfOneArgument)
- AsArgumentOfFunction(MathFunctionsOfTwoArguments, IMathElement)
- AsArgumentOfFunction(MathFunctionsOfTwoArguments, String)
Toma la función especificada utilizando la instancia actual como argumento. Puedes:
- especificar una cadena como el nombre de la función, por ejemplo, “cos”.
- seleccionar uno de los valores predefinidos de las enumeraciones MathFunctionsOfOneArgument o MathFunctionsOfTwoArguments, por ejemplo MathFunctionsOfOneArgument.ArcSin.
- seleccionar la instancia de IMathElement.
Por ejemplo:
funcName = math.MathLimit(math.MathematicalText("lim"), math.MathematicalText("𝑛→∞"))
func1 = math.MathematicalText("2x").as_argument_of_function(funcName)
func2 = math.MathematicalText("x").as_argument_of_function("sin")
func3 = math.MathematicalText("x").as_argument_of_function(math.MathFunctionsOfOneArgument.SIN)
func4 = math.MathematicalText("x").as_argument_of_function(math.MathFunctionsOfTwoArguments.LOG, "3")
Métodos SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft
- SetSubscript(String)
- SetSubscript(IMathElement)
- SetSuperscript(String)
- SetSuperscript(IMathElement)
- SetSubSuperscriptOnTheRight(String, String)
- SetSubSuperscriptOnTheRight(IMathElement, IMathElement)
- SetSubSuperscriptOnTheLeft(String, String)
- SetSubSuperscriptOnTheLeft(IMathElement, IMathElement)
Establece subíndices y superíndices. Puedes establecer subíndice y superíndice al mismo tiempo en el lado izquierdo o derecho del argumento, pero se admite un solo subíndice o superíndice solo en el lado derecho. El Superíndice también puede ser usado para establecer el grado matemático de un número.
Ejemplo:
script = math.MathematicalText("y").set_sub_superscript_on_the_left("2x", "3z")
Método Radical
Especifica la raíz matemática del grado dado del argumento especificado.
Ejemplo:
radical = math.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 respecto a la base.
Consideremos una expresión:
Tales expresiones se pueden crear a través de una combinación de las clases MathFunction y MathLimit, y operaciones de IMathElement de la siguiente manera:
mathExpression = math.MathematicalText("lim").set_lower_limit("x→∞").function("x")
Métodos Nary e Integral
- Nary(MathNaryOperatorTypes, IMathElement, IMathElement)
- Nary(MathNaryOperatorTypes, String, String)
- Integral(MathIntegralTypes)
- Integral(MathIntegralTypes, IMathElement, IMathElement)
- Integral(MathIntegralTypes, String, String)
- Integral(MathIntegralTypes, IMathElement, IMathElement, MathLimitLocations)
- Integral(MathIntegralTypes, String, String, MathLimitLocations)
Tanto el método Nary como el método Integral crean y devuelven el operador N-ario representado por el tipo INaryOperator. 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 integrales MathIntegralTypes.
Ejemplo:
baseArg = math.MathematicalText("x").join(math.MathematicalText("dx").to_box())
integral = baseArg.integral(math.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:
arrayFunction = math.MathematicalText("x").join("y").to_math_array()
Operaciones de formato: Acento, Barra superior, Barra inferior, Agrupación, 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 una caja borde.
- El método ToBox coloca en una caja no visual (agrupación lógica).
Ejemplos:
accent = math.MathematicalText("x").accent(chr(0x0303))
bar = math.MathematicalText("x").overbar()
groupChr = math.MathematicalText("x").join("y").join("z").group(chr(0x23E1),
math.MathTopBotPositions.BOTTOM,
math.MathTopBotPositions.TOP)
borderBox = math.MathematicalText("x+y+z").to_border_box()
boxedOperator = math.MathematicalText(":=").to_box()