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 dla .NET możesz programowo tworzyć taki sam rodzaj treści matematycznych: ułamki, pierwiastki, funkcje, granice, operatory N-ary, macierze, tablice i sformatowane bloki matematyczne.

W PowerPoint użytkownicy zazwyczaj dodają równania z Insert > Equation:

Karta Insert w PowerPoint z wybraną komendą Equation

Wynik to edytowalny tekst matematyczny na slajdzie:

Slajd PowerPoint zawierający edytowalne równanie matematyczne

Aspose.Slides buduje ten tekst matematyczny za pomocą trzech głównych obiektów:

  • Kształt matematyczny, utworzony za pomocą AddMathShape, jest kształtem zawierającym równanie.
  • MathPortion przechowuje treść matematyczną wewnątrz ramki tekstowej kształtu.
  • MathParagraph zawiera jeden lub więcej obiektów MathBlock.

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

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

Utwórz równanie

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

Równanie c^2 = a^2 + b^2

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

Dodaj ułamki

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

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

Dodaj pierwiastki

Użyj Radical, aby utworzyć pierwiastek kwadratowy, sześcienny lub inny. Aktualny 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);

Dodaj funkcje i granice

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

Dodaj operatory N-ary i całki

Użyj Nary dla sum, unii, przecięć i innych dużych operatorów. Użyj Integral dla całek. Obie metody pozwalają ustawić dolne i górne granice.

Sumowanie 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żeniu.

Dla całki, użyj Integral:

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

Dodaj macierze

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

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

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

Dodaj funkcje trygonometryczne

Użyj AsArgumentOfFunction, gdy argument jest bieżącym elementem, a 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);

Dodaj indeksy dolne i górne

Użyj pomocy indeksów dolnych i górnych dla pod indeksów i potęg. Gdy indeksy muszą 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);

Dodaj delimitery

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

Wyrażenie delimitera 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);

Dodaj ramkę

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

Grupuj wyrażenia

Użyj Group, aby umieścić znak grupujący nad lub pod wyrażeniem. Dodaj granicę, aby oznaczyć zgrupowane wyrażenia.

Wyrażenie x + y zgrupowane z etykietą dowolny tekst pod nim

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

Formatuj elementy matematyczne

Używaj pomocy formatowania tylko tam, gdzie wyjaśniają wzór. Na przykład Overbar umieszcza pasek nad elementem matematycznym.

Wyrażenie matematyczne ABC z paskiem nad nim

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
Utwórz tekst matematyczny MathematicalText
Połącz elementy IMathElement.Join
Utwórz ułamki IMathElement.Divide
Dodaj indeks górny lub dolny SetSuperscript, SetSubscript
Dodaj funkcje Function, AsArgumentOfFunction
Dodaj pierwiastki IMathElement.Radical
Dodaj granice SetLowerLimit, SetUpperLimit
Dodaj skrypty po lewej stronie SetSubSuperscriptOnTheLeft
Dodaj sumy i całki Nary, Integral
Dodaj macierze MathMatrix
Dodaj tablice równań ToMathArray
Dodaj delimitery Enclose
Dodaj paski i ramki Overbar, ToBorderBox
Grupuj wyrażenia 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 PowerPoint?

Tak. Podczas zapisywania do PPTX, Aspose.Slides zapisuje równanie jako edytowalną treść matematyczną Office.

Czy mogę wyeksportować równania do LaTeX?

Tak. Pobierz IMathParagraph równania z jego MathPortion, a następnie wywołaj IMathParagraph.ToLatex, aby wyeksportować go bezpośrednio. Pełny przykład można znaleźć w Export Math Equations from Presentations in .NET.