PowerPoint-Mathematische Gleichungen
Übersicht
In PowerPoint ist es möglich, eine mathematische Gleichung oder Formel zu schreiben und in der Präsentation anzuzeigen. Dazu werden verschiedene mathematische Symbole in PowerPoint dargestellt und können dem Text oder der Gleichung hinzugefügt werden. Dafür wird der mathematische Gleichungskonstruktor in PowerPoint verwendet, der das Erstellen komplexer Formeln ermöglicht, wie zum Beispiel:
- Mathematischer Bruch
- Mathematisches Radikal
- Mathematische Funktion
- Grenzen und Logarithmus‑Funktionen
- N‑stellige Operationen
- Matrix
- Große Operatoren
- Sin‑, cos‑Funktionen
Um in PowerPoint eine mathematische Gleichung hinzuzufügen, wird das Einfügen -> Gleichung-Menü verwendet:

Damit wird ein mathematischer Text in XML erzeugt, der in PowerPoint wie folgt dargestellt wird:

PowerPoint unterstützt zahlreiche mathematische Symbole zum Erstellen von Gleichungen. Das Erstellen komplizierter Gleichungen in PowerPoint führt jedoch häufig nicht zu einem guten und professionellen Ergebnis. Benutzer, die häufig mathematische Präsentationen erstellen müssen, greifen zu Drittanbieter‑Lösungen, um ansprechend aussehende Formeln zu erzeugen.
Mit Aspose.Slide API können Sie programmgesteuert mit mathematischen Gleichungen in PowerPoint‑Präsentationen in C# arbeiten. Erstellen Sie neue mathematische Ausdrücke oder bearbeiten Sie bereits vorhandene. Der Export mathematischer Strukturen in Bilder wird ebenfalls teilweise unterstützt.
Wie man eine mathematische Gleichung erstellt
Mathematische Elemente werden zum Aufbau beliebiger mathematischer Konstruktionen mit beliebiger Verschachtelungstiefe verwendet. Eine lineare Sammlung mathematischer Elemente bildet einen mathematischen Block, der durch die MathBlock‑Klasse repräsentiert wird. MathBlock ist im Wesentlichen ein abgegrenzter mathematischer Ausdruck, eine Formel oder eine Gleichung. MathPortion ist ein mathematischer Abschnitt, der mathematischen Text hält (nicht zu verwechseln mit Portion). MathParagraph ermöglicht die Manipulation einer Menge von MathBlocks. Die genannten Klassen sind zentral für die Arbeit mit PowerPoint‑Mathe‑Gleichungen über die Aspose.Slides‑API.
Nachfolgend ein Beispiel, wie die folgende mathematische Gleichung über die Aspose.Slides‑API erstellt wird:

