Ajouter des équations mathématiques aux présentations PowerPoint en .NET

Vue d’ensemble

PowerPoint stocke les équations au format Office Math Markup Language (OMML). Avec Aspose.Slides pour .NET, vous pouvez créer le même type de contenu mathématique de façon programmatique : fractions, radicaux, fonctions, limites, opérateurs N-ary, matrices, tableaux et blocs mathématiques formatés.

Dans PowerPoint, les utilisateurs ajoutent généralement des équations via Insertion > Équation :

Onglet Insérer de PowerPoint avec la commande Équation sélectionnée

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

Une diapositive PowerPoint contenant une équation mathématique modifiable

Aspose.Slides construit ce texte mathématique à l’aide de trois objets principaux :

  • Une forme mathématique, créée avec AddMathShape, 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 Exporter des équations mathématiques à partir de présentations en .NET.

Créer une équation

Cet exemple crée une forme mathématique et ajoute le théorème de Pythagore :

L’équation c au carré égale a au carré plus b au carré

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 120);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var equation = new MathematicalText("c")
    .SetSuperscript("2")
    .Join("=")
    .Join(new MathematicalText("a").SetSuperscript("2"))
    .Join("+")
    .Join(new MathematicalText("b").SetSuperscript("2"));

mathParagraph.Add(equation);

presentation.Save("pythagorean-theorem.pptx", SaveFormat.Pptx);

Ajouter des fractions

Utilisez Divide pour créer une fraction. Vous pouvez choisir un style de fraction avec MathFractionTypes.

Une fraction mathématique inclinée montrant un divisé par x

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var fraction = new MathematicalText("1")
    .Divide("x", MathFractionTypes.Skewed);

mathParagraph.Add(new MathBlock(fraction));

presentation.Save("fraction.pptx", SaveFormat.Pptx);

Pour une fraction empilée, utilisez MathFractionTypes.Bar :

var stackedFraction = new MathematicalText("x + 1").Divide("y - 1", MathFractionTypes.Bar);

Ajouter des radicaux

Utilisez Radical pour créer une racine carrée, une racine cubique ou toute autre racine. L’élément courant devient la base, et l’argument devient le degré.

Une expression radicande de n‑ième racine avec x sous le signe radical

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var radical = new MathematicalText("x")
    .Radical("n");

mathParagraph.Add(new MathBlock(radical));

presentation.Save("radical.pptx", SaveFormat.Pptx);

Ajouter des fonctions et des limites

Utilisez AsArgumentOfFunction 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 SetLowerLimit.

La limite de x lorsque x tend vers l’infini

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var limit = new MathematicalText("lim")
    .SetLowerLimit("x→∞")
    .Function("x");

mathParagraph.Add(new MathBlock(limit));

presentation.Save("functions-and-limits.pptx", SaveFormat.Pptx);

Pour un nom de fonction personnalisé, faites du nom de fonction l’élément courant :

var customFunction = new MathematicalText("f").Function("x + 1");

Ajouter des opérateurs N-ary et des intégrales

Utilisez Nary pour les sommes, les réunions, les intersections et d’autres grands opérateurs. Utilisez Integral pour les intégrales. Les deux méthodes vous permettent de définir les limites inférieure et supérieure.

Une sommation avec limites inférieure et supérieure

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 120);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var summationBase = new MathematicalText("x")
    .SetSuperscript("k")
    .Join(new MathematicalText("a").SetSuperscript("n-k"));

var summation = summationBase.Nary(MathNaryOperatorTypes.Summation, "k=0", "n");

mathParagraph.Add(new MathBlock(summation));

presentation.Save("nary-operators.pptx", SaveFormat.Pptx);

Les opérateurs N-ary sont destinés aux grands opérateurs avec limites optionnelles. Les opérateurs simples tels que +, - et = sont généralement ajoutés en tant que MathematicalText et combinés dans l’expression.

Pour une intégrale, utilisez Integral :

var integralBase = new MathematicalText("x").Join(new MathematicalText("dx").ToBox());
var integral = integralBase.Integral(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, donc encadrez la matrice lorsque vous avez besoin de parenthèses, de crochets ou d’accolades.

Une matrice mathématique à deux lignes avec une cellule vide

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 120);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var matrix = new MathMatrix(2, 3);
matrix[0, 0] = new MathematicalText("1");
matrix[0, 1] = new MathematicalText("x");
matrix[1, 0] = new MathematicalText("x");
matrix[1, 1] = new MathematicalText("2");
matrix[1, 2] = new MathematicalText("y");

mathParagraph.Add(new MathBlock(matrix));

presentation.Save("matrix.pptx", SaveFormat.Pptx);

Ajouter des tableaux d’équations

Utilisez ToMathArray lorsque vous avez besoin d’équations alignées ou d’une pile verticale d’expressions.

Un tableau mathématique vertical avec x au-dessus de y

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 140);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var equationArray = new MathematicalText("x")
    .Join("y")
    .ToMathArray();

mathParagraph.Add(new MathBlock(equationArray));

presentation.Save("equation-array.pptx", SaveFormat.Pptx);

Ajouter des fonctions trigonométriques

Utilisez AsArgumentOfFunction lorsque l’argument est l’élément courant et que le nom de la fonction est connu.

La fonction trigonométrique cos appliquée à 2x

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var cosine = new MathematicalText("2x")
    .AsArgumentOfFunction(MathFunctionsOfOneArgument.Cos);

mathParagraph.Add(new MathBlock(cosine));

presentation.Save("trigonometric-function.pptx", 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 SetSubSuperscriptOnTheLeft.

Un Y majuscule avec indice gauche 1 et exposant n

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var scripts = new MathematicalText("Y")
    .SetSubSuperscriptOnTheLeft("1", "n");

mathParagraph.Add(new MathBlock(scripts));

presentation.Save("subscript-superscript.pptx", 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.

Une expression délimitée contenant x, y et z séparés par des barres verticales

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var delimiter = new MathematicalText("x")
    .Join("y")
    .Join("z")
    .Enclose('<', '>');
delimiter.SeparatorCharacter = '|';

mathParagraph.Add(new MathBlock(delimiter));

presentation.Save("delimiters.pptx", SaveFormat.Pptx);

Ajouter une boîte encadrée

Utilisez ToBorderBox lorsque l’équation elle‑même doit être encadrée.

Une équation encadrée montrant a carré égal b carré plus c carré

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var boxedEquation = new MathematicalText("a")
    .SetSuperscript("2")
    .Join("=")
    .Join(new MathematicalText("b").SetSuperscript("2"))
    .Join("+")
    .Join(new MathematicalText("c").SetSuperscript("2"))
    .ToBorderBox();

mathParagraph.Add(new MathBlock(boxedEquation));

presentation.Save("border-box.pptx", SaveFormat.Pptx);

Regrouper des termes

Utilisez Group pour placer un caractère de groupement au-dessus ou en dessous d’une expression. Ajoutez une limite pour étiqueter les termes groupés.

L’expression x plus y groupée avec l’étiquette n’importe quel texte en dessous

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 120);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var grouped = new MathematicalText("x + y")
    .Group('\u23DF', MathTopBotPositions.Bottom, MathTopBotPositions.Top)
    .SetLowerLimit("any text");

mathParagraph.Add(new MathBlock(grouped));

presentation.Save("grouped-terms.pptx", SaveFormat.Pptx);

Formater les éléments mathématiques

Utilisez les assistants de mise en forme uniquement lorsque cela clarifie la formule. Par exemple, Overbar place une barre au-dessus d’un élément mathématique.

Une expression mathématique ABC avec une barre supérieure

using var presentation = new Presentation();
var slide = presentation.Slides[0];

var mathShape = slide.Shapes.AddMathShape(20, 20, 700, 100);
var mathParagraph = ((MathPortion)mathShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

var overbar = new MathematicalText("ABC").Overbar();

mathParagraph.Add(new MathBlock(overbar));

presentation.Save("overbar.pptx", 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 SetSuperscript, SetSubscript
Ajouter des fonctions Function, AsArgumentOfFunction
Ajouter des radicaux IMathElement.Radical
Ajouter des limites SetLowerLimit, SetUpperLimit
Ajouter des scripts du côté gauche SetSubSuperscriptOnTheLeft
Ajouter des sommes et des intégrales Nary, Integral
Ajouter des matrices MathMatrix
Ajouter des tableaux d’équations ToMathArray
Ajouter des délimiteurs Enclose
Ajouter des barres et des bordures Overbar, ToBorderBox
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, et mettez à jour les blocs mathématiques dans ce paragraphe.

Les équations sont‑elles enregistrées comme du math PowerPoint modifiable ?

Oui. Lorsque vous enregistrez au format PPTX, Aspose.Slides écrit l’équation comme du contenu mathématique Office modifiable.

Puis-je exporter les équations vers LaTeX ?

Aspose.Slides exporte les équations mathématiques au format 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.