Προσθήκη μαθηματικών εξισώσεων σε παρουσιάσεις PowerPoint με Python

Επισκόπηση

Το PowerPoint αποθηκεύει εξισώσεις ως Office Math Markup Language (OMML). Με το Aspose.Slides for Python μέσω .NET, μπορείτε να δημιουργήσετε το ίδιο είδος μαθηματικού περιεχομένου προγραμματιστικά: κλάσματα, ριζών, συναρτήσεις, όρια, N-ary τελεστές, πίνακες, ακολουθίες και μορφοποιημένα μαθηματικά μπλοκ.

In PowerPoint, οι χρήστες συνήθως προσθέτουν εξισώσεις από Insert > Equation:

Καρτέλα Εισαγωγή του PowerPoint με την εντολή Εξίσωση επιλεγμένη

Το αποτέλεσμα είναι επεξεργάσιμο μαθηματικό κείμενο στη διαφάνεια:

Διαφάνεια PowerPoint που περιέχει επεξεργάσιμη μαθηματική εξίσωση

Aspose.Slides δημιουργεί αυτό το μαθηματικό κείμενο μέσω τριών κύριων αντικειμένων:

  • Ένα μαθηματικό σχήμα, δημιουργημένο με add_math_shape, είναι το σχήμα που περιέχει την εξίσωση.
  • MathPortion αποθηκεύει μαθηματικό περιεχόμενο εντός του πλαισίου κειμένου του σχήματος.
  • MathParagraph περιέχει ένα ή περισσότερα αντικείμενα MathBlock.

Τα περισσότερα παραδείγματα παρακάτω χρησιμοποιούν το MathematicalText και τις αλυσιδωτές μεθόδους από το IMathElement για να διατηρήσουν τον κώδικα σύντομο και ευανάγνωστο.

Για σενάρια εξαγωγής MathML, δείτε Εξαγωγή μαθηματικών εξισώσεων από παρουσιάσεις σε Python μέσω .NET.

Δημιουργία εξίσωσης

Αυτό το παράδειγμα δημιουργεί ένα μαθηματικό σχήμα και προσθέτει το θεώρημα του Πυθαγόρα:

