Mathematische Gleichungen zu PowerPoint-Präsentationen unter Android hinzufügen

Übersicht

In PowerPoint ist es möglich, eine mathematische Gleichung oder Formel zu schreiben und in der Präsentation anzuzeigen. Dazu werden in PowerPoint verschiedene mathematische Symbole dargestellt, die zum Text oder zur Gleichung hinzugefügt werden können. Dafür wird der mathematische Gleichungskonstruktor in PowerPoint verwendet, der das Erstellen komplexer Formeln wie folgt unterstützt:

  • Mathematischer Bruch
  • Mathematisches Radikal
  • Mathematische Funktion
  • Grenzen und Logarithmusfunktionen
  • N-äre Operationen
  • Matrix
  • Große Operatoren
  • Sin‑, Cos‑Funktionen

Um eine mathematische Gleichung in PowerPoint hinzuzufügen, wird das Menü Einfügen → Gleichung verwendet:

todo:image_alt_text

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

todo:image_alt_text

PowerPoint unterstützt zahlreiche mathematische Symbole zum Erstellen von Gleichungen. Das Erstellen komplizierter mathematischer Gleichungen in PowerPoint führt jedoch oft nicht zu einem professionellen Ergebnis. Benutzer, die häufig mathematische Präsentationen erstellen müssen, greifen daher auf Drittanbieter‑Lösungen zurück, um ansprechend aussehende Formeln zu erzeugen.

Mit Aspose.Slide API können Sie programmgesteuert in C# mit mathematischen Gleichungen in PowerPoint‑Präsentationen arbeiten. Erstellen Sie neue mathematische Ausdrücke oder bearbeiten Sie zuvor erstellte. Der Export mathematischer Strukturen in Bilder wird ebenfalls teilweise unterstützt.

So erstellen Sie eine mathematische Gleichung

Mathematische Elemente werden zum Aufbau beliebiger mathematischer Konstruktionen mit beliebiger Verschachtelungstiefe verwendet. Eine lineare Sammlung mathematischer Elemente bildet einen mathematischen Block, der durch die Klasse MathBlock repräsentiert wird. Die Klasse MathBlock stellt im Wesentlichen einen abgegrenzten mathematischen Ausdruck, eine Formel oder Gleichung dar. 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 der Schlüssel zur Arbeit mit PowerPoint‑Mathegleichungen über die Aspose.Slides‑API.

Sehen wir uns an, wie wir die folgende mathematische Gleichung über die Aspose.Slides‑API erzeugen können:

todo:image_alt_text

Um einen mathematischen Ausdruck auf der Folie hinzuzufügen, fügen Sie zunächst eine Form hinzu, die den mathematischen Text enthalten soll:

Presentation pres = new Presentation();
try {
    IAutoShape mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
} finally {
    if (pres != null) pres.dispose();
}

Nach dem Erzeugen enthält die Form standardmäßig einen Absatz mit einem mathematischen Abschnitt. Die Klasse MathPortion ist ein Abschnitt, der mathematischen Text enthält. Um auf den mathematischen Inhalt innerhalb von MathPortion zuzugreifen, verwenden Sie die Variable MathParagraph:

IMathParagraph mathParagraph = ((MathPortion)mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0)).getMathParagraph();

Die Klasse MathParagraph ermöglicht das Lesen, Hinzufügen, Bearbeiten und Löschen von MathBlocks (MathBlock), die aus einer Kombination mathematischer Elemente bestehen. Beispiel: Erzeugen Sie einen Bruch und fügen Sie ihn in die Präsentation ein:

IMathFraction fraction = new MathematicalText("x").divide("y");

mathParagraph.add(new MathBlock(fraction));

Jedes mathematische Element wird durch eine Klasse repräsentiert, die das Interface IMathElement implementiert. Dieses Interface bietet viele Methoden zum einfachen Erstellen mathematischer Ausdrücke. Sie können einen ziemlich komplexen mathematischen Ausdruck mit einer einzigen Code‑Zeile erzeugen. Beispiel: Der Satz des Pythagoras sieht so aus:

IMathBlock mathBlock = new MathematicalText("c")
        .setSuperscript("2")
        .join("=")
        .join(new MathematicalText("a").setSuperscript("2"))
        .join("+")
        .join(new MathematicalText("b").setSuperscript("2"));

Operationen des Interfaces IMathElement werden in jedem Elementtyp implementiert, einschließlich des MathBlock.

