Ajouter des équations mathématiques aux présentations PowerPoint en Python
Vue d’ensemble
PowerPoint stocke les équations au format Office Math Markup Language (OMML). Avec Aspose.Slides for Python via .NET, vous pouvez créer le même type de contenu mathématique de façon programmatique : fractions, radicaux, fonctions, limites, opérateurs n‑aires, matrices, tableaux et blocs mathématiques formatés.
Dans PowerPoint, les utilisateurs ajoutent généralement des équations via Insertion > Équation :

Le résultat est du texte mathématique éditable sur la diapositive :

Aspose.Slides construit ce texte mathématique à l’aide de trois objets principaux :
- Une forme mathématique, créée avec add_math_shape, est la forme qui contient l’équation.
- MathPortion stocke le contenu mathématique à l’intérieur du cadre de texte de la forme.
- MathParagraph contient un ou plusieurs objets MathBlock.
La plupart des exemples ci‑dessous utilisent MathematicalText et les méthodes fluides de IMathElement pour garder le code court et lisible.
Pour les scénarios d’exportation MathML, voir Export Math Equations from Presentations in Python via .NET.
Créer une équation
Cet exemple crée une forme mathématique et ajoute le théorème de Pythagore :

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 crée une forme qui contient déjà un paragraphe mathématique. Accédez au premier MathPortion, obtenez son MathParagraph, puis ajoutez des blocs mathématiques ou des éléments mathématiques.
Ajouter des fractions
Utilisez divide pour créer une fraction. Vous pouvez choisir un style de fraction avec 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)
Pour une fraction empilée, utilisez MathFractionTypes.BAR :
stacked_fraction = math.MathematicalText("x + 1").divide("y - 1", math.MathFractionTypes.BAR)
Ajouter des radicaux
Utilisez radical pour créer une racine carrée, cubique ou autre. L’élément actuel devient la base, et l’argument devient le degré.

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)
Ajouter des fonctions et des limites
Utilisez as_argument_of_function ou function pour des fonctions telles que sin(x), log(x) ou des noms de fonctions personnalisés. Pour les limites, placez lim dans un MathLimit ou utilisez 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)
Pour un nom de fonction personnalisé, faites du nom de la fonction l’élément actuel :
custom_function = math.MathematicalText("f").function("x + 1")
Ajouter des opérateurs n‑aires et des intégrales
Utilisez nary pour les sommes, unions, intersections et autres gros opérateurs. Utilisez integral pour les intégrales. Les deux méthodes permettent de définir les limites inférieure et supérieure.

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)
Les opérateurs n‑aires sont destinés aux gros opérateurs avec limites optionnelles. Les opérateurs simples tels que +, - et = sont généralement ajoutés comme MathematicalText et concaténés dans l’expression.
Pour une intégrale, utilisez integral :
integral_base = math.MathematicalText("x").join(math.MathematicalText("dx").to_box())
integral = integral_base.integral(math.MathIntegralTypes.SIMPLE, "0", "1")
Ajouter des matrices
Utilisez MathMatrix pour les lignes et les colonnes. Les matrices n’incluent pas de crochets par défaut, il faut donc les entourer lorsque vous avez besoin de parenthèses, crochets ou accolades.

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)
Ajouter des tableaux d’équations
Utilisez to_math_array lorsque vous avez besoin d’équations alignées ou d’une pile verticale d’expressions.

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)
Ajouter des fonctions trigonométriques
Utilisez as_argument_of_function lorsque l’argument est l’élément actuel et que le nom de la fonction est connu.

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)
Ajouter des indices et des exposants
Utilisez les assistants d’indice et d’exposant pour les indices et les puissances. Lorsque les indices doivent apparaître du côté gauche de la base, utilisez 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)
Ajouter des délimiteurs
Utilisez enclose pour placer une expression entre des délimiteurs. Vous pouvez également définir un caractère séparateur pour les expressions délimitées contenant plusieurs éléments.

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)
Ajouter une boîte encadrée
Utilisez to_border_box lorsque l’équation elle‑même doit être encadrée.

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)
Regrouper des termes
Utilisez group pour placer un caractère de groupe au-dessus ou en dessous d’une expression. Ajoutez une limite pour libeller les termes regroupés.

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)
Formater les éléments mathématiques
Utilisez les assistants de formatage uniquement lorsqu’ils clarifient la formule. Par exemple, overbar place une barre au-dessus d’un élément mathématique.

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)
Référence rapide
| Tâche | API principale |
|---|---|
| Créer du texte mathématique | MathematicalText |
| Combiner des éléments | IMathElement.join |
| Créer des fractions | IMathElement.divide |
| Ajouter un exposant ou un indice | set_superscript, set_subscript |
| Ajouter des fonctions | function, as_argument_of_function |
| Ajouter des radicaux | radical |
| Ajouter des limites | set_lower_limit, set_upper_limit |
| Ajouter des scripts côté gauche | set_sub_superscript_on_the_left |
| Ajouter des sommes et des intégrales | nary, integral |
| Ajouter des matrices | MathMatrix |
| Ajouter des tableaux d’équations | to_math_array |
| Ajouter des délimiteurs | enclose |
| Ajouter des barres et des bordures | overbar, to_border_box |
| Regrouper des termes | group |
FAQ
Puis‑je modifier une équation PowerPoint existante ?
Oui. Ouvrez la présentation, trouvez la forme qui contient un MathPortion, récupérez son MathParagraph, puis mettez à jour les blocs mathématiques dans ce paragraphe.
Les équations sont‑elles enregistrées comme du mathématique PowerPoint éditable ?
Oui. Lors de l’enregistrement en PPTX, Aspose.Slides écrit l’équation comme du contenu mathématique Office éditable.
Puis‑je exporter les équations vers LaTeX ?
Aspose.Slides exporte les équations mathématiques vers MathML. Si vous avez besoin de LaTeX, exportez d’abord vers MathML puis convertissez le MathML avec un outil qui prend en charge le dialecte LaTeX cible.