Η εξίσωση c² = a² + b²

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 120)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

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

    math_paragraph.add(equation)

    presentation.save("pythagorean-theorem.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη κλασμάτων

Χρησιμοποιήστε το divide για να δημιουργήσετε ένα κλάσμα. Μπορείτε να επιλέξετε στυλ κλάσματος με MathFractionTypes.

Ένα κλίσειο μαθηματικό κλάσμα που δείχνει το 1 διαιρεμένο με x

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    fraction = math.MathematicalText("1").divide("x", math.MathFractionTypes.SKEWED)

    math_paragraph.add(math.MathBlock(fraction))

    presentation.save("fraction.pptx", slides.export.SaveFormat.PPTX)

Για ένα στοίβακτο κλάσμα, χρησιμοποιήστε MathFractionTypes.BAR:

stacked_fraction = math.MathematicalText("x + 1").divide("y - 1", math.MathFractionTypes.BAR)

Προσθήκη ριζών

Χρησιμοποιήστε το radical για να δημιουργήσετε τετραγωνική ρίζα, κυβική ρίζα ή άλλη ρίζα. Το τρέχον στοιχείο γίνεται η βάση, και το όρισμα γίνεται ο βαθμός.

Μια ρίζα n-ου βαθμού με x κάτω από το σύμβολο ρίζας

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    radical = math.MathematicalText("x").radical("n")

    math_paragraph.add(math.MathBlock(radical))

    presentation.save("radical.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη συναρτήσεων και ορίων

Χρησιμοποιήστε το as_argument_of_function ή το function για συναρτήσεις όπως sin(x), log(x), ή προσαρμοσμένα ονόματα συναρτήσεων. Για όρια, τοποθετήστε lim σε ένα MathLimit ή χρησιμοποιήστε το set_lower_limit.

Το όριο του x καθώς το x τείνει στο άπειρο

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    limit = (
        math.MathematicalText("lim")
        .set_lower_limit("x\u2192\u221E")
        .function("x")
    )

    math_paragraph.add(math.MathBlock(limit))

    presentation.save("functions-and-limits.pptx", slides.export.SaveFormat.PPTX)

Για προσαρμοσμένο όνομα συνάρτησης, κάντε το όνομα της συνάρτησης το τρέχον στοιχείο:

custom_function = math.MathematicalText("f").function("x + 1")

Προσθήκη N-ary τελεστών και ολοκληρωμάτων

Χρησιμοποιήστε το nary για αθροίσεις, ενώσεις, τομές και άλλους μεγάλους τελεστές. Χρησιμοποιήστε το integral για ολοκληρώματα. Και οι δύο μέθοδοι σας επιτρέπουν να ορίσετε τα κάτω και πάνω όρια.

Μία άθροιση με κάτω και πάνω όρια

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 120)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    summation_base = (
        math.MathematicalText("x")
        .set_superscript("k")
        .join(math.MathematicalText("a").set_superscript("n-k"))
    )

    summation = summation_base.nary(math.MathNaryOperatorTypes.SUMMATION, "k=0", "n")

    math_paragraph.add(math.MathBlock(summation))

    presentation.save("nary-operators.pptx", slides.export.SaveFormat.PPTX)

Οι N-ary τελεστές προορίζονται για μεγάλους τελεστές με προαιρετικά όρια. Απλοί τελεστές όπως +, - και = συνήθως προστίθενται ως MathematicalText και συνδέονται στην έκφραση.

Για ένα ολοκλήρωμα, χρησιμοποιήστε integral:

integral_base = math.MathematicalText("x").join(math.MathematicalText("dx").to_box())
integral = integral_base.integral(math.MathIntegralTypes.SIMPLE, "0", "1")

Προσθήκη πινάκων

Χρησιμοποιήστε το MathMatrix για γραμμές και στήλες. Οι πίνακες δεν περιλαμβάνουν αγκύλες εξ ορισμού, έτσι περικλείστε τον πίνακα όταν χρειάζεστε παρενθέσεις, αγκύλες ή άγκιστρα.

Ένας μαθηματικός πίνακας δύο γραμμών με ένα κενό κελί

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 120)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    matrix = math.MathMatrix(2, 3)
    matrix[0, 0] = math.MathematicalText("1")
    matrix[0, 1] = math.MathematicalText("x")
    matrix[1, 0] = math.MathematicalText("x")
    matrix[1, 1] = math.MathematicalText("2")
    matrix[1, 2] = math.MathematicalText("y")

    math_paragraph.add(math.MathBlock(matrix))

    presentation.save("matrix.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη ακολουθιών εξισώσεων

Χρησιμοποιήστε το to_math_array όταν χρειάζεστε ευθυγραμμισμένες εξισώσεις ή κατακόρυφο στοίβαγμα εκφράσεων.

Μια κάθετη μαθηματική ακολουθία με x πάνω από y

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 140)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    equation_array = (
        math.MathematicalText("x")
        .join("y")
        .to_math_array()
    )

    math_paragraph.add(math.MathBlock(equation_array))

    presentation.save("equation-array.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη τριγωνομετρικών συναρτήσεων

Χρησιμοποιήστε το as_argument_of_function όταν το όρισμα είναι το τρέχον στοιχείο και το όνομα της συνάρτησης είναι γνωστό.

Η τριγωνομετρική συνάρτηση cos εφαρμοσμένη στο 2x

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    cosine = math.MathematicalText("2x").as_argument_of_function(
        math.MathFunctionsOfOneArgument.COS
    )

    math_paragraph.add(math.MathBlock(cosine))

    presentation.save("trigonometric-function.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη κάτω και πάνω δεικτών

Χρησιμοποιήστε τα βοηθήματα υπο- και υπερδείκτη για δείκτες και εκθέτες. Όταν οι δείκτες πρέπει να εμφανιστούν στα αριστερά της βάσης, χρησιμοποιήστε το set_sub_superscript_on_the_left.

Ένα κεφαλαίο Y με αριστερό υποδείκτη 1 και υπερδείκτη n

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    scripts = math.MathematicalText("Y").set_sub_superscript_on_the_left("1", "n")

    math_paragraph.add(math.MathBlock(scripts))

    presentation.save("subscript-superscript.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη οριοθετών

Χρησιμοποιήστε το enclose για να τοποθετήσετε μια έκφραση μέσα σε οριοθέτες. Μπορείτε επίσης να ορίσετε χαρακτήρα διαχωριστή για εκφράσεις με οριοθέτες που περιέχουν πολλά στοιχεία.

Μια έκφραση με οριοθέτες που περιέχει x, y και z χωρισμένα με κατακόρυφες γραμμές

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    delimiter = (
        math.MathematicalText("x")
        .join("y")
        .join("z")
        .enclose("<", ">")
    )
    delimiter.separator_character = "|"

    math_paragraph.add(math.MathBlock(delimiter))

    presentation.save("delimiters.pptx", slides.export.SaveFormat.PPTX)

Προσθήκη πλαισίου περιγράμματος

Χρησιμοποιήστε το to_border_box όταν η ίδια η εξίσωση πρέπει να περικλειστεί σε πλαίσιο.

Μια εξίσωση εντός πλαισίου που δείχνει a² = b² + c²

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    boxed_equation = (
        math.MathematicalText("a")
        .set_superscript("2")
        .join("=")
        .join(math.MathematicalText("b").set_superscript("2"))
        .join("+")
        .join(math.MathematicalText("c").set_superscript("2"))
        .to_border_box()
    )

    math_paragraph.add(math.MathBlock(boxed_equation))

    presentation.save("border-box.pptx", slides.export.SaveFormat.PPTX)

Ομαδοποίηση όρων

Χρησιμοποιήστε το group για να τοποθετήσετε έναν χαρακτήρα ομαδοποίησης πάνω ή κάτω από μια έκφραση. Προσθέστε όριο για να ετικετοφορήσετε τους ομαδοποιημένους όρους.

Η έκφραση x + y ομαδοποιημένη με την ετικέτα οποιοδήποτε κείμενο κάτω από αυτή

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 120)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    grouped = (
        math.MathematicalText("x + y")
        .group(chr(0x23DF), math.MathTopBotPositions.BOTTOM, math.MathTopBotPositions.TOP)
        .set_lower_limit("any text")
    )

    math_paragraph.add(math.MathBlock(grouped))

    presentation.save("grouped-terms.pptx", slides.export.SaveFormat.PPTX)

Μορφοποίηση μαθηματικών στοιχείων

Χρησιμοποιήστε βοηθήματα μορφοποίησης μόνο όταν διευκρινίζουν τον τύπο. Για παράδειγμα, το overbar τοποθετεί μια γραμμή πάνω από ένα μαθηματικό στοιχείο.

Μια μαθηματική έκφραση ABC με μια επάνω γραμμή

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

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

    math_shape = slide.shapes.add_math_shape(20, 20, 700, 100)
    math_paragraph = math_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    overbar = math.MathematicalText("ABC").overbar()

    math_paragraph.add(math.MathBlock(overbar))

    presentation.save("overbar.pptx", slides.export.SaveFormat.PPTX)

Σύντομη αναφορά

Ενέργεια Κύριο API
Δημιουργία μαθηματικού κειμένου MathematicalText
Συνδυασμός στοιχείων IMathElement.join
Δημιουργία κλασμάτων IMathElement.divide
Προσθήκη υπερδείκτη ή υποδείκτη set_superscript, set_subscript
Προσθήκη συναρτήσεων function, as_argument_of_function
Προσθήκη ριζών radical
Προσθήκη ορίων set_lower_limit, set_upper_limit
Προσθήκη αριστερών δεικτών set_sub_superscript_on_the_left
Προσθήκη αθροίσεων και ολοκληρωμάτων nary, integral
Προσθήκη πινάκων MathMatrix
Προσθήκη ακολουθιών εξισώσεων to_math_array
Προσθήκη οριοθετών enclose
Προσθήκη γραμμών και περιγραμμάτων overbar, to_border_box
Ομαδοποίηση όρων group

FAQ

Μπορώ να επεξεργαστώ μια υπάρχουσα εξίσωση PowerPoint;

Ναι. Ανοίξτε την παρουσίαση, βρείτε το σχήμα που περιέχει ένα MathPortion, λάβετε το MathParagraph του και ενημερώστε τα μαθηματικά μπλοκ σε αυτήν την παράγραφο.

Αποθηκεύονται οι εξισώσεις ως επεξεργάσιμο μαθηματικό PowerPoint;

Ναι. Όταν αποθηκεύετε σε PPTX, το Aspose.Slides γράφει την εξίσωση ως επεξεργάσιμο περιεχόμενο Office math.

Μπορώ να εξάγω εξισώσεις σε LaTeX;

Το Aspose.Slides εξάγει μαθηματικές εξώσεις σε MathML. Εάν χρειάζεστε LaTeX, εξάγετε πρώτα σε MathML και στη συνέχεια μετατρέψτε το MathML με ένα εργαλείο που υποστηρίζει το επιθυμητό διάλεκτο LaTeX.