Der vollständige Quellcode‑Beispiel:

Presentation pres = new Presentation();
try {
    IAutoShape mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);

    IMathParagraph mathParagraph = ((MathPortion)mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0)).getMathParagraph();
    
    IMathFraction fraction = new MathematicalText("x").divide("y");

    mathParagraph.add(new MathBlock(fraction));

    IMathBlock 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);
} finally {
    if (pres != null) pres.dispose();
}

Mathematische Elementtypen

Mathematische Ausdrücke werden aus Sequenzen mathematischer Elemente gebildet. Die Sequenz wird durch einen mathematischen Block repräsentiert, 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 sind Container für andere Elemente und bilden eine baumartige Struktur. Der einfachste Typ ist ein Element, das keine anderen Elemente des mathematischen Textes enthält.

Jeder Typ eines mathematischen Elements implementiert das Interface IMathElement und ermöglicht die einheitliche Verwendung mathematischer Operationen.

MathematicalText‑Klasse

Die Klasse MathematicalText repräsentiert einen mathematischen Text – das Grundelement aller mathematischen Konstruktionen. Mathematischer Text kann Operanden, Operatoren, Variablen und beliebigen linearen Text darstellen.

Beispiel: 𝑎=𝑏+𝑐

MathFraction‑Klasse

Die Klasse MathFraction spezifiziert ein Bruchobjekt, das aus Zähler und Nenner besteht, getrennt durch einen Bruchstrich. Der Strich kann horizontal oder diagonal sein, abhängig von den Eigenschaften des Bruchs. Das Objekt wird auch verwendet, um das Stapelfunktionselement zu repräsentieren, bei dem ein Element über einem anderen steht, ohne Bruchstrich.

Beispiel:

todo:image_alt_text

MathRadical‑Klasse

Die Klasse MathRadical spezifiziert die Wurzelfunktion (mathematischer Radikal), bestehend aus einer Basis und einem optionalen Grad.

Beispiel:

todo:image_alt_text

MathFunction‑Klasse

Die Klasse MathFunction spezifiziert eine Funktion eines Arguments. Sie enthält die Eigenschaften: getName – Funktionsname und getBase – Funktionsargument.

Beispiel:

todo:image_alt_text

MathNaryOperator‑Klasse

Die Klasse MathNaryOperator spezifiziert ein N‑äres mathematisches Objekt, wie Summation oder Integral. Sie besteht aus einem Operator, einer Basis (oder Operand) und optionalen oberen und unteren Grenzen. Beispiele für N‑äre Operatoren sind Summation, Vereinigung, Schnittmenge, Integral.

Diese Klasse schließt einfache Operatoren wie Addition oder Subtraktion nicht ein; diese werden durch ein einzelnes Textelement – MathematicalText – dargestellt.

Beispiel:

todo:image_alt_text

MathLimit‑Klasse

Die Klasse MathLimit erzeugt eine obere oder untere Grenze. Sie spezifiziert das Grenzobjekt, das Text auf der Grundlinie und verkleinerten Text unmittelbar darüber oder darunter enthält. Dieses Element beinhaltet nicht das Wort „lim“, erlaubt jedoch das Platzieren von Text oben oder unten im Ausdruck. Der Ausdruck

todo:image_alt_text

wird mit einer Kombination aus MathFunction und MathLimit wie folgt erzeugt:

MathLimit funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑥→∞"));

MathFunction mathFunc = new MathFunction(funcName, new MathematicalText("𝑥"));

MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement‑Klassen

Die genannten Klassen spezifizieren einen Tief- oder Hochindex. Sie können Tief‑ und Hochindex gleichzeitig auf der linken oder rechten Seite eines Arguments setzen; ein einzelner Tief‑ oder Hochindex wird jedoch nur auf der rechten Seite unterstützt. Der MathSubscriptElement kann zudem verwendet werden, um den mathematischen Grad einer Zahl zu setzen.

Beispiel:

todo:image_alt_text

MathMatrix‑Klasse

Die Klasse MathMatrix spezifiziert ein Matrixobjekt, das aus Kind‑Elementen besteht, die in einer oder mehreren Zeilen und Spalten angeordnet sind. Hinweis: Matrizen besitzen keine eingebauten Begrenzungszeichen. Um die Matrix in Klammern zu setzen, verwenden Sie das Begrenzungsobjekt – IMathDelimiter. Null‑Argumente können verwendet werden, um Lücken in Matrizen zu erzeugen.

