Lägg till matematiska ekvationer i PowerPoint-presentationer i Python
Översikt
PowerPoint lagrar ekvationer som Office Math Markup Language (OMML). Med Aspose.Slides för Python via .NET kan du skapa samma typ av matematiskt innehåll programmässigt: bråktal, radikaler, funktioner, gränsvärden, N-ary-operatorer, matriser, arrayer och formaterade matematikblock.
I PowerPoint lägger användare normalt till ekvationer via Insert > Equation:

Resultatet blir redigerbar matematisk text på bilden:

Aspose.Slides bygger den matematiska texten genom tre huvudobjekt:
- Ett matematiskt objekt, skapat med add_math_shape, är formen som innehåller ekvationen.
- MathPortion lagrar matematiskt innehåll i formens textruta.
- MathParagraph innehåller ett eller flera MathBlock-objekt.
De flesta exempel nedan använder MathematicalText och de flödande metoderna från IMathElement för att hålla koden kort och läsbar.
För MathML-exportscenarier, se Export Math Equations from Presentations in Python via .NET.
Skapa en ekvation
Detta exempel skapar ett matematiskt objekt och lägger till Pythagoras sats:

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)
add_math_shape skapar en form som redan innehåller ett matematiskt stycke. Åtkomst till den första MathPortion, hämta dess MathParagraph och lägg till matematiska block eller math‑element till den.
Lägg till bråktal
Använd divide för att skapa ett bråk. Du kan välja en bråktyp med MathFractionTypes.

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)
För ett staplat bråk, använd MathFractionTypes.BART:
stacked_fraction = math.MathematicalText("x + 1").divide("y - 1", math.MathFractionTypes.BAR)
Lägg till radikaler
Använd radical för att skapa en kvadratrots-, kubrotn- eller annan rot. Det aktuella elementet blir basen och argumentet blir graden.

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)
Lägg till funktioner och gränsvärden
Använd as_argument_of_function eller function för funktioner såsom sin(x), log(x) eller anpassade funktionsnamn. För gränsvärden, placera lim i en MathLimit eller använd set_lower_limit.

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)
För ett anpassat funktionsnamn, gör funktionsnamnet till det aktuella elementet:
custom_function = math.MathematicalText("f").function("x + 1")
Lägg till N-ary-operatorer och integraler
Använd nary för summor, unioner, snitt och andra stora operatorer. Använd integral för integraler. Båda metoderna låter dig ange lägre och övre gränser.

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-operatorer är för stora operatorer med valfria gränser. Enkla operatorer såsom +, - och = läggs vanligtvis till som MathematicalText och förenas i uttrycket.
För en integral, använd integral:
integral_base = math.MathematicalText("x").join(math.MathematicalText("dx").to_box())
integral = integral_base.integral(math.MathIntegralTypes.SIMPLE, "0", "1")
Lägg till matriser
Använd MathMatrix för rader och kolumner. Matriser inkluderar inte parenteser som standard, så omslut matrisen när du behöver parenteser, hakparenteser eller klammer.

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)
Lägg till ekvationsarrayer
Använd to_math_array när du behöver justerade ekvationer eller en vertikal stapel av uttryck.

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)
Lägg till trigonometriska funktioner
Använd as_argument_of_function när argumentet är det aktuella elementet och funktionsnamnet är känt.

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)
Lägg till nedsättningar och upphöjningar
Använd hjälpfunktionerna för nedsättningar och upphöjningar för index och potenser. När indexen måste visas på vänster sida om basen, använd set_sub_superscript_on_the_left.

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)
Lägg till avgränsare
Använd enclose för att placera ett uttryck inom avgränsare. Du kan också ange ett avgränsartecken för avgränsade uttryck som innehåller flera element.

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)
Lägg till en ramruta
Använd to_border_box när själva ekvationen ska ramas in.

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)
Gruppera termer
Använd group för att placera ett grupperingssymbol ovanför eller under ett uttryck. Lägg till en gräns för att märka de grupperade termerna.

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)
Formatera matematiska element
Använd formateringshjälpmedel endast där de klargör formeln. Till exempel placerar overbar en överlinje över ett matematiskt element.

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)
Snabbreferens
| Uppgift | Huvud‑API |
|---|---|
| Skapa matematiktext | MathematicalText |
| Kombinera element | IMathElement.join |
| Skapa bråktal | IMathElement.divide |
| Lägg till upphöjning eller nedsättning | set_superscript, set_subscript |
| Lägg till funktioner | function, as_argument_of_function |
| Lägg till radikaler | radical |
| Lägg till gränsvärden | set_lower_limit, set_upper_limit |
| Lägg till vänstersidiga index | set_sub_superscript_on_the_left |
| Lägg till summationer och integraler | nary, integral |
| Lägg till matriser | MathMatrix |
| Lägg till ekvationsarrayer | to_math_array |
| Lägg till avgränsare | enclose |
| Lägg till staplar och ramar | overbar, to_border_box |
| Gruppera termer | group |
Vanliga frågor
Kan jag redigera en befintlig PowerPoint‑ekvation?
Ja. Öppna presentationen, hitta formen som innehåller en MathPortion, hämta dess MathParagraph och uppdatera de matematiska blocken i det stycket.
Sparas ekvationer som redigerbar PowerPoint‑matematik?
Ja. När du sparar till PPTX skriver Aspose.Slides ekvationen som redigerbart Office‑matteinnehåll.
Kan jag exportera ekvationer till LaTeX?
Ja. Hämta ekvationens MathParagraph från dess MathPortion och anropa MathParagraph.to_latex för att exportera den direkt. För ett komplett exempel, se Export Math Equations from Presentations in Python via .NET.