Exportar ecuaciones matemáticas desde presentaciones en Python

Introducción

Aspose.Slides for Python via .NET le permite exportar ecuaciones matemáticas desde presentaciones. Por ejemplo, puede necesitar extraer ecuaciones de diapositivas concretas y reutilizarlas en otro programa o plataforma.

Exportar ecuaciones matemáticas a LaTeX

Aspose.Slides puede convertir una ecuación matemática de PowerPoint directamente a LaTeX; no se requiere un archivo intermedio de MathML ni un conversor externo. Una ecuación matemática se almacena en un marco de texto como una MathPortion. Use MathPortion.math_paragraph para obtener un MathParagraph, y luego llame a MathParagraph.to_latex. El método devuelve una cadena que puede guardar, mostrar, enviar a otra aplicación o procesar más adelante.

El siguiente ejemplo examina cada marco de texto en cada diapositiva, encuentra todas las porciones matemáticas y escribe cada ecuación en un archivo .tex separado:

import aspose.slides as slides

with slides.Presentation("equations.pptx") as presentation:
    for slide_number, slide in enumerate(presentation.slides, start=1):
        equation_number = 1
        text_frames = slides.util.SlideUtil.get_all_text_boxes(slide)

        for text_frame in text_frames:
            for paragraph in text_frame.paragraphs:
                for portion in paragraph.portions:
                    if not isinstance(portion, slides.mathtext.MathPortion):
                        continue

                    math_paragraph = portion.math_paragraph
                    latex_path = f"slide_{slide_number}_equation_{equation_number}.tex"

                    latex_text = math_paragraph.to_latex()
                    with open(latex_path, "w", encoding="utf-8") as latex_file:
                        latex_file.write(latex_text)
                    equation_number += 1

SlideUtil.get_all_text_boxes devuelve todos los marcos de texto encontrados en una diapositiva. La comprobación de tipo MathPortion separa las ecuaciones editables genuinas del texto e imágenes ordinarias.

Los motores de LaTeX y las plantillas de documentos no todos admiten los mismos comandos, paquetes o caracteres Unicode. Pruebe la cadena devuelta con el motor de LaTeX que use su aplicación. Si un símbolo o elemento de Office Math no tiene una representación adecuada en ese entorno, reemplácelo en la cadena devuelta con un comando específico del proyecto o omita la ecuación y registre el problema para su revisión.

Guardar ecuaciones matemáticas como MathML

Aunque los humanos pueden escribir LaTeX con facilidad, MathML suele generarse automáticamente por aplicaciones. Dado que MathML se basa en XML, los programas pueden leerlo y analizarlo de forma fiable, por lo que se utiliza comúnmente como formato de salida e impresión en muchos campos.

El siguiente fragmento de código muestra cómo exportar una ecuación matemática de una presentación a MathML:

import aspose.slides as slides
import aspose.slides.mathtext as math

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    auto_shape = slide.shapes.add_math_shape(0, 0, 500, 50)
    math_paragraph = auto_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    math_paragraph.add(
        math.MathematicalText("a").
            set_superscript("2").
            join("+").
            join(math.MathematicalText("b").set_superscript("2")).
            join("=").
            join(math.MathematicalText("c").set_superscript("2")))

    with open("mathml.xml", "wb") as file_stream:
        math_paragraph.write_as_math_ml(file_stream)

Preguntas frecuentes

¿Qué se exporta exactamente a MathML: un párrafo o un bloque de fórmula individual?

Puede exportar tanto un párrafo matemático completo (MathParagraph) como un bloque individual (MathBlock) a MathML. Ambos tipos ofrecen un método para escribir en MathML.

¿Cómo puedo saber si un objeto en una diapositiva es una fórmula matemática y no texto normal o una imagen?

Una fórmula se encuentra en una MathPortion y tiene un MathParagraph. Las imágenes y porciones de texto normales sin un MathParagraph no son fórmulas exportables.

¿De dónde proviene el MathML en una presentación: es específico de PowerPoint o es un estándar?

La exportación apunta a MathML estándar (XML). Aspose utiliza Presentation MathML, el subconjunto de presentación del estándar, que está ampliamente usado en aplicaciones y en la web.

¿Se admite la exportación de fórmulas dentro de tablas, SmartArt, grupos, etc.?

Sí, si esos objetos contienen porciones de texto con un MathParagraph (es decir, fórmulas genuinas de PowerPoint), se exportan. Si una fórmula está incrustada como imagen, no se exporta.

¿La exportación a MathML modifica la presentación original?

No. Escribir MathML es una serialización del contenido de la fórmula; no modifica el archivo de la presentación.