Beispiel:

todo:image_alt_text

MathArray‑Klasse

Die Klasse MathArray spezifiziert ein vertikales Array von Gleichungen oder anderen mathematischen Objekten.

Beispiel:

todo:image_alt_text

Formatierung mathematischer Elemente

  • MathBorderBox‑Klasse: zeichnet einen rechteckigen oder anderen Rand um das IMathElement.

    Beispiel: todo:image_alt_text

  • MathBox‑Klasse: spezifiziert die logische Box‑Umhüllung des mathematischen Elements. Beispielsweise kann ein in einer Box gekapseltes Objekt als Operator‑Emulator mit oder ohne Ausrichtungspunkt dienen, als Zeilenumbruch‑Hilfsmittel oder gruppiert werden, sodass innerhalb kein Zeilenumbruch zulässig ist. Der Operator „==“ sollte beispielsweise in eine Box gepackt werden, um Zeilenumbrüche zu verhindern.

  • MathDelimiter‑Klasse: spezifiziert das Begrenzungsobjekt, bestehend aus öffnenden und schließenden Zeichen (wie Klammern, geschweiften Klammern, eckigen Klammern oder senkrechten Strichen) und einem oder mehreren mathematischen Elementen, die durch ein angegebenes Zeichen getrennt sind. Beispiele: (𝑥²); [𝑥²|𝑦²].

    Beispiel: todo:image_alt_text

  • MathAccent‑Klasse: spezifiziert die Akzentfunktion, bestehend aus einer Basis und einem kombinierenden diakritischen Zeichen.

    Beispiel: 𝑎́.

  • MathBar‑Klasse: spezifiziert die Balkenfunktion, bestehend aus einem Basis‑Argument und einem Über‑ oder Unterbalken.

    Beispiel: todo:image_alt_text

  • MathGroupingCharacter‑Klasse: spezifiziert ein Gruppierungszeichen über oder unter einem Ausdruck, üblicherweise um Beziehungen zwischen Elementen zu verdeutlichen.

    Beispiel: todo:image_alt_text

Mathematische Operationen

Jedes mathematische Element und jeder mathematische Ausdruck (via MathBlock) implementiert das Interface IMathElement. Es erlaubt, Operationen auf bestehende Strukturen anzuwenden und komplexere mathematische Ausdrücke zu bilden. Alle Operationen besitzen zwei Parameter‑Sätze: entweder ein IMathElement oder einen String als Argument. Instanzen der Klasse MathematicalText werden implizit aus den angegebenen Strings erzeugt, wenn String‑Argumente verwendet werden. Die in Aspose.Slides verfügbaren mathematischen Operationen sind unten aufgeführt.

Join‑Methode

Verbindet ein mathematisches Element und bildet einen mathematischen Block. Beispiel:

IMathElement element1 = new MathematicalText("x");

IMathElement element2 = new MathematicalText("y");

IMathBlock block = element1.join(element2);

Divide‑Methode

Erstellt einen Bruch des angegebenen Typs mit diesem Zähler und dem angegebenen Nenner. Beispiel:

IMathElement numerator = new MathematicalText("x");

IMathFraction fraction = numerator.divide("y", MathFractionTypes.Linear);

Enclose‑Methode

Umschließt das Element in angegebenen Zeichen, z. B. Klammern oder anderen Rahmenzeichen.

/**
 * <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:

IMathDelimiter delimiter = new MathematicalText("x").enclose('[', ']');

IMathDelimiter delimiter2 = new MathematicalText("elem1").join("elem2").enclose();

Function‑Methode

Erzeugt 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:

IMathFunction func = new MathematicalText("sin").function("x");

AsArgumentOfFunction‑Methode

Verwendet die aktuelle Instanz als Argument einer Funktion. Sie können:

Beispiel:

MathLimit funcName = new MathLimit(new MathematicalText("lim"), new MathematicalText("𝑛→∞"));

IMathFunction func1 = new MathematicalText("2x").asArgumentOfFunction(funcName);

IMathFunction func2 = new MathematicalText("x").asArgumentOfFunction("sin");

IMathFunction func3 = new MathematicalText("x").asArgumentOfFunction(MathFunctionsOfOneArgument.Sin);

IMathFunction func4 = new MathematicalText("x").asArgumentOfFunction(MathFunctionsOfTwoArguments.Log, "3");

SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft‑Methoden

Setzt Tief‑ bzw. Hochindex. Sie können Tief‑ und Hochindex gleichzeitig auf der linken oder rechten Seite des Arguments setzen; ein einzelner Tief‑ oder Hochindex wird jedoch nur auf der rechten Seite unterstützt. Der Superscript kann zudem verwendet werden, um den mathematischen Grad einer Zahl zu setzen.

Beispiel:

IMathLeftSubSuperscriptElement script = new MathematicalText("y").setSubSuperscriptOnTheLeft("2x", "3z");

Radical‑Methode

Gibt die mathematische Wurzel des angegebenen Grades des Arguments an.

Beispiel:

IMathRadical radical = new MathematicalText("x").radical("3");

SetUpperLimit‑ und SetLowerLimit‑Methoden

Definiert eine obere oder untere Grenze. Dabei geben die Begriffe „oben“ bzw. „unten“ lediglich die Position des Arguments relativ zur Basis an.

Betrachten wir den Ausdruck:

todo:image_alt_text

Solche Ausdrücke können durch eine Kombination der Klassen MathFunction und MathLimit sowie der Operationen des IMathElement wie folgt erstellt werden:

IMathFunction mathExpression = new MathematicalText("lim").setLowerLimit("x→∞").function("x");

Nary‑ und Integral‑Methoden

Sowohl nary‑ als auch integral‑Methoden erzeugen und geben den N‑ärigen Operator zurück, der durch den Typ IMathNaryOperator repräsentiert wird. In der nary‑Methode gibt die Aufzählung MathNaryOperatorTypes den Operator‑Typ an (Summation, Union usw.), jedoch nicht Integrale. In der Integral‑Methode wird das spezialisierte Integral‑Objekt mit der Aufzählung MathIntegralTypes verwendet.

Beispiel:

IMathBlock baseArg = new MathematicalText("x").join(new MathematicalText("dx").toBox());

IMathNaryOperator integral = baseArg.integral(MathIntegralTypes.Simple, "0", "1");

ToMathArray‑Methode

toMathArray legt Elemente in ein vertikales Array. Wenn diese Operation für eine Instanz von MathBlock aufgerufen wird, werden alle Kind‑Elemente in das zurückgegebene Array platziert.

Beispiel:

IMathArray arrayFunction = new MathematicalText("x").join("y").toMathArray();

Formatierungsoperationen: Accent, Overbar, Underbar, Group, ToBorderBox, ToBox

  • accent‑Methode setzt ein Akzentzeichen (ein Zeichen oberhalb des Elements).
  • overbar‑ und underbar‑Methoden setzen einen Balken ober- bzw. unterhalb des Elements.
  • group‑Methode gruppiert mithilfe eines Gruppierungszeichens, z. B. einer unteren geschweiften Klammer.
  • toBorderBox‑Methode legt das Element in eine Rand‑Box.
  • toBox‑Methode legt das Element in eine nicht‑sichtbare Box (logische Gruppierung).

Beispiele:

IMathAccent accent = new MathematicalText("x").accent('\u0303');

IMathBar bar = new MathematicalText("x").overbar();

IMathGroupingCharacter groupChr = new MathematicalText("x").join("y").join("z").group('\u23E1', MathTopBotPositions.Bottom, MathTopBotPositions.Top);

IMathBorderBox borderBox = new MathematicalText("x+y+z").toBorderBox();

IMathBox boxedOperator = new MathematicalText(":=").toBox();

FAQ

Wie kann ich einer PowerPoint‑Folie eine mathematische Gleichung hinzufügen?

Um eine mathematische Gleichung hinzuzufügen, erstellen Sie ein Math‑Shape‑Objekt, das automatisch einen mathematischen Abschnitt enthält. Anschließend rufen Sie das MathParagraph aus dem MathPortion ab und fügen ihm 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 Verschachtelung von MathBlocks. Jedes mathematische Element implementiert das Interface IMathElement, das das Anwenden von Operationen (Join, Divide, Enclose usw.) zur Kombination von Elementen zu komplexeren Strukturen erlaubt.

Wie kann ich eine vorhandene mathematische Gleichung aktualisieren oder ändern?

Um eine Gleichung zu ändern, greifen Sie über das MathParagraph auf die bestehenden MathBlocks zu. Durch Methoden wie Join, Divide, Enclose usw. können Sie einzelne Elemente der Gleichung modifizieren. Nach der Bearbeitung speichern Sie die Präsentation, um die Änderungen zu übernehmen.