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:

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

Aspose.Slides vytváří tento matematický text pomocí tří hlavních objektů:
- Matematický tvar vytvořený pomocí AddMathShape, je tvar, který obsahuje rovnici.
- MathPortion ukládá matematický obsah uvnitř textového rámce tvaru.
- MathParagraph obsahuje jeden nebo více objektů MathBlock.
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:

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);
AddMathShape vytvoří tvar, který již obsahuje matematický odstavec. Získejte první MathPortion, získáte jeho MathParagraph a přidejte do něj matematické bloky nebo matematické elementy.
Přidání zlomků
Použijte Divide k vytvoření zlomku. Styl zlomku můžete zvolit pomocí MathFractionTypes.

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ň.

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.

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.

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.

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ů.

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ý.

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.

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ů.

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.

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ů.

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.

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.