Mathematische Gleichungen zu PowerPoint-Präsentationen in .NET hinzufügen

Übersicht

PowerPoint speichert Gleichungen als Office Math Markup Language (OMML). Mit Aspose.Slides für .NET können Sie denselben mathematischen Inhalt programmgesteuert erstellen: Brüche, Radikale, Funktionen, Grenzwerte, N‑äre Operatoren, Matrizen, Arrays und formatierte Mathematikblöcke.

In PowerPoint fügen Benutzer Gleichungen normalerweise über Einfügen > Gleichung hinzu:

PowerPoint‑Einfügen‑Registerkarte mit ausgewähltem Befehl Gleichung

Das Ergebnis ist editierbarer mathematischer Text auf der Folie:

Eine PowerPoint‑Folienansicht mit einer editierbaren mathematischen Gleichung

Aspose.Slides erstellt diesen mathematischen Text mithilfe von drei Hauptobjekten:

  • Ein mathematisches Shape, erstellt mit AddMathShape, ist das Shape, das die Gleichung enthält.
  • MathPortion speichert mathematischen Inhalt im Textrahmen des Shapes.
  • MathParagraph enthält ein oder mehrere MathBlock‑Objekte.

Die meisten Beispiele unten verwenden MathematicalText sowie die Fluent‑Methoden von IMathElement, um den Code kurz und lesbar zu halten.

Für MathML‑Export‑Szenarien siehe Export von Mathematik‑Gleichungen aus Präsentationen in .NET.

Eine Gleichung erstellen

Dieses Beispiel erstellt ein mathematisches Shape und fügt den Satz des Pythagoras hinzu:

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

Brüche hinzufügen

Verwenden Sie Divide, um einen Bruch zu erstellen. Sie können einen Bruchstil mit MathFractionTypes auswählen.

Ein schräger mathematischer Bruch, der 1 durch x darstellt

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

Für einen gestapelten Bruch verwenden Sie MathFractionTypes.Bar:

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

Radikale hinzufügen

Verwenden Sie Radical, um eine Quadratwurzel, Kubikwurzel oder andere Wurzel zu erzeugen. Das aktuelle Element wird zur Basis und das Argument wird zum Grad.

Ein n‑te Wurzel‑Ausdruck mit x unter dem Wurzelzeichen

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

Funktionen und Grenzwerte hinzufügen

Verwenden Sie AsArgumentOfFunction oder Function für Funktionen wie sin(x), log(x) oder benutzerdefinierte Funktionsnamen. Für Grenzwerte setzen Sie lim in ein MathLimit oder verwenden Sie SetLowerLimit.

Der Grenzwert von x, wenn x gegen Unendlich geht

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

Für einen benutzerdefinierten Funktionsnamen machen Sie den Funktionsnamen zum aktuellen Element:

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

N‑äre Operatoren und Integrale hinzufügen

Verwenden Sie Nary für Summen, Vereinigungen, Schnitte und andere große Operatoren. Verwenden Sie Integral für Integrale. Beide Methoden ermöglichen das Festlegen von unteren und oberen Grenzen.

Eine Summation mit unteren und oberen Grenzen

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‑äre Operatoren dienen großen Operatoren mit optionalen Grenzen. Einfache Operatoren wie +, - und = werden normalerweise als MathematicalText hinzugefügt und in den Ausdruck eingefügt.

Für ein Integral verwenden Sie Integral:

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

Matrizen hinzufügen

Verwenden Sie MathMatrix , um Zeilen und Spalten zu definieren. Matrizen enthalten standardmäßig keine Klammern, daher müssen Sie die Matrix einschließen, wenn Sie Klammern, eckige Klammern oder geschweifte Klammern benötigen.

Eine zweizeilige mathematische Matrix mit einer leeren Zelle

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

Gleichungsarrays hinzufügen

Verwenden Sie ToMathArray, wenn Sie ausgerichtete Gleichungen oder einen vertikalen Stapel von Ausdrücken benötigen.

Ein vertikales mathematisches Array mit x über 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 Funktionen hinzufügen

Verwenden Sie AsArgumentOfFunction, wenn das Argument das aktuelle Element ist und der Funktionsname bekannt ist.

Die trigonometrische Funktion cos angewendet auf 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);

Indizes und Hochstellungen hinzufügen

Verwenden Sie die Hilfsfunktionen für Tief- und Hochstellungen für Indizes und Potenzen. Wenn die Indizes links von der Basis erscheinen sollen, verwenden Sie SetSubSuperscriptOnTheLeft.

Ein großes Y mit linkem Tiefstellen 1 und Hochstellen 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);

Begrenzungszeichen hinzufügen

Verwenden Sie Enclose, um einen Ausdruck in Begrenzungszeichen zu setzen. Sie können auch ein Trennzeichen für Begrenzungs‑Ausdrücke festlegen, die mehrere Elemente enthalten.

Ein Begrenzungs‑Ausdruck mit x, y und z, getrennt durch senkrechte Striche

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

Ein Rahmenfeld hinzufügen

Verwenden Sie ToBorderBox, wenn die Gleichung selbst eingerahmt werden soll.

Eine eingefasste Gleichung, die a² = b² + c² zeigt

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

Terme gruppieren

Verwenden Sie Group, um ein Gruppierungszeichen über oder unter einem Ausdruck zu platzieren. Fügen Sie ein Limit hinzu, um die gruppierten Terme zu beschriften.

Der Ausdruck x + y, gruppiert mit dem Etikett irgendein Text darunter

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

Mathematik‑Elemente formatieren

Verwenden Sie Formatierungs‑Hilfsfunktionen nur dort, wo sie die Formel verdeutlichen. Zum Beispiel legt Overbar einen Balken über ein Mathematik‑Element.

Ein mathematischer Ausdruck ABC mit einem Überstrich

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

Kurzreferenz

Aufgabe Haupt‑API
Mathematischen Text erstellen MathematicalText
Elemente kombinieren IMathElement.Join
Brüche erstellen IMathElement.Divide
Hoch‑ oder Tiefstellung hinzufügen SetSuperscript, SetSubscript
Funktionen hinzufügen Function, AsArgumentOfFunction
Radikale hinzufügen IMathElement.Radical
Grenzwerte hinzufügen SetLowerLimit, SetUpperLimit
Linksseitige Skripte hinzufügen SetSubSuperscriptOnTheLeft
Summen und Integrale hinzufügen Nary, Integral
Matrizen hinzufügen MathMatrix
Gleichungsarrays hinzufügen ToMathArray
Begrenzungszeichen hinzufügen Enclose
Balken und Rahmen hinzufügen Overbar, ToBorderBox
Terme gruppieren Group

FAQ

Kann ich eine vorhandene PowerPoint‑Gleichung bearbeiten?

Ja. Öffnen Sie die Präsentation, finden Sie das Shape, das ein MathPortion enthält, holen Sie dessen MathParagraph und aktualisieren Sie die Mathematik‑Blöcke in diesem Absatz.

Werden Gleichungen als editierbare PowerPoint‑Mathematik gespeichert?

Ja. Beim Speichern als PPTX schreibt Aspose.Slides die Gleichung als editierbaren Office‑Mathematik‑Inhalt.

Kann ich Gleichungen nach LaTeX exportieren?

Ja. Holen Sie das IMathParagraph der Gleichung aus ihrem MathPortion, und rufen Sie IMathParagraph.ToLatex auf, um es direkt zu exportieren. Ein vollständiges Beispiel finden Sie unter Export von Mathematik‑Gleichungen aus Präsentationen in .NET.