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

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

Aspose.Slides يبني ذلك النص الرياضي من خلال ثلاثة كائنات رئيسية:
- شكل رياضي، يتم إنشاؤه باستخدام addMathShape، وهو الشكل الذي يحتوي على المعادلة.
- MathPortion يخزن محتوى الرياضيات داخل إطار نص الشكل.
- MathParagraph يحتوي على كائن واحد أو أكثر من MathBlock.
معظم الأمثلة أدناه تستخدم MathematicalText والطرق السلسة من IMathElement لتقليل طول الشيفرة وجعلها قابلة للقراءة.
للاسستعمالات تصدير MathML، راجع Export Math Equations from Presentations on Android.
إنشاء معادلة
هذا المثال ينشئ شكلًا رياضيًا ويضيف نظرية فيثاغورس:

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 120);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathBlock 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);
} finally {
presentation.dispose();
}
addMathShape ينشئ شكلاً يحتوي مسبقاً على فقرة رياضية. احصل على أول MathPortion، ثم MathParagraph الخاص به، وأضف كتل رياضية أو عناصر رياضية إليه.
إضافة كسور
استخدم divide لإنشاء كسر. يمكنك اختيار نمط الكسر باستخدام MathFractionTypes.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathFraction fraction = new MathematicalText("1")
.divide("x", MathFractionTypes.Skewed);
mathParagraph.add(new MathBlock(fraction));
presentation.save("fraction.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
لقطع مكدس، استخدم MathFractionTypes.Bar:
IMathFraction stackedFraction = new MathematicalText("x + 1").divide("y - 1", MathFractionTypes.Bar);
إضافة جذور
استخدم radical لإنشاء جذر تربيعي أو مكعب أو جذر آخر. يصبح العنصر الحالي القاعدة، وتصبح الوسيطة الدرجة.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathRadical radical = new MathematicalText("x")
.radical("n");
mathParagraph.add(new MathBlock(radical));
presentation.save("radical.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة دوال وحدود
استخدم asArgumentOfFunction أو function للدوال مثل sin(x), log(x) أو أسماء دوال مخصصة. للحدود، ضع lim داخل MathLimit أو استخدم setLowerLimit.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathFunction limit = new MathematicalText("lim")
.setLowerLimit("x→∞")
.function("x");
mathParagraph.add(new MathBlock(limit));
presentation.save("functions-and-limits.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
لإسم دالة مخصص، اجعل اسم الدالة هو العنصر الحالي:
IMathFunction customFunction = new MathematicalText("f").function("x + 1");
إضافة عوامل N-ary وتكاملات
استخدم nary للجمع، الاتحاد، التقاطع، وعوامل كبيرة أخرى. استخدم integral للتكاملات. كلتا الطريقتين تسمحان بتعيين حدود سفلية وعلوية.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 120);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathBlock summationBase = new MathematicalText("x")
.setSuperscript("k")
.join(new MathematicalText("a").setSuperscript("n-k"));
IMathNaryOperator summation = summationBase.nary(MathNaryOperatorTypes.Summation, "k=0", "n");
mathParagraph.add(new MathBlock(summation));
presentation.save("nary-operators.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
العوامل N-ary مخصصة للعوامل الكبيرة مع حدود اختيارية. تُضاف العوامل البسيطة مثل +, -, و = عادةً كـ MathematicalText وتُدمج في التعبير.
للتكامل، استخدم integral:
IMathBlock integralBase = new MathematicalText("x").join(new MathematicalText("dx").toBox());
IMathNaryOperator integral = integralBase.integral(MathIntegralTypes.Simple, "0", "1");
إضافة مصفوفات
استخدم MathMatrix للصفوف والأعمدة. المصفوفات لا تشمل الأقواس بشكل افتراضي، لذا احط المصفوفة بأقواس أو أقواس مربعة أو أقواس معقوفة عندما تحتاج ذلك.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 120);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
MathMatrix matrix = new MathMatrix(2, 3);
matrix.set_Item(0, 0, new MathematicalText("1"));
matrix.set_Item(0, 1, new MathematicalText("x"));
matrix.set_Item(1, 0, new MathematicalText("x"));
matrix.set_Item(1, 1, new MathematicalText("2"));
matrix.set_Item(1, 2, new MathematicalText("y"));
mathParagraph.add(new MathBlock(matrix));
presentation.save("matrix.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة مصفوفات المعادلات
استخدم toMathArray عندما تحتاج إلى معادلات محاذاة أو مجموعة عمودية من التعبيرات.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 140);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathArray equationArray = new MathematicalText("x")
.join("y")
.toMathArray();
mathParagraph.add(new MathBlock(equationArray));
presentation.save("equation-array.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة الدوال المثلثية
استخدم asArgumentOfFunction عندما يكون الوسيط هو العنصر الحالي ويُعرف اسم الدالة.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathFunction cosine = new MathematicalText("2x")
.asArgumentOfFunction(MathFunctionsOfOneArgument.Cos);
mathParagraph.add(new MathBlock(cosine));
presentation.save("trigonometric-function.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة المؤشرات والرفعات
استخدم المساعدات للمؤشرات والرفعات للمؤشرات والأسس. عندما يجب أن تظهر المؤشرات على الجانب الأيسر للقاعدة، استخدم setSubSuperscriptOnTheLeft.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathLeftSubSuperscriptElement scripts = new MathematicalText("Y")
.setSubSuperscriptOnTheLeft("1", "n");
mathParagraph.add(new MathBlock(scripts));
presentation.save("subscript-superscript.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة محددات
استخدم enclose لوضع تعبير داخل محددات. يمكنك أيضاً تحديد حرف فاصل لتعبيرات المحددات التي تحتوي على عدة عناصر.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathDelimiter delimiter = new MathematicalText("x")
.join("y")
.join("z")
.enclose('<', '>');
delimiter.setSeparatorCharacter('|');
mathParagraph.add(new MathBlock(delimiter));
presentation.save("delimiters.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إضافة إطار حد
استخدم toBorderBox عندما يجب أن تكون المعادلة نفسها مؤطرة.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathBorderBox 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);
} finally {
presentation.dispose();
}
تجميع المصطلحات
استخدم group لوضع حرف تجميع فوق أو أسفل تعبير. أضف حدًا لتسمية المصطلحات المجمعة.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 120);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathLimit 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);
} finally {
presentation.dispose();
}
تنسيق عناصر الرياضيات
استخدم مساعدات التنسيق فقط حيث توضح الصيغة. على سبيل المثال، overbar يضع شريطًا فوق عنصر رياضي.

Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape mathShape = slide.getShapes().addMathShape(20, 20, 700, 100);
IMathParagraph mathParagraph = ((MathPortion) mathShape.getTextFrame().getParagraphs()
.get_Item(0).getPortions().get_Item(0)).getMathParagraph();
IMathBar overbar = new MathematicalText("ABC").overbar();
mathParagraph.add(new MathBlock(overbar));
presentation.save("overbar.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
مرجع سريع
| المهمة | API الرئيسي |
|---|---|
| إنشاء نص رياضي | MathematicalText |
| دمج العناصر | IMathElement.join |
| إنشاء كسور | IMathElement.divide |
| إضافة رفع أو مؤشر | setSuperscript, setSubscript |
| إضافة دوال | function, asArgumentOfFunction |
| إضافة جذور | IMathElement.radical |
| إضافة حدود | setLowerLimit, setUpperLimit |
| إضافة مؤشرات على الجانب الأيسر | setSubSuperscriptOnTheLeft |
| إضافة جمع وتكامل | nary, integral |
| إضافة مصفوفات | MathMatrix |
| إضافة مصفوفات المعادلات | toMathArray |
| إضافة محددات | enclose |
| إضافة أشرطة وإطارات | overbar, toBorderBox |
| تجميع المصطلحات | group |
FAQ
هل يمكنني تعديل معادلة PowerPoint موجودة؟
نعم. افتح العرض التقديمي، ابحث عن الشكل الذي يحتوي على MathPortion، احصل على MathParagraph الخاص به، وقم بتحديث كتل الرياضيات في ذلك الفقرة.
هل تُحفظ المعادلات كرياضيات PowerPoint قابلة للتحرير؟
نعم. عند حفظ الملف بصيغة PPTX، تقوم Aspose.Slides بكتابة المعادلة كـ Office Math محتوى قابل للتحرير.
هل يمكنني تصدير المعادلات إلى LaTeX؟
نعم. احصل على IMathParagraph للمعادلة من خلال IMathPortion، ثم استدعِ IMathParagraph.toLatex لتصديره مباشرة. للحصول على مثال كامل، راجع Export Math Equations from Presentations in Android via Java.