Přidání matematických rovnic do prezentací PowerPoint v .NET

Přehled

PowerPoint ukládá rovnice ve formátu Office Math Markup Language (OMML). S Aspose.Slides pro .NET můžete programově vytvářet stejný typ matematického obsahu: zlomky, odmocniny, funkce, limity, N‑ary operátory, matice, pole a formátované matematické bloky.

V PowerPointu uživatelé obvykle přidávají rovnice pomocí Insert > Equation:

Panel Insert v PowerPointu s vybraným příkazem Rovnice

Výsledkem je editovatelný matematický text na snímku:

Snímek PowerPointu obsahující editovatelnou matematickou rovnici

Aspose.Slides vytváří tento matematický text pomocí tří hlavních objektů:

Většina níže uvedených příkladů používá MathematicalText a plynulé metody z IMathElement aby byl kód stručný a čitelný.

Pro scénáře exportu MathML viz Export Math Equations from Presentations in .NET.

Vytvoření rovnice

Tento příklad vytvoří matematický tvar a přidá Pythagorovu větu:

Rovnice c na druhou rovná se a na druhou plus b na druhou

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

Přidání zlomků

Použijte Divide k vytvoření zlomku. Styl zlomku můžete zvolit pomocí MathFractionTypes.

Šikmý matematický zlomek zobrazující jedničku děleno 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);

Pro svislý zlomek použijte MathFractionTypes.Bar:

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

Přidání odmocnin

Použijte Radical k vytvoření druhé odmocniny, třetí odmocniny nebo jiné odmocniny. Aktuální element se stane základem a argument určuje stupeň.

Výraz n‑té odmocniny s x pod znakem odmocniny

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

Přidání funkcí a limit

Použijte AsArgumentOfFunction nebo Function pro funkce jako sin(x), log(x) nebo vlastní názvy funkcí. Pro limity umístěte lim do MathLimit nebo použijte SetLowerLimit.

Limit x, když x směřuje k nekonečnu

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

Pro vlastní název funkce nastavte název funkce jako aktuální element:

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

Přidání N‑ary operátorů a integrálů

Použijte Nary pro součty, sjednocení, průniky a další velké operátory. Použijte Integral pro integrály. Obě metody umožňují nastavit dolní a horní limity.

Součet s dolní a horní limitou

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

N‑ary operátory slouží pro velké operátory s volitelnými limity. Jednoduché operátory jako +, - a = se obvykle přidávají jako MathematicalText a spojují do výrazu.

Pro integrál použijte Integral:

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

Přidání matic

Použijte MathMatrix pro řádky a sloupce. Matice standardně neobsahují závorky, proto je obklopte, pokud potřebujete závorky, hranaté závorky nebo složené závorky.

Matematická matice se dvěma řádky a jednou prázdnou buňkou

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

Přidání polí rovnic

Použijte ToMathArray, když potřebujete zarovnané rovnice nebo vertikální zásobník výrazů.

Vertikální matematické pole s 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);

Přidání trigonometrických funkcí

Použijte AsArgumentOfFunction, když je argument aktuální element a název funkce je známý.

Trigonometrická funkce cos aplikovaná na 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);

Přidání dolních a horních indexů

Použijte pomocníky pro dolní a horní indexy pro indexy a mocniny. Když mají být indexy vlevo od základu, použijte SetSubSuperscriptOnTheLeft.

Velké Y s levým dolním indexem 1 a horním indexem 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);

Přidání ohraničovačů

Použijte Enclose k vložení výrazu do ohraničovačů. Můžete také nastavit znak oddělovače pro ohraničené výrazy, které obsahují několik elementů.

Ohraničený výraz obsahující x, y a z oddělené svislými čarami

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

Přidání rámečku

Použijte ToBorderBox, když má být rovnice sama o sobě ohraničena rámečkem.

Rovnice v rámečku zobrazující a na druhou rovná se b na druhou plus c na druhou

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

Seskupení termínů

Použijte Group k umístění znaků seskupení nad nebo pod výrazem. Přidejte limit pro označení seskupených termínů.

Výraz x plus y seskupený s popiskem libovolný text pod ním

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

Formátování matematických elementů

Používejte pomocníky pro formátování jen tam, kde upřesňují vzorec. Například Overbar umístí čáru nad matematický element.

Matematický výraz ABC s vodorovnou čárou nad ním

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

Rychlý přehled

Úkol Hlavní API
Vytvořit matematický text MathematicalText
Kombinovat elementy IMathElement.Join
Vytvořit zlomky IMathElement.Divide
Přidat horní nebo dolní index SetSuperscript, SetSubscript
Přidat funkce Function, AsArgumentOfFunction
Přidat odmocniny IMathElement.Radical
Přidat limity SetLowerLimit, SetUpperLimit
Přidat indexy vlevo SetSubSuperscriptOnTheLeft
Přidat součty a integrály Nary, Integral
Přidat matice MathMatrix
Přidat pole rovnic ToMathArray
Přidat ohraničovače Enclose
Přidat čáry a rámečky Overbar, ToBorderBox
Seskupit termíny Group

Často kladené otázky

Mohu upravit existující rovnici v PowerPointu?

Ano. Otevřete prezentaci, najděte tvar, který obsahuje MathPortion, získejte jeho MathParagraph a aktualizujte matematické bloky v tomto odstavci.

Ukládají se rovnice jako editovatelná matematika v PowerPointu?

Ano. Při uložení do PPTX Aspose.Slides zapisuje rovnici jako editovatelný obsah Office Math.

Mohu exportovat rovnice do LaTeXu?

Aspose.Slides exportuje matematické rovnice do MathML. Pokud potřebujete LaTeX, nejprve exportujte do MathML a poté jej převést pomocí nástroje, který podporuje požadovaný LaTeX dialekt.