Dodaj równania matematyczne do prezentacji PowerPoint w .NET

Przegląd

PowerPoint przechowuje równania jako Office Math Markup Language (OMML). Dzięki Aspose.Slides for .NET możesz programowo tworzyć taki sam rodzaj treści matematycznej: ułamki, pierwiastki, funkcje, granice, operatory N-ary, macierze, tablice i sformatowane bloki matematyczne.

W PowerPoint użytkownicy zazwyczaj dodają równania z Wstaw > Równanie:

Zakładka Wstaw w PowerPoincie z wybranym poleceniem Równanie

Wynik to edytowalny tekst matematyczny na slajdzie:

Slajd PowerPoint zawierający edytowalne równanie matematyczne

Aspose.Slides buduje ten tekst matematyczny przy użyciu trzech głównych obiektów:

  • Kształt matematyczny, tworzony za pomocą AddMathShape, jest kształtem, który zawiera równanie.
  • MathPortion przechowuje treść matematyczną w ramce tekstowej kształtu.
  • MathParagraph zawiera jeden lub więcej obiektów MathBlock.

Większość przykładów poniżej używa MathematicalText oraz płynnych metod z IMathElement aby kod był krótki i czytelny.

W scenariuszach eksportu do MathML zobacz Export Math Equations from Presentations in .NET.

Utworzenie równania

Ten przykład tworzy kształt matematyczny i dodaje twierdzenie Pitagorasa:

Równanie 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);

Dodawanie ułamków

Użyj Divide, aby utworzyć ułamek. Możesz wybrać styl ułamka za pomocą MathFractionTypes.

Skośny ułamek matematyczny pokazujący 1 podzielone przez x

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

Aby uzyskać ułamek stosowany, użyj MathFractionTypes.Bar:

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

Dodawanie pierwiastków

Użyj Radical, aby utworzyć pierwiastek kwadratowy, sześcienny lub inny. Obecny element staje się podstawą, a argument określa stopień.

Wyrażenie pierwiastka n‑tego z x pod znakiem pierwiastka

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

Dodawanie funkcji i granic

Użyj AsArgumentOfFunction lub Function dla funkcji takich jak sin(x), log(x) lub własnych nazw funkcji. Dla granic umieść lim w MathLimit lub użyj SetLowerLimit.

Granica x, gdy x dąży do nieskończoności

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

Aby użyć własnej nazwy funkcji, ustaw nazwę funkcji jako bieżący element:

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

Dodawanie operatorów N-ary i całek

Użyj Nary dla sumacji, unii, przecięć i innych dużych operatorów. Użyj Integral dla całek. Obie metody pozwalają ustawić limity dolny i górny.

Suma z dolną i górną granicą

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

Operatory N-ary służą do dużych operatorów z opcjonalnymi granicami. Proste operatory takie jak +, - i = są zazwyczaj dodawane jako MathematicalText i łączone w wyrażenie.

Dla całki użyj Integral:

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

Dodawanie macierzy

Użyj MathMatrix dla wierszy i kolumn. Macierze domyślnie nie zawierają nawiasów, więc otaczaj macierz, gdy potrzebujesz nawiasów okrągłych, kwadratowych lub klamrowych.

Matryca matematyczna z dwoma wierszami i jedną pustą komórką

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

Dodawanie tablic równań

Użyj ToMathArray, gdy potrzebujesz wyrównanych równań lub pionowego stosu wyrażeń.

Pionowa tablica matematyczna z x nad 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);

Dodawanie funkcji trygonometrycznych

Użyj AsArgumentOfFunction, gdy argument jest bieżącym elementem i nazwa funkcji jest znana.

Funkcja trygonometryczna cos zastosowana do 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);

Dodawanie indeksów dolnych i górnych

Użyj pomocników indeksów dolnych i górnych dla indeksów i potęg. Gdy indeksy mają pojawić się po lewej stronie podstawy, użyj SetSubSuperscriptOnTheLeft.

Wielka litera Y z lewostronnym indeksem dolnym 1 i górnym 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);

Dodawanie delimiterów

Użyj Enclose, aby umieścić wyrażenie wewnątrz delimiterów. Możesz także ustawić znak separatora dla wyrażeń delimiterowych zawierających kilka elementów.

Wyrażenie delimiterowe zawierające x, y i z oddzielone pionowymi kreskami

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

Dodawanie ramki obramowującej

Użyj ToBorderBox, gdy samo równanie ma być otoczone ramką.

Równanie w ramce pokazujące 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);

Grupowanie wyrazów

Użyj Group, aby umieścić znak grupujący nad lub pod wyrażeniem. Dodaj limit, aby oznaczyć pogrupowane wyrazy.

Wyrażenie x + y pogrupowane z etykietą dowolny tekst poniżej

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

Formatowanie elementów matematycznych

Używaj pomocników formatowania tylko tam, gdzie wyjaśniają formułę. Na przykład Overbar umieszcza kreskę nad elementem matematycznym.

Wyrażenie matematyczne ABC z kreską nad

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

Szybkie odniesienie

Zadanie Główne API
Tworzenie tekstu matematycznego MathematicalText
Łączenie elementów IMathElement.Join
Tworzenie ułamków IMathElement.Divide
Dodawanie indeksu górnego lub dolnego SetSuperscript, SetSubscript
Dodawanie funkcji Function, AsArgumentOfFunction
Dodawanie pierwiastków IMathElement.Radical
Dodawanie granic SetLowerLimit, SetUpperLimit
Dodawanie indeksów po lewej stronie SetSubSuperscriptOnTheLeft
Dodawanie sumacji i całek Nary, Integral
Dodawanie macierzy MathMatrix
Dodawanie tablic równań ToMathArray
Dodawanie delimiterów Enclose
Dodawanie kresek i ramek Overbar, ToBorderBox
Grupowanie wyrazów Group

FAQ

Czy mogę edytować istniejące równanie w PowerPoint?

Tak. Otwórz prezentację, znajdź kształt zawierający MathPortion, pobierz jego MathParagraph i zaktualizuj bloki matematyczne w tym akapicie.

Czy równania są zapisywane jako edytowalna matematyka w PowerPoint?

Tak. Przy zapisie do PPTX Aspose.Slides zapisuje równanie jako edytowalną zawartość Office Math.

Czy mogę wyeksportować równania do LaTeX?

Aspose.Slides eksportuje równania matematyczne do MathML. Jeśli potrzebujesz LaTeX, najpierw wyeksportuj do MathML, a następnie przekonwertuj MathML przy użyciu narzędzia obsługującego wybrany dialekt LaTeX.