PowerPoint Mathematik Gleichungen

Übersicht

In PowerPoint ist es möglich, eine mathematische Gleichung oder Formel zu schreiben und sie 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 Konstruktor für mathematische Gleichungen in PowerPoint verwendet, der hilft, komplexe Formeln wie:

  • Mathematische Brüche
  • Mathematische Wurzeln
  • Mathematische Funktionen
  • Grenzwert- und Logarithmusfunktionen
  • N-ary-Operationen
  • Matrizen
  • Große Operatoren
  • Sinus-, Cosinusfunktionen

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

todo:image_alt_text

Dies erstellt einen mathematischen Text in XML, der in PowerPoint wie folgt angezeigt werden kann:

todo:image_alt_text

PowerPoint unterstützt viele mathematische Symbole zum Erstellen von Mathematikgleichungen. Es kann jedoch vorkommen, dass die Erstellung komplizierter Mathematikgleichungen in PowerPoint oft kein gutes und professionell aussehendes Ergebnis liefert. Benutzer, die häufig mathematische Präsentationen erstellen müssen, greifen auf die Verwendung von Drittanbieterlösungen zurück, um gut aussehende mathematische Formeln zu erstellen.

Mit der 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 zuvor erstellte. Der Export mathematischer Strukturen in Bilder wird ebenfalls teilweise unterstützt.

Wie man eine mathematische Gleichung erstellt

Mathematische Elemente werden verwendet, um beliebige mathematische Konstruktionen mit beliebigem Grad an Verschachtelung zu erstellen. Eine lineare Sammlung von mathematischen Elementen bildet einen mathematischen Block, der durch die MathBlock Klasse dargestellt wird. Die MathBlock Klasse ist im Wesentlichen ein separater mathematischer Ausdruck, eine Formel oder eine Gleichung. MathPortion ist ein mathematischer Anteil, der verwendet wird, um mathematischen Text zu halten (nicht zu verwechseln mit Portion). MathParagraph ermöglicht die Manipulation einer Menge von Mathematikblöcken. Die oben genannten Klassen sind der Schlüssel zur Arbeit mit PowerPoint Mathematikgleichungen über die Aspose.Slides API.

Lassen Sie uns sehen, wie wir die folgende mathematische Gleichung über die Aspose.Slides API erstellen können:

todo:image_alt_text

Um einen mathematischen Ausdruck auf der Folie hinzuzufügen, fügen Sie zuerst eine Form hinzu, die den mathematischen Text enthält:

auto pres = System::MakeObject<Presentation>();
auto mathShape = pres->get_Slides()->idx_get(0)->get_Shapes()->AddMathShape(0.0f, 0.0f, 720.0f, 150.0f);

Nach der Erstellung enthält die Form bereits standardmäßig einen Absatz mit einem mathematischen Anteil. Die MathPortion Klasse ist ein Anteil, der einen mathematischen Text enthält. Um auf den mathematischen Inhalt innerhalb der MathPortion zuzugreifen, beziehen Sie sich auf die MathParagraph Variable:

 auto mathParagraph = (System::AsCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)))->get_MathParagraph();

Die MathParagraph Klasse ermöglicht das Lesen, Hinzufügen, Bearbeiten und Löschen von Mathematikblöcken (MathBlock), die aus einer Kombination von mathematischen Elementen bestehen. Zum Beispiel, erstellen Sie einen Bruch und platzieren Sie ihn in der Präsentation:

auto fraction = System::MakeObject<MathematicalText>(u"x")->Divide(u"y");
mathParagraph->Add(System::MakeObject<MathBlock>(fraction));

Jedes mathematische Element wird durch eine bestimmte Klasse dargestellt, die das IMathElement Interface implementiert. Dieses Interface bietet viele Methoden, um mathematische Ausdrücke einfach zu erstellen. Sie können einen ziemlich komplexen mathematischen Ausdruck mit einer einzigen Codezeile erstellen. Zum Beispiel würde der Satz des Pythagoras so aussehen:

auto mathBlock = System::MakeObject<MathematicalText>(u"c")
  ->SetSuperscript(u"2")
  ->Join(u"=")
  ->Join(System::MakeObject<MathematicalText>(u"a")->SetSuperscript(u"2"))
  ->Join(u"+")
  ->Join(System::MakeObject<MathematicalText>(u"b")->SetSuperscript(u"2"));

Die Operationen des Interfaces IMathElement sind in jedem Typ von Element implementiert, einschließlich des MathBlock.

Der vollständige Quellcode-Ausschnitt:

auto pres = System::MakeObject<Presentation>();
auto mathShape = pres->get_Slides()->idx_get(0)->get_Shapes()->AddMathShape(0.0f, 0.0f, 720.0f, 150.0f);
auto mathParagraph = (System::AsCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)))->get_MathParagraph();

auto fraction = System::MakeObject<MathematicalText>(u"x")->Divide(u"y");
mathParagraph->Add(System::MakeObject<MathBlock>(fraction));

auto mathBlock = System::MakeObject<MathematicalText>(u"c")
  ->SetSuperscript(u"2")
  ->Join(u"=")
  ->Join(System::MakeObject<MathematicalText>(u"a")->SetSuperscript(u"2"))
  ->Join(u"+")->Join(System::MakeObject<MathematicalText>(u"b")->SetSuperscript(u"2"));
mathParagraph->Add(mathBlock);

pres->Save(u"math.pptx", SaveFormat::Pptx);

Arten mathematischer Elemente

Mathematische Ausdrücke werden aus Sequenzen mathematischer Elemente gebildet. Die Sequenz mathematischer Elemente wird durch einen mathematischen Block dargestellt, und die Argumente der mathematischen Elemente bilden eine baumartige Verschachtelung.

Es gibt viele mathematische Elementtypen, die verwendet werden können, um einen mathematischen Block zu konstruieren. Jedes dieser Elemente kann in ein anderes Element eingeschlossen (aggregiert) werden. Das heißt, Elemente sind tatsächlich Container für andere und bilden eine baumartige Struktur. Der einfachste Typ von Elementen enthält keine anderen Elemente des mathematischen Textes.

Jeder Typ von Mathematikelement implementiert das IMathElement Interface, das die Verwendung einer gemeinsamen Menge von Mathematikoperationen auf verschiedenen Typen von Mathematikelementen ermöglicht.

MathematicalText Klasse

Die MathematicalText Klasse stellt einen mathematischen Text dar – das zugrunde liegende Element aller mathematischen Konstruktionen. Mathematischer Text kann Operanden und Operatoren, Variablen und jeden anderen linearen Text darstellen.

Beispiel: 𝑎=𝑏+𝑐

MathFraction Klasse

Die MathFraction Klasse spezifiziert das Bruchobjekt, das aus einem Zähler und einem Nenner besteht, die durch eine Bruchlinie getrennt sind. Die Bruchlinie kann horizontal oder diagonal sein, abhängig von den Eigenschaften des Bruchs. Das Bruchobjekt wird auch verwendet, um die Stapelfunktion darzustellen, die ein Element über ein anderes legt, ohne eine Bruchlinie zu verwenden.

Beispiel:

todo:image_alt_text

MathRadical Klasse

Die MathRadical Klasse spezifiziert die radikale Funktion (mathematische Wurzel), die aus einer Basis und einem optionalen Grad besteht.

Beispiel:

todo:image_alt_text

MathFunction Klasse

Die MathFunction Klasse spezifiziert eine Funktion eines Arguments. Sie enthält Methoden: get_Name() - Funktionsname und get_Base() - Funktionsargument.

Beispiel:

todo:image_alt_text

MathNaryOperator Klasse

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

Diese Klasse umfasst keine einfachen Operatoren wie Addition, Subtraktion usw. Sie werden durch ein einzelnes Textelement - MathematicalText dargestellt.

Beispiel:

todo:image_alt_text

MathLimit Klasse

Die MathLimit Klasse erstellt die obere oder untere Grenze. Sie spezifiziert das Grenzwertobjekt, das aus Text auf der Baseline und reduziertem Text direkt darüber oder darunter besteht. Dieses Element enthält nicht das Wort “lim”, ermöglicht es jedoch, Text oben oder unten im Ausdruck zu platzieren. So wird der Ausdruck

todo:image_alt_text

durch eine Kombination der MathFunction und MathLimit Elemente auf folgende Weise erstellt:

auto funcName = System::MakeObject<MathLimit>(System::MakeObject<MathematicalText>(u"lim"), System::MakeObject<MathematicalText>(u"𝑥→∞"));
auto mathFunc = System::MakeObject<MathFunction>(funcName, System::MakeObject<MathematicalText>(u"𝑥"));

MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement Klassen

Die folgenden Klassen spezifizieren einen tieferen Index oder einen oberen Index. Sie können sowohl Subscript als auch Superscript gleichzeitig auf der linken oder rechten Seite eines Arguments setzen, jedoch wird einzelnes Subscript oder Superscript nur auf der rechten Seite unterstützt. Das MathSubscriptElement kann auch verwendet werden, um den mathematischen Grad einer Zahl festzulegen.

Beispiel:

todo:image_alt_text

MathMatrix Klasse

Die MathMatrix Klasse spezifiziert das Matrixobjekt, das aus untergeordneten Elementen besteht, die in einer oder mehreren Zeilen und Spalten angeordnet sind. Es ist wichtig zu beachten, dass Matrizen keine eingebauten Trennzeichen haben. Um die Matrix in Klammern zu setzen, sollten Sie das Trennzeichenobjekt - IMathDelimiter verwenden. Nullargumente können verwendet werden, um Lücken in Matrizen zu erstellen.

Beispiel:

todo:image_alt_text

MathArray Klasse

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

Beispiel:

todo:image_alt_text

Formatierung mathematischer Elemente

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

    Beispiel: todo:image_alt_text

  • Die MathBox Klasse: spezifiziert das logische Boxen (Verpacken) des mathematischen Elements. Beispielsweise kann ein gerahmtes Objekt als Operator-Emulator mit oder ohne Ausrichtungspunkt dienen, als Zeilenumbruch oder gruppiert werden, sodass Zeilenumbrüche innerhalb nicht zulässig sind. Zum Beispiel sollte der “==” Operator eingekastet werden, um Zeilenumbrüche zu verhindern.

  • Die MathDelimiter Klasse: spezifiziert das Trennzeichenobjekt, das aus öffnenden und schließenden Zeichen (wie Klammern, geschweifte Klammern, Klammern und senkrechten Linien) besteht und eines oder mehrere mathematische Elemente im Inneren, die durch ein bestimmtes Zeichen getrennt sind. Beispiele: (𝑥2); [𝑥2|𝑦2].

    Beispiel: todo:image_alt_text

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

    Beispiel: 𝑎́.

  • Die MathBar Klasse: spezifiziert die Balkenfunktion, die aus einem Basisargument und einem Überstrich oder Unterstrich besteht.

    Beispiel: todo:image_alt_text

  • Die MathGroupingCharacter Klasse: spezifiziert ein Gruppensymbol über oder unter einem Ausdruck, normalerweise um die Beziehungen zwischen den Elementen hervorzuheben.

    Beispiel: todo:image_alt_text

Mathematische Operationen

Jedes mathematische Element und mathematischer Ausdruck (über MathBlock) implementiert das IMathElement Interface. Es erlaubt Ihnen, Operationen auf der bestehenden Struktur zu verwenden und kompliziertere mathematische Ausdrücke zu bilden. Alle Operationen haben zwei Parametersätze: entweder IMathElement oder string als Argumente. Instanzen der MathematicalText Klasse werden implizit aus angegebenen Zeichenfolgen erstellt, wenn Zeichenfolgenargumente verwendet werden. Mathematikoperationen, die in Aspose.Slides verfügbar sind, sind unten aufgelistet.

Join Methode

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

auto element1 = System::MakeObject<MathematicalText>(u"x");
    
auto element2 = System::MakeObject<MathematicalText>(u"y");

auto block = element1->Join(element2);

Divide Methode

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

auto numerator = System::MakeObject<MathematicalText>(u"x");
auto fraction = numerator->Divide(u"y", MathFractionTypes::Linear);

Enclose Methode

Umschließt das Element in angegebenen Zeichen wie Klammern oder einem anderen Zeichen als Rahmen.

/// <summary>
/// Umschließt ein mathematisches Element in Klammern
/// </summary>
virtual System::SharedPtr<IMathDelimiter> Enclose() = 0;

/// <summary>
/// Umschließt dieses Element in angegebenen Zeichen wie Klammern oder anderen Zeichen als Rahmen
/// </summary>
virtual System::SharedPtr<IMathDelimiter> Enclose(char16_t beginningCharacter, char16_t endingCharacter) = 0;

Zum Beispiel:

auto delimiter = System::MakeObject<MathematicalText>(u"x")->Enclose(u'[', u']');
auto delimiter2 = System::ExplicitCast<IMathElement>(System::MakeObject<MathematicalText>(u"elem1")->Join(u"elem2"))->Enclose();

Function Methode

Nimmt eine Funktion eines Arguments unter Verwendung des aktuellen Objekts als Funktionsnamen.

/// <summary>
/// Nimmt eine Funktion eines Arguments unter Verwendung dieser Instanz als Funktionsnamen
/// </summary>
/// <param name="functionArgument">Ein Argument der Funktion</param>

virtual System::SharedPtr<IMathFunction> Function(System::SharedPtr<IMathElement> functionArgument) = 0;

virtual System::SharedPtr<IMathFunction> Function(System::String functionArgument) = 0;

Zum Beispiel:

auto func = System::MakeObject<MathematicalText>(u"sin")->Function(u"x");

AsArgumentOfFunction Methode

Nimmt die angegebene Funktion, wobei die aktuelle Instanz als Argument verwendet wird. Sie können:

Zum Beispiel:


auto funcName = System::MakeObject<MathLimit>(System::MakeObject<MathematicalText>(u"lim"), System::MakeObject<MathematicalText>(u"𝑛→∞"));
    
auto func1 = System::MakeObject<MathematicalText>(u"2x")->AsArgumentOfFunction(funcName);

auto func2 = System::MakeObject<MathematicalText>(u"x")->AsArgumentOfFunction(u"sin");

auto func3 = System::MakeObject<MathematicalText>(u"x")->AsArgumentOfFunction(MathFunctionsOfOneArgument::Sin);

auto func4 = System::MakeObject<MathematicalText>(u"x")->AsArgumentOfFunction(MathFunctionsOfTwoArguments::Log, u"3");

SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft Methoden

Setzt Subscript und Superscript. Sie können Subscript und Superscript gleichzeitig auf der linken oder rechten Seite des Arguments setzen, jedoch wird einzelnes Subscript oder Superscript nur auf der rechten Seite unterstützt. Das Superscript kann auch verwendet werden, um den mathematischen Grad einer Zahl festzulegen.

Beispiel:

auto script = System::MakeObject<MathematicalText>(u"y")->SetSubSuperscriptOnTheLeft(u"2x", u"3z");

Radical Methode

Spezifiziert die mathematische Wurzel des gegebenen Grades aus dem angegebenen Argument.

Beispiel:

auto radical = System::MakeObject<MathematicalText>(u"x")->Radical(u"3");

SetUpperLimit und SetLowerLimit Methoden

Nimmt die obere oder untere Grenze. Hier geben die obere und untere Grenze einfach die Position des Arguments relativ zur Basis an.

Betrachten wir einen Ausdruck:

todo:image_alt_text

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

auto mathExpression = System::MakeObject<MathematicalText>(u"lim")->SetLowerLimit(u"x→∞")->Function(u"x");

Nary und Integral Methoden

Sowohl die Nary als auch die Integral Methoden erstellen und geben den N-ary Operator zurück, der durch den IMathNaryOperator Typ dargestellt wird. In der Nary-Methode gibt die Aufzählung MathNaryOperatorTypes den Typ des Operators an: Summation, Vereinigung usw., jedoch ohne Integrale. In der Integral-Methode gibt es die spezialisierte Operation Integral mit der Aufzählung der Integraltypen MathIntegralTypes.

Beispiel:

auto baseArg = System::MakeObject<MathematicalText>(u"x")->Join(System::MakeObject<MathematicalText>(u"dx")->ToBox());
auto integral = baseArg->Integral(MathIntegralTypes::Simple, u"0", u"1");

ToMathArray Methode

ToMathArray platziert Elemente in einem vertikalen Array. Wenn diese Operation für eine MathBlock Instanz aufgerufen wird, werden alle untergeordneten Elemente im zurückgegebenen Array platziert.

Beispiel:

auto arrayFunction = System::MakeObject<MathematicalText>(u"x")->Join(u"y")->ToMathArray();

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

  • Die Accent Methode setzt ein Akzentzeichen (ein Zeichen oben auf dem Element).
  • Die Overbar und Underbar Methoden setzen einen Balken oben oder unten.
  • Die Group Methode platziert in einer Gruppe mithilfe eines Gruppierungszeichens wie einer unteren geschweiften Klammer oder einer anderen.
  • Die ToBorderBox Methode platziert in einem Border-Box.
  • Die ToBox Methode platziert in einer nicht sichtbaren Box (logische Gruppierung).

Beispiele:

auto accent = System::MakeObject<MathematicalText>(u"x")->Accent(u'\u0303');
    
auto bar = System::MakeObject<MathematicalText>(u"x")->Overbar();

auto groupChr = System::MakeObject<MathematicalText>(u"x")->Join(u"y")->Join(u"z")->Group(u'\u23E1', MathTopBotPositions::Bottom, MathTopBotPositions::Top);

auto borderBox = System::MakeObject<MathematicalText>(u"x+y+z")->ToBorderBox();

auto boxedOperator = System::MakeObject<MathematicalText>(u":=")->ToBox();