اضافه کردن معادلات ریاضی به ارائههای PowerPoint در .NET
مروری کلی
PowerPoint معادلات را به عنوان Office Math Markup Language (OMML) ذخیره میکند. با Aspose.Slides برای .NET، میتوانید همان نوع محتویات ریاضی را به صورت برنامهنویسی ایجاد کنید: کسرها، رادیکالها، توابع، محدودیتها، عملگرهای N-ary، ماتریسها، آرایهها و بلوکهای ریاضی قالببندیشده.
در PowerPoint، کاربران معمولاً معادلات را از Insert > Equation اضافه میکنند:

نتیجه متن ریاضی قابل ویرایش بر روی اسلاید است:

Aspose.Slides این متن ریاضی را از طریق سه شیء اصلی میسازد:
- یک شکل ریاضی که با AddMathShape ایجاد میشود، شکلی است که معادله را در خود دارد.
- MathPortion محتویات ریاضی را داخل فریم متن شکل ذخیره میکند.
- MathParagraph شامل یک یا چند شیء MathBlock است.
اکثر مثالهای زیر از MathematicalText و روشهای fluent از IMathElement استفاده میکنند تا کد کوتاه و قابل خواندن باشد.
برای سناریوهای خروجی MathML، به Export Math Equations from Presentations in .NET مراجعه کنید.
ایجاد معادله
این مثال یک شکل ریاضی ایجاد میکند و قضیه فیثاغورث را اضافه مینماید:

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 یک شکلی ایجاد میکند که از پیش شامل یک پاراگراف ریاضی است. اولین MathPortion را دسترسی پیدا کنید، MathParagraph آن را دریافت کنید، و بلوکهای ریاضی یا عناصر ریاضی را به آن اضافه کنید.
افزودن کسرها
Divide برای ایجاد یک کسر استفاده میشود. میتوانید یک سبک کسر را با 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);
برای یک کسر تودرتو، از MathFractionTypes.Bar استفاده کنید:
var stackedFraction = new MathematicalText("x + 1").Divide("y - 1", MathFractionTypes.Bar);
افزودن رادیکالها
Radical برای ایجاد ریشه دوم، ریشه سوم یا سایر ریشهها استفاده میشود. عنصر فعلی به عنوان پایه میشود و آرگومان به عنوان درجه ریشه.

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);
افزودن توابع و حدها
از AsArgumentOfFunction یا Function برای توابعی مانند sin(x)، log(x) یا نامهای توابع سفارشی استفاده کنید. برای حدها، lim را در یک MathLimit قرار دهید یا از 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);
برای نام تابع سفارشی، نام تابع را به عنوان عنصر فعلی تنظیم کنید:
var customFunction = new MathematicalText("f").Function("x + 1");
افزودن عملگرهای N-ary و انتگرالها
از Nary برای جمعها، اتحادیهها، اشتراکها و سایر عملگرهای بزرگ استفاده کنید. از Integral برای انتگرالها استفاده کنید. هر دو روش امکان تنظیم حد پایین و بالا را میدهند.

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 برای عملگرهای بزرگ با حدهای اختیاری هستند. عملگرهای ساده مانند +، - و = معمولاً بهعنوان MathematicalText اضافه میشوند و به عبارت متصل میگردند.
برای یک انتگرال، از Integral استفاده کنید:
var integralBase = new MathematicalText("x").Join(new MathematicalText("dx").ToBox());
var integral = integralBase.Integral(MathIntegralTypes.Simple, "0", "1");
افزودن ماتریسها
از MathMatrix برای ردیفها و ستونها استفاده کنید. بهطور پیشفرض ماتریسها پرانتز ندارند، بنابراین زمانی که به پرانتز، کروشه یا آکولاد نیاز دارید، ماتریس را درون آنها بگذارید.

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);
افزودن آرایههای معادله
از ToMathArray زمانی که به معادلات تراز شده یا یک پشته عمودی از عبارات نیاز دارید، استفاده کنید.

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);
افزودن توابع مثلثاتی
از AsArgumentOfFunction زمانی که آرگومان عنصر فعلی است و نام تابع شناخته شده است، استفاده کنید.

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);
افزودن زیرنویس و بالانویس
از ابزارهای زیرنویس و بالانویس برای اندیسها و توانها استفاده کنید. هنگامی که اندیسها باید در سمت چپ پایه ظاهر شوند، از 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);
افزودن جداکنندهها
از Enclose برای قرار دادن یک عبارت داخل جداکنندهها استفاده کنید. همچنین میتوانید کاراکتر جداساز را برای عبارات دارای چند عنصر تنظیم کنید.

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);
افزودن جعبه مرزی
از ToBorderBox زمانی که خود معادله باید در یک قاب قرار گیرد، استفاده کنید.

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);
گروهبندی عبارات
از Group برای قرار دادن یک کاراکتر گروهبندی بالا یا پایین یک عبارت استفاده کنید. برای برچسبگذاری عبارات گروهبندی شده، یک حد اضافه کنید.

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);
قالببندی عناصر ریاضی
از ابزارهای قالببندی فقط در جایی که فرمول را واضحتر میکند استفاده کنید. بهعنوان مثال، Overbar بار را بالای یک عنصر ریاضی قرار میدهد.

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);
مرجع سریع
| کار | API اصلی |
|---|---|
| ایجاد متن ریاضی | MathematicalText |
| ترکیب عناصر | IMathElement.Join |
| ایجاد کسرها | IMathElement.Divide |
| افزودن بالانویس یا زیرنویس | SetSuperscript, SetSubscript |
| افزودن توابع | Function, AsArgumentOfFunction |
| افزودن رادیکالها | IMathElement.Radical |
| افزودن حدها | SetLowerLimit, SetUpperLimit |
| افزودن اسکریپتهای سمت چپ | SetSubSuperscriptOnTheLeft |
| افزودن جمعها و انتگرالها | Nary, Integral |
| افزودن ماتریسها | MathMatrix |
| افزودن آرایههای معادله | ToMathArray |
| افزودن جداکنندهها | Enclose |
| افزودن میله و قابها | Overbar, ToBorderBox |
| گروهبندی عبارات | Group |
سوالات متداول
آیا میتوانم یک معادله موجود در PowerPoint را ویرایش کنم؟
بله. ارائه را باز کنید، شکلی که شامل یک MathPortion است پیدا کنید، MathParagraph آن را دریافت کنید، و بلوکهای ریاضی در آن پاراگراف را بهروز کنید.
آیا معادلات بهصورت ریاضی قابل ویرایش PowerPoint ذخیره میشوند؟
بله. زمانی که به قالب PPTX ذخیره میکنید، Aspose.Slides معادله را بهعنوان محتوای ریاضی قابل ویرایش Office مینویسد.
آیا میتوانم معادلات را به LaTeX صادر کنم؟
بله. معادله را از طریق IMathParagraph که از MathPortion دریافت میکنید، بگیرید و IMathParagraph.ToLatex را صدا بزنید تا مستقیماً صادر شود. برای یک مثال کامل، به Export Math Equations from Presentations in .NET مراجعه کنید.