Um einen mathematischen Ausdruck auf einer Folie hinzuzufügen, fügen Sie zunächst eine Form hinzu, die den mathematischen Text enthalten wird:
var pres = new aspose.slides.Presentation();
try {
var mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
} finally {
if (pres != null) {
pres.dispose();
}
}
Nach dem Erstellen enthält die Form bereits standardmäßig einen Absatz mit einer mathematischen Portion. Die MathPortion‑Klasse ist ein Abschnitt, der mathematischen Text enthält. Um auf den mathematischen Inhalt in MathPortion zuzugreifen, verwenden Sie die MathParagraph‑Variable:
var mathParagraph = mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getMathParagraph();
Die MathParagraph‑Klasse ermöglicht das Lesen, Hinzufügen, Bearbeiten und Löschen von MathBlocks (MathBlock), die aus einer Kombination mathematischer Elemente bestehen. Beispiel: Einen Bruch erstellen und in die Präsentation einfügen:
var fraction = new aspose.slides.MathematicalText("x").divide("y");
mathParagraph.add(new aspose.slides.MathBlock(fraction));
Jedes mathematische Element wird durch eine Klasse repräsentiert, die die MathElement‑Klasse implementiert. Diese Klasse bietet zahlreiche Methoden zum einfachen Erzeugen mathematischer Ausdrücke. Ein relativ komplexer Ausdruck lässt sich in einer einzigen Code‑Zeile erzeugen. Beispiel: Der Satz des Pythagoras:
var mathBlock = new aspose.slides.MathematicalText("c").setSuperscript("2").join("=").join(new aspose.slides.MathematicalText("a").setSuperscript("2")).join("+").join(new aspose.slides.MathematicalText("b").setSuperscript("2"));
Operationen der Klasse MathElement sind in allen Elementtypen, einschließlich MathBlock, implementiert.
Der vollständige Quellcode‑Beispiel:
var pres = new aspose.slides.Presentation();
try {
var mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
var mathParagraph = mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getMathParagraph();
var fraction = new aspose.slides.MathematicalText("x").divide("y");
mathParagraph.add(new aspose.slides.MathBlock(fraction));
var mathBlock = new aspose.slides.MathematicalText("c").setSuperscript("2").join("=").join(new aspose.slides.MathematicalText("a").setSuperscript("2")).join("+").join(new aspose.slides.MathematicalText("b").setSuperscript("2"));
mathParagraph.add(mathBlock);
pres.save("math.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Mathematische Elementtypen
Mathematische Ausdrücke werden aus Sequenzen mathematischer Elemente gebildet. Die Sequenz wird durch einen mathematischen Block dargestellt, und die Argumente der Elemente bilden eine baumartige Verschachtelung.
Es gibt zahlreiche mathematische Elementtypen, die zum Aufbau eines mathematischen Blocks verwendet werden können. Jeder dieser Typen kann in einem anderen Element aggregiert werden. Das heißt, Elemente fungieren als Container für andere und bilden so eine Baumstruktur. Der einfachste Typ enthält keine weiteren Elemente des mathematischen Textes.
Jeder Typ implementiert die MathElement‑Klasse, sodass ein gemeinsamer Satz von mathematischen Operationen auf unterschiedliche Elementtypen angewendet werden kann.
MathematicalText‑Klasse
Die MathematicalText‑Klasse repräsentiert einen mathematischen Text – das Grundelement aller mathematischen Konstruktionen. Der Text kann Operanden, Operatoren, Variablen und beliebigen linearen Text enthalten.
Beispiel: 𝑎=𝑏+𝑐
MathFraction‑Klasse
Die MathFraction‑Klasse definiert das Bruch‑Objekt, bestehend aus Zähler und Nenner, getrennt durch einen Bruchstrich. Der Bruchstrich kann horizontal oder diagonal sein, je nach Eigenschaften. Das Objekt wird auch für die Stack‑Funktion verwendet, bei der ein Element über einem anderen ohne Bruchstrich liegt.
Beispiel:

MathRadical‑Klasse
Die MathRadical‑Klasse definiert die Radikal‑Funktion (Wurzel), bestehend aus einer Basis und optional einem Grad.
Beispiel:

MathFunction‑Klasse
Die MathFunction‑Klasse definiert eine Funktions‑Komponente eines Arguments. Sie enthält die Eigenschaften: getName – Funktionsname und getBase – Funktionsargument.
Beispiel:

MathNaryOperator‑Klasse
Die MathNaryOperator‑Klasse definiert ein N‑stelliges mathematisches Objekt, wie Summation oder Integral. Sie besteht aus einem Operator, einer Basis (oder Operanden) sowie optionalen oberen und unteren Grenzen. Beispiele für N‑stielle Operatoren sind Summation, Vereinigung, Schnittmenge, Integral.
Einfachere Operatoren wie Addition oder Subtraktion werden nicht über diese Klasse, sondern durch ein einzelnes Text‑Element – MathematicalText – definiert.
Beispiel:

MathLimit‑Klasse
Die MathLimit‑Klasse erzeugt eine obere oder untere Grenze. Sie definiert ein Limit‑Objekt, das Text auf der Grundlinie und verkleinerten Text darüber bzw. darunter enthält. Das Element enthält nicht das Wort „lim“, ermöglicht jedoch das Platzieren von Text über oder unter dem Ausdruck. So wird der Ausdruck

durch die Kombination von MathFunction‑ und MathLimit‑Elementen wie folgt erzeugt:
var funcName = new aspose.slides.MathLimit(new aspose.slides.MathematicalText("lim"), new aspose.slides.MathematicalText("𝑥→∞"));
var mathFunc = new aspose.slides.MathFunction(funcName, new aspose.slides.MathematicalText("𝑥"));
MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement‑Klassen
- MathSubscriptElement
- MathSuperscriptElement
- MathRightSubSuperscriptElement
- MathLeftSubSuperscriptElement
Die genannten Klassen definieren einen tiefen bzw. hohen Index. Sie können gleichzeitig Sub‑ und Superskript links‑ oder rechtsseitig eines Arguments setzen; ein einzelnes Sub‑ oder Superskript wird nur rechts unterstützt. Der MathSubscriptElement kann zudem den mathematischen Grad einer Zahl setzen.
Beispiel:

MathMatrix‑Klasse
Die MathMatrix‑Klasse definiert ein Matrix‑Objekt, das Kind‑Elemente in einer oder mehreren Zeilen und Spalten anordnet. Wichtig: Matrizen enthalten keine integrierten Begrenzungszeichen. Um die Matrix in Klammern zu setzen, verwenden Sie das Begrenzungs‑Objekt – MathDelimiter. Null‑Argumente erzeugen Lücken in Matrizen.
Beispiel:

MathArray‑Klasse
Die MathArray‑Klasse definiert ein vertikales Array von Gleichungen oder anderen mathematischen Objekten.
Beispiel:

Formatierung mathematischer Elemente
-
MathBorderBox‑Klasse: zeichnet einen rechteckigen oder anderen Rahmen um das MathElement.
Beispiel:

-
MathBox‑Klasse: definiert die logische Box‑Umhüllung eines mathematischen Elements. Beispielsweise kann ein umschlossenes Objekt als Operator‑Emulator mit oder ohne Ausrichtungspunkt dienen, als Zeilen‑Umbruch‑Marker oder gruppiert werden, um Zeilenumbrüche innerhalb zu verhindern. Der Operator „==“ sollte beispielsweise in eine Box gepackt werden, um Zeilenumbrüche zu vermeiden.
-
MathDelimiter‑Klasse: definiert das Begrenzungs‑Objekt, bestehend aus öffnenden und schließenden Zeichen (z. B. Klammern, geschweiften Klammern, eckigen Klammern oder senkrechten Strichen) und einem oder mehreren mathematischen Elementen, getrennt durch ein angegebenes Zeichen. Beispiele: (𝑥2); [𝑥2|𝑦2].
Beispiel:

-
MathAccent‑Klasse: definiert die Akzent‑Funktion, bestehend aus einer Basis und einem kombinierenden diakritischen Zeichen.
Beispiel: 𝑎́.
-
MathBar‑Klasse: definiert die Balken‑Funktion, bestehend aus einem Basis‑Argument und einem Über‑ oder Unterbalken.
Beispiel:

-
MathGroupingCharacter‑Klasse: definiert ein Gruppierungs‑Symbol über oder unter einem Ausdruck, üblicherweise zur Hervorhebung von Beziehungen zwischen Elementen.
Beispiel:

Mathematische Operationen
Jedes mathematische Element und jeder mathematische Ausdruck (via MathBlock) implementiert die MathElement‑Klasse. Sie ermöglicht Operationen auf der bestehenden Struktur und das Bilden komplexerer Ausdrücke. Alle Operationen haben zwei Parameter‑Sätze: entweder ein MathElement oder einen String. Instanzen der MathematicalText‑Klasse werden implizit aus den angegebenen Strings erzeugt, wenn String‑Parameter verwendet werden. Die in Aspose.Slides verfügbaren mathematischen Operationen werden nachfolgend aufgelistet.
Join‑Methode
Verbindet ein mathematisches Element und bildet einen mathematischen Block. Beispiel:
var element1 = new aspose.slides.MathematicalText("x");
var element2 = new aspose.slides.MathematicalText("y");
var block = element1.join(element2);
Divide‑Methode
- divide(String)
- divide(IMathElement)
- divide(String, MathFractionTypes)
- divide(IMathElement, MathFractionTypes)
Erstellt einen Bruch des angegebenen Typs mit diesem Zähler und dem angegebenen Nenner. Beispiel:
var numerator = new aspose.slides.MathematicalText("x");
var fraction = numerator.divide("y", aspose.slides.MathFractionTypes.Linear);
Enclose‑Methode
Umfasst das Element mit angegebenen Zeichen, z. B. Klammern oder einem anderen Rahmen.
/**
* <p>
* Enclose a math element in parenthesis
* </p>
*/
public IMathDelimiter enclose();
/**
* <p>
* Encloses this element in specified characters such as parenthesis or another characters as framing
* </p>
*/
public IMathDelimiter enclose(char beginningCharacter, char endingCharacter);
Beispiel:
var delimiter = new aspose.slides.MathematicalText("x").enclose('[', ']');
var delimiter2 = new aspose.slides.MathematicalText("elem1").join("elem2").enclose();
Function‑Methode
Nimmt eine Funktion eines Arguments, wobei das aktuelle Objekt als Funktionsname verwendet wird.
/**
* <p>
* Takes a function of an argument using this instance as the function name
* </p>
*/
public IMathFunction function(IMathElement functionArgument);
/**
* <p>
* Takes a function of an argument using this instance as the function name
* </p>
*/
public IMathFunction function(String functionArgument);
Beispiel:
var func = new aspose.slides.MathematicalText("sin").function("x");
AsArgumentOfFunction‑Methode
- asArgumentOfFunction(String)
- asArgumentOfFunction(IMathElement)
- asArgumentOfFunction(MathFunctionsOfOneArgument)
- asArgumentOfFunction(MathFunctionsOfTwoArguments, IMathElement)
- asArgumentOfFunction(MathFunctionsOfTwoArguments, String)
Verwendet das aktuelle Instanz‑Objekt als Argument einer Funktion. Sie können:
- Einen String als Funktionsnamen angeben, z. B. „cos“.
- Einen vordefinierten Wert aus den Aufzählungen MathFunctionsOfOneArgument oder MathFunctionsOfTwoArguments wählen, z. B. MathFunctionsOfOneArgument.ArcSin.
- Eine Instanz von MathElement übergeben.
Beispiel:
var funcName = new aspose.slides.MathLimit(new aspose.slides.MathematicalText("lim"), new aspose.slides.MathematicalText("𝑛→∞"));
var func1 = new aspose.slides.MathematicalText("2x").asArgumentOfFunction(funcName);
var func2 = new aspose.slides.MathematicalText("x").asArgumentOfFunction("sin");
var func3 = new aspose.slides.MathematicalText("x").asArgumentOfFunction(aspose.slides.MathFunctionsOfOneArgument.Sin);
var func4 = new aspose.slides.MathematicalText("x").asArgumentOfFunction(aspose.slides.MathFunctionsOfTwoArguments.Log, "3");
SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft‑Methoden
- setSubscript(String)
- setSubscript(IMathElement)
- setSuperscript(String)
- setSuperscript(IMathElement)
- setSubSuperscriptOnTheRight(String, String)
- setSubSuperscriptOnTheRight(IMathElement, IMathElement)
- setSubSuperscriptOnTheLeft(String, String)
- setSubSuperscriptOnTheLeft(IMathElement, IMathElement)
Setzt Tief‑ bzw. Hochstellung. Sie können Tief‑ und Hochstellung gleichzeitig links‑ oder rechtsseitig eines Arguments setzen; ein einzelnes Tief‑ bzw. Hochstellung wird nur rechts unterstützt. Der Superscript kann zudem den mathematischen Grad einer Zahl darstellen.
Beispiel:
var script = new aspose.slides.MathematicalText("y").setSubSuperscriptOnTheLeft("2x", "3z");
Radical‑Methode
Definiert die mathematische Wurzel des angegebenen Grades aus dem übergebenen Argument.
Beispiel:
var radical = new aspose.slides.MathematicalText("x").radical("3");
SetUpperLimit‑ und SetLowerLimit‑Methoden
Setzt eine obere bzw. untere Grenze. Hier geben obere bzw. untere Grenzen lediglich die Position des Arguments relativ zur Basis an.
Betrachten wir den Ausdruck:

Solche Ausdrücke können durch die Kombination der Klassen MathFunction und MathLimit sowie der Operationen von MathElement erzeugt werden:
var mathExpression = new aspose.slides.MathematicalText("lim").setLowerLimit("x→∞").function("x");
Nary‑ und Integral‑Methoden
- 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)
Beide Methoden erzeugen und geben einen N‑stellig‑Operator zurück, der durch den Typ MathNaryOperator repräsentiert wird. Bei nary gibt die Aufzählung MathNaryOperatorTypes den Operator‑Typ an (Summation, Union usw., jedoch nicht Integral). Die integral‑Methode liefert das spezialisierte Integral‑Objekt mit den Aufzählungen MathIntegralTypes.
Beispiel:
var baseArg = new aspose.slides.MathematicalText("x").join(new aspose.slides.MathematicalText("dx").toBox());
var integral = baseArg.integral(aspose.slides.MathIntegralTypes.Simple, "0", "1");
ToMathArray‑Methode
toMathArray setzt Elemente in ein vertikales Array. Wird die Methode für ein MathBlock‑Objekt aufgerufen, werden alle Kind‑Elemente in das zurückgegebene Array eingefügt.
Beispiel:
var arrayFunction = new aspose.slides.MathematicalText("x").join("y").toMathArray();
Formatierungs‑Operationen: Accent, Overbar, Underbar, Group, ToBorderBox, ToBox
- accent Methode setzt ein Akzentzeichen (ein Zeichen über dem Element).
- overbar und underbar Methoden setzen einen Balken oben bzw. unten.
- group Methode gruppiert mithilfe eines Gruppierungszeichens, z. B. einer unteren geschweiften Klammer oder eines anderen Symbols.
- toBorderBox Methode legt das Element in einen Rand‑Box.
- toBox Methode legt das Element in eine nicht‑visuelle Box (logische Gruppierung).
Beispiele:
var accent = new aspose.slides.MathematicalText("x").accent('̃');
var bar = new aspose.slides.MathematicalText("x").overbar();
var groupChr = new aspose.slides.MathematicalText("x").join("y").join("z").group('⏡', aspose.slides.MathTopBotPositions.Bottom, aspose.slides.MathTopBotPositions.Top);
var borderBox = new aspose.slides.MathematicalText("x+y+z").toBorderBox();
var boxedOperator = new aspose.slides.MathematicalText(":=").toBox();
FAQ
Wie kann ich einer PowerPoint‑Folie eine mathematische Gleichung hinzufügen?
Um eine mathematische Gleichung hinzuzufügen, erstellen Sie ein MathShape‑Objekt, das automatisch eine mathematische Portion enthält. Anschließend rufen Sie das MathParagraph‑Objekt aus der MathPortion ab und fügen MathBlock‑Objekte hinzu.
Ist es möglich, komplex verschachtelte mathematische Ausdrücke zu erstellen?
Ja, Aspose.Slides ermöglicht das Erstellen komplexer mathematischer Ausdrücke durch Verschachteln von MathBlocks. Jedes mathematische Element implementiert die IMathElement‑Klasse, sodass Sie Operationen (Join, Divide, Enclose usw.) anwenden können, um komplexere Strukturen zu erzeugen.
Wie kann ich eine vorhandene mathematische Gleichung aktualisieren oder ändern?
Um eine Gleichung zu ändern, greifen Sie über das MathParagraph auf die vorhandenen MathBlocks zu. Durch Methoden wie Join, Divide, Enclose usw. können Sie einzelne Elemente der Gleichung bearbeiten. Nach der Bearbeitung speichern Sie die Präsentation, um die Änderungen zu übernehmen.