Équations Mathématiques PowerPoint
Aperçu
Dans PowerPoint, il est possible d’écrire une équation mathématique ou une formule et de l’afficher dans la présentation. Pour ce faire, divers symboles mathématiques sont représentés dans PowerPoint et peuvent être ajoutés au texte ou à l’équation. Pour cela, le constructeur d’équations mathématiques est utilisé dans PowerPoint, ce qui aide à créer des formules complexes telles que :
- Fraction Mathématique
- Racine Mathématique
- Fonction Mathématique
- Limites et fonctions log
- Opérations N-aires
- Matrice
- Grands opérateurs
- Fonctions sin, cos
Pour ajouter une équation mathématique dans PowerPoint, le menu Insérer -> Équation est utilisé :
Cela créera un texte mathématique en XML qui peut être affiché dans PowerPoint comme suit :
PowerPoint prend en charge de nombreux symboles mathématiques pour créer des équations mathématiques. Cependant, la création d’équations mathématiques compliquées dans PowerPoint ne donne souvent pas un résultat satisfaisant et professionnel. Les utilisateurs qui ont besoin de créer fréquemment des présentations mathématiques recourent à des solutions tierces pour créer de belles formules mathématiques.
En utilisant Aspose.Slide API, vous pouvez travailler avec des équations mathématiques dans les présentations PowerPoint de manière programmatique en C#. Créez de nouvelles expressions mathématiques ou modifiez celles déjà créées. L’exportation de structures mathématiques vers des images est également partiellement supportée.
Comment créer une équation mathématique
Les éléments mathématiques sont utilisés pour construire toutes les constructions mathématiques avec n’importe quel niveau d’imbrication. Une collection linéaire d’éléments mathématiques forme un bloc mathématique représenté par la classe MathBlock. La classe MathBlock est essentiellement une expression mathématique, une formule ou une équation séparée. MathPortion est une portion mathématique, utilisée pour contenir du texte mathématique (ne pas confondre avec Portion). MathParagraph permet de manipuler un ensemble de blocs mathématiques. Les classes mentionnées ci-dessus sont la clé pour travailler avec les équations mathématiques PowerPoint via l’API Aspose.Slides.
Voyons comment nous pouvons créer l’équation mathématique suivante via l’API Aspose.Slides :
Pour ajouter une expression mathématique sur la diapositive, ajoutez d’abord une forme qui contiendra le texte mathématique :
using (Presentation pres = new Presentation())
{
var mathShape = pres.Slides[0].Shapes.AddMathShape(0, 0, 720, 150);
}
Après la création, la forme contiendra déjà un paragraphe avec une portion mathématique par défaut. La classe MathPortion est une portion qui contient un texte mathématique à l’intérieur. Pour accéder au contenu mathématique à l’intérieur de MathPortion, référez-vous à la variable MathParagraph :
var mathParagraph = (mathShape.TextFrame.Paragraphs[0].Portions[0] as MathPortion).MathParagraph;
La classe MathParagraph permet de lire, d’ajouter, de modifier et de supprimer des blocs mathématiques (MathBlock), qui sont une combinaison d’éléments mathématiques. Par exemple, créez une fraction et placez-la dans la présentation :
var fraction = new MathematicalText("x").Divide("y");
mathParagraph.Add(new MathBlock(fraction));
Chaque élément mathématique est représenté par une classe qui implémente l’interface IMathElement. Cette interface fournit de nombreuses méthodes pour créer facilement des expressions mathématiques. Vous pouvez créer une expression mathématique assez complexe avec une seule ligne de code. Par exemple, le théorème de Pythagore ressemblerait à ceci :
var mathBlock = new MathematicalText("c")
.SetSuperscript("2")
.Join("=")
.Join(new MathematicalText("a").SetSuperscript("2"))
.Join("+")
.Join(new MathematicalText("b").SetSuperscript("2"));
Les opérations de l’interface IMathElement sont mises en œuvre dans tout type d’élément, y compris le MathBlock.
L’exemple de code source complet :
using (Presentation pres = new Presentation())
{
IAutoShape mathShape = pres.Slides[0].Shapes.AddMathShape(0, 0, 720, 150);
var mathParagraph = (mathShape.TextFrame.Paragraphs[0].Portions[0] as MathPortion).MathParagraph;
var fraction = new MathematicalText("x").Divide("y");
mathParagraph.Add(new MathBlock(fraction));
var mathBlock = new MathematicalText("c")
.SetSuperscript("2")
.Join("=")
.Join(new MathematicalText("a").SetSuperscript("2"))
.Join("+")
.Join(new MathematicalText("b").SetSuperscript("2"));
mathParagraph.Add(mathBlock);
pres.Save("math.pptx", SaveFormat.Pptx);
}
Types d’éléments mathématiques
Les expressions mathématiques sont formées à partir de séquences d’éléments mathématiques. La séquence d’éléments mathématiques est représentée par un bloc mathématique, et les arguments des éléments mathématiques forment un empilement en forme d’arbre.
Il existe de nombreux types d’éléments mathématiques qui peuvent être utilisés pour construire un bloc mathématique. Chacun de ces éléments peut être inclus (agrégé) dans un autre élément. Cela signifie que les éléments sont en fait des conteneurs pour d’autres, formant une structure arborescente. Le type d’élément le plus simple ne contient pas d’autres éléments du texte mathématique.
Chaque type d’élément mathématique implémente l’interface IMathElement, permettant d’utiliser l’ensemble commun d’opérations mathématiques sur différents types d’éléments mathématiques.
Classe MathematicalText
La classe MathematicalText représente un texte mathématique - l’élément de base de toutes les constructions mathématiques. Le texte mathématique peut représenter des opérandes et des opérateurs, des variables et tout autre texte linéaire.
Exemple : 𝑎=𝑏+𝑐
Classe MathFraction
La classe MathFraction spécifie l’objet fraction, constitué d’un numérateur et d’un dénominateur séparés par une barre de fraction. La barre de fraction peut être horizontale ou diagonale, en fonction des propriétés de la fraction. L’objet fraction est également utilisé pour représenter la fonction de pile, qui place un élément au-dessus d’un autre, sans barre de fraction.
Exemple :
Classe MathRadical
La classe MathRadical spécifie la fonction radicale (racine mathématique), constituée d’une base et d’un degré optionnel.
Exemple :
Classe MathFunction
La classe MathFunction spécifie une fonction d’un argument. Contient des propriétés : Name - nom de la fonction et Base - argument de la fonction.
Exemple :
Classe MathNaryOperator
La classe MathNaryOperator spécifie un objet mathématique N-aire, tel que Somme et Intégrale. Il se compose d’un opérateur, d’une base (ou opérande) et de limites supérieures et inférieures optionnelles. Des exemples d’opérateurs N-aires sont Somme, Union, Intersection, Intégrale.
Cette classe n’inclut pas d’opérateurs simples tels que l’addition, la soustraction, etc. Ceux-ci sont représentés par un élément de texte unique - MathematicalText.
Exemple :
Classe MathLimit
La classe MathLimit crée la limite supérieure ou inférieure. Elle spécifie l’objet limite, constitué de texte sur la ligne de base et de texte de taille réduite immédiatement au-dessus ou en dessous. Cet élément n’inclut pas le mot “lim", mais permet de placer du texte en haut ou en bas de l’expression. Ainsi, l’expression
est créée à partir d’une combinaison de classes MathFunction et MathLimit de cette manière :
var funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑥→∞"));
var mathFunc = new MathFunction(funcName, new MathematicalText("𝑥"));
Classes MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement
- MathSubscriptElement
- MathSuperscriptElement
- MathRightSubSuperscriptElement
- MathLeftSubSuperscriptElement
Les classes suivantes spécifient un indice inférieur ou un indice supérieur. Vous pouvez définir un indice et un exposant en même temps sur le côté gauche ou droit d’un argument, mais un seul indice ou exposant est pris en charge sur le côté droit uniquement. Le MathSubscriptElement peut également être utilisé pour définir le degré mathématique d’un nombre.
Exemple :
Classe MathMatrix
La classe MathMatrix spécifie l’objet Matrice, constitué d’éléments enfants disposés en une ou plusieurs lignes et colonnes. Il est important de noter que les matrices n’ont pas de délimiteurs intégrés. Pour placer la matrice dans des parenthèses, vous devez utiliser l’objet de délimiteur - IMathDelimiter. Des arguments nuls peuvent être utilisés pour créer des espaces dans les matrices.
Exemple :
Classe MathArray
La classe MathArray spécifie un tableau vertical d’équations ou d’objets mathématiques.
Exemple :
Formatage des éléments mathématiques
-
La classe MathBorderBox : dessine une bordure rectangulaire ou une autre autour de IMathElement.
Exemple :
-
La classe MathBox : spécifie le conditionnement logique (emballage) de l’élément mathématique. Par exemple, un objet encadré peut servir d’émulateur d’opérateur avec ou sans point d’alignement, servir de point de rupture de ligne, ou être groupé afin d’éviter les retours à la ligne à l’intérieur. Par exemple, l’opérateur “==” doit être encadré pour empêcher les retours à la ligne.
-
La classe MathDelimiter : spécifie l’objet délimiteur, constitué de caractères d’ouverture et de fermeture (tels que des parenthèses, accolades, crochets et barres verticales), ainsi qu’un ou plusieurs éléments mathématiques à l’intérieur, séparés par un caractère spécifié. Exemples : (𝑥2); [𝑥2|𝑦2].
Exemple :
-
La classe MathAccent : spécifie la fonction d’accent, constituée d’une base et d’un signe diacritique combiné.
Exemple : 𝑎́.
-
La classe MathBar : spécifie la fonction barre, constituée d’un argument de base et d’une barre supérieure ou inférieure.
Exemple :
-
La classe MathGroupingCharacter : spécifie un symbole de regroupement au-dessus ou en dessous d’une expression, généralement pour souligner les relations entre les éléments.
Exemple :
Opérations mathématiques
Chaque élément mathématique et expression mathématique (via MathBlock) implémente l’interface IMathElement. Cela vous permet d’utiliser des opérations sur la structure existante et de former des expressions mathématiques plus complexes. Toutes les opérations disposent de deux ensembles de paramètres : soit IMathElement soit chaîne comme arguments. Les instances de la classe MathematicalText sont créées implicitement à partir des chaînes spécifiées lorsqu’il s’agit d’arguments de chaîne. Les opérations mathématiques disponibles dans Aspose.Slides sont listées ci-dessous.
Méthode Join
Joint un élément mathématique et forme un bloc mathématique. Par exemple :
IMathElement element1 = new MathematicalText("x");
IMathElement element2 = new MathematicalText("y");
IMathBlock block = element1.Join(element2);
Méthode Divide
- Divide(String)
- Divide(IMathElement)
- Divide(String, MathFractionTypes)
- Divide(IMathElement, MathFractionTypes)
Crée une fraction du type spécifié avec ce numérateur et ce dénominateur spécifiés. Par exemple :
IMathElement numerator = new MathematicalText("x");
IMathFraction fraction = numerator.Divide("y", MathFractionTypes.Linear);
Méthode Enclose
Enferme l’élément dans des caractères spécifiés tels que des parenthèses ou un autre caractère comme encadrement.
/// <summary>
/// Enferme un élément mathématique dans des parenthèses
/// </summary>
IMathDelimiter Enclose();
/// <summary>
/// Enferme cet élément dans des caractères spécifiés tels que des parenthèses ou d'autres caractères comme encadrement
/// </summary>
IMathDelimiter Enclose(char beginningCharacter, char endingCharacter);
Par exemple :
IMathDelimiter delimiter = new MathematicalText("x").Enclose('[', ']');
IMathDelimiter delimiter2 = new MathematicalText("elem1").Join("elem2").Enclose();
Méthode Function
Prend une fonction d’un argument en utilisant l’objet actuel comme nom de fonction.
/// <summary>
/// Prend une fonction d'un argument en utilisant cette instance comme nom de fonction
/// </summary>
/// <param name="functionArgument">Un argument de la fonction</param>
IMathFunction Function(IMathElement functionArgument);
IMathFunction Function(string functionArgument);
Par exemple :
IMathFunction func = new MathematicalText("sin").Function("x");
Méthode AsArgumentOfFunction
- AsArgumentOfFunction(String)
- AsArgumentOfFunction(IMathElement)
- AsArgumentOfFunction(MathFunctionsOfOneArgument)
- AsArgumentOfFunction(MathFunctionsOfTwoArguments, IMathElement)
- AsArgumentOfFunction(MathFunctionsOfTwoArguments, String)
Prend la fonction spécifiée en utilisant l’instance actuelle comme argument. Vous pouvez :
- spécifier une chaîne comme nom de fonction, par exemple “cos”.
- sélectionner l’une des valeurs prédéfinies des énumérations MathFunctionsOfOneArgument ou MathFunctionsOfTwoArguments, par exemple MathFunctionsOfOneArgument.ArcSin.
- sélectionner l’instance de IMathElement.
Par exemple :
var funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑛→∞"));
var func1 = new MathematicalText("2x").AsArgumentOfFunction(funcName);
var func2 = new MathematicalText("x").AsArgumentOfFunction("sin");
var func3 = new MathematicalText("x").AsArgumentOfFunction(MathFunctionsOfOneArgument.Sin);
var func4 = new MathematicalText("x").AsArgumentOfFunction(MathFunctionsOfTwoArguments.Log, "3")
Méthodes SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft
- SetSubscript(String)
- SetSubscript(IMathElement)
- SetSuperscript(String)
- SetSuperscript(IMathElement)
- SetSubSuperscriptOnTheRight(String, String)
- SetSubSuperscriptOnTheRight(IMathElement, IMathElement)
- SetSubSuperscriptOnTheLeft(String, String)
- SetSubSuperscriptOnTheLeft(IMathElement, IMathElement)
Définit un indice et un exposant. Vous pouvez définir un indice et un exposant en même temps sur le côté gauche ou droit de l’argument, mais un seul indice ou exposant est pris en charge uniquement sur le côté droit. L’Exposant peut également être utilisé pour définir le degré mathématique d’un nombre.
Exemple :
var script = new MathematicalText("y").SetSubSuperscriptOnTheLeft("2x", "3z");
Méthode Radical
Spécifie la racine mathématique du degré donné à partir de l’argument spécifié.
Exemple :
var radical = new MathematicalText("x").Radical("3");
Méthodes SetUpperLimit et SetLowerLimit
Prend la limite supérieure ou inférieure. Ici, la limite supérieure et inférieure indiquent simplement l’emplacement de l’argument par rapport à la base.
Considérons l’expression :
De telles expressions peuvent être créées à partir d’une combinaison des classes MathFunction et MathLimit, et les opérations de IMathElement comme suit :
var mathExpression = MathText.Create("lim").SetLowerLimit("x→∞").Function("x");
Méthodes Nary et Integral
- Nary(MathNaryOperatorTypes, IMathElement, IMathElement)
- Nary(MathNaryOperatorTypes, String, String)
- Integral(MathIntegralTypes)
- Integral(MathIntegralTypes, IMathElement, IMathElement)
- Integral(MathIntegralTypes, String, String)
- Integral(MathIntegralTypes, IMathElement, IMathElement, MathLimitLocations)
- Integral(MathIntegralTypes, String, String, MathLimitLocations)
Les méthodes Nary et Integral créent et retournent l’opérateur N-aire représenté par le type INaryOperator. Dans la méthode Nary, l’énumération MathNaryOperatorTypes spécifie le type d’opérateur : somme, union, etc., sans inclure les intégrales. Dans la méthode Integral, il s’agit de l’opération spécialisée Intégrale avec l’énumération des types d’intégrale MathIntegralTypes.
Exemple :
IMathBlock baseArg = new MathematicalText("x").Join(new MathematicalText("dx").ToBox());
IMathNaryOperator integral = baseArg.Integral(MathIntegralTypes.Simple, "0", "1");
Méthode ToMathArray
La méthode ToMathArray place des éléments dans un tableau vertical. Si cette opération est appelée pour une instance de MathBlock, tous les éléments enfants seront placés dans le tableau retourné.
Exemple :
var arrayFunction = new MathematicalText("x").Join("y").ToMathArray();
Opérations de formatage : Accent, Overbar, Underbar, Group, ToBorderBox, ToBox
- La méthode Accent définit un accent (un caractère au-dessus de l’élément).
- Les méthodes Overbar et Underbar définissent une barre en haut ou en bas.
- La méthode Group place dans un groupe en utilisant un caractère de groupement tel qu’un crochet inférieur ou autre.
- La méthode ToBorderBox place dans un cadre de bord.
- La méthode ToBox place dans une boîte non-visuelle (regroupement logique).
Exemples :
var accent = new MathematicalText("x").Accent('\u0303');
var bar = new MathematicalText("x").Overbar();
var groupChr = new MathematicalText("x").Join("y").Join("z").Group('\u23E1', MathTopBotPositions.Bottom, MathTopBotPositions.Top);
var borderBox = new MathematicalText("x+y+z").ToBorderBox();
var boxedOperator = new MathematicalText(":=").ToBox();