إضافة معادلات رياضية إلى عروض PowerPoint التقديمية في .NET
نظرة عامة
PowerPoint يخزن المعادلات بصيغة Office Math Markup Language (OMML). باستخدام Aspose.Slides لـ .NET، يمكنك إنشاء نفس نوع محتوى الرياضيات برمجيًا: الكسور، الجذور، الدوال، الحدود، المشغلات ذات N-ary، المصفوفات، المصفوفات المتعددة الأبعاد، وكتل الرياضيات المنسقة.
في PowerPoint، يضيف المستخدمون عادةً المعادلات من Insert > Equation:

النتيجة هي نص رياضي قابل للتحرير على الشريحة:

Aspose.Slides يبني ذلك النص الرياضي من خلال ثلاثة كائنات رئيسية:
- شكل رياضي، يتم إنشاؤه باستخدام AddMathShape، هو الشكل الذي يحتوي على المعادلة.
- MathPortion يخزن محتوى الرياضيات داخل إطار نص الشكل.
- MathParagraph يحتوي على كائن واحد أو أكثر من MathBlock .
معظم الأمثلة أدناه تستخدم MathematicalText والطرق السلسة من 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.