Wiskundige vergelijkingen toevoegen aan PowerPoint-presentaties in .NET

Overzicht

PowerPoint slaat vergelijkingen op als Office Math Markup Language (OMML). Met Aspose.Slides for .NET kunt u dezelfde soort wiskundige inhoud programmatically maken: breuken, wortels, functies, limieten, N-ary‑operatoren, matrices, arrays en opgemaakte wiskundige blokken.

In PowerPoint voegen gebruikers normaal gesproken vergelijkingen toe via Invoegen > Vergelijking:

PowerPoint Invoegen-tabblad met het commando Vergelijking geselecteerd

Het resultaat is bewerkbare wiskundige tekst op de dia:

Een PowerPoint‑dia met een bewerkbare wiskundige vergelijking

Aspose.Slides bouwt die wiskundige tekst via drie hoofdobjecten:

De meeste voorbeelden hieronder gebruiken MathematicalText en de fluent‑methoden van IMathElement om de code kort en leesbaar te houden.

Voor MathML‑exportscenario’s, zie Export Math Equations from Presentations in .NET.

Maak een vergelijking

Dit voorbeeld maakt een wiskundige vorm en voegt de stelling van Pythagoras toe:

De vergelijking c² = a² + b²

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);

Breuken toevoegen

Gebruik Divide om een breuk te maken. U kunt een breukstijl kiezen met MathFractionTypes.

Een scheve wiskundige breuk die één gedeeld door x toont

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);

Voor een gestapelde breuk, gebruik MathFractionTypes.Bar:

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

Wortels toevoegen

Gebruik Radical om een vierkantswortel, kubieke wortel of een andere wortel te maken. Het huidige element wordt de basis, en het argument wordt de graad.

Een n‑de wortelexpressie met x onder het wortelteken

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);

Functies en limieten toevoegen

Gebruik AsArgumentOfFunction of Function voor functies zoals sin(x), log(x) of eigen functienamen. Voor limieten, zet lim in een MathLimit of gebruik SetLowerLimit.

De limiet van x wanneer x naar oneindig gaat

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);

Voor een eigen functienaam, maak de functienaam het huidige element:

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

N‑ary‑operatoren en integralen toevoegen

Gebruik Nary voor sommatie‑, unie‑, intersectie‑ en andere grote operatoren. Gebruik Integral voor integralen. Beide methoden laten u onder‑ en bovengrenzen instellen.

Een sommatie met onder‑ en bovengrenzen

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);

N‑ary‑operatoren zijn voor grote operatoren met optionele grenzen. Simpele operatoren zoals +, - en = worden meestal toegevoegd als MathematicalText en samengevoegd tot de expressie.

Voor een integraal, gebruik Integral:

var integralBase = new MathematicalText("x").Join(new MathematicalText("dx").ToBox());
var integral = integralBase.Integral(MathIntegralTypes.Simple, "0", "1");

Matrices toevoegen

Gebruik MathMatrix voor rijen en kolommen. Matrices bevatten standaard geen haken, dus omring de matrix wanneer u haakjes, blokhaken of accolades nodig hebt.

Een wiskundige matrix met twee rijen en één lege cel

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);

Vergelijkingsarrays toevoegen

Gebruik ToMathArray wanneer u uitgelijnde vergelijkingen of een verticale stapel expressies nodig hebt.

Een verticale wiskundige array met x boven 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);

Trigonometrische functies toevoegen

Gebruik AsArgumentOfFunction wanneer het argument het huidige element is en de functienaam bekend is.

De trigonometrische functie cos toegepast op 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);

Subscripties en superscripties toevoegen

Gebruik de subscript‑ en superscript‑helpers voor indexen en machten. Wanneer de indexen links van de basis moeten staan, gebruik SetSubSuperscriptOnTheLeft.

Een hoofdletter Y met subscript 1 aan de linkerkant en superscript 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);

Afgrenzers toevoegen

Gebruik Enclose om een expressie tussen afgrenzers te plaatsen. U kunt ook een scheidingsteken instellen voor afgrenzer‑expressies die meerdere elementen bevatten.

Een afgebakende expressie met x, y en z gescheiden door verticale streepjes

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);

Een randvak toevoegen

Gebruik ToBorderBox wanneer de vergelijking zelf moet worden omkaderd.

Een ingekaderde vergelijking waarin a² = b² + c²

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);

Termen groeperen

Gebruik Group om een groepeerteken boven of onder een expressie te plaatsen. Voeg een limiet toe om de gegroepeerde termen te labelen.

De expressie x + y gegroepeerd met het label willekeurige tekst eronder

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);

Wiskundige elementen opmaken

Gebruik opmaak‑helpers alleen waar ze de formule verduidelijken. Bijvoorbeeld, Overbar plaatst een balk boven een wiskundig element.

Een wiskundige uitdrukking ABC met een overstreping

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);

Snelreferentie

Taak Hoofd‑API
Wiskundige tekst maken MathematicalText
Elementen combineren IMathElement.Join
Breuken maken IMathElement.Divide
Superscript of subscript toevoegen SetSuperscript, SetSubscript
Functies toevoegen Function, AsArgumentOfFunction
Wortels toevoegen IMathElement.Radical
Limieten toevoegen SetLowerLimit, SetUpperLimit
Linker‑scripts toevoegen SetSubSuperscriptOnTheLeft
Sommaties en integralen toevoegen Nary, Integral
Matrices toevoegen MathMatrix
Vergelijkingsarrays toevoegen ToMathArray
Afgrenzers toevoegen Enclose
Balken en randen toevoegen Overbar, ToBorderBox
Termen groeperen Group

FAQ

Kan ik een bestaande PowerPoint‑vergelijking bewerken?

Ja. Open de presentatie, vind de vorm die een MathPortion bevat, haal de MathParagraph op en werk de wiskundige blokken in die alinea bij.

Worden vergelijkingen opgeslagen als bewerkbare PowerPoint‑wiskunde?

Ja. Wanneer u opslaat als PPTX, schrijft Aspose.Slides de vergelijking weg als bewerkbare Office‑wiskundige inhoud.

Kan ik vergelijkingen exporteren naar LaTeX?

Ja. Haal het IMathParagraph van de MathPortion op, en roep IMathParagraph.ToLatex aan om het direct te exporteren. Voor een volledig voorbeeld, zie Export Math Equations from Presentations in .NET.