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

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

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

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\u2192\u221E")
.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 |
سوالات متداول
آیا میتوانم یک معادله PowerPoint موجود را ویرایش کنم؟
بله. ارائه را باز کنید، شکلی که شامل MathPortion است پیدا کنید، MathParagraph آن را بگیرید و بلوکهای ریاضی داخل آن پاراگراف را بهروزرسانی کنید.
آیا معادلات به صورت ریاضی ویرایشپذیر PowerPoint ذخیره میشوند؟
بله. هنگام ذخیره به قالب PPTX، Aspose.Slides معادله را به عنوان محتوای ریاضی ویرایشپذیر Office مینویسد.
آیا میتوانم معادلات را به LaTeX صادر کنم؟
Aspose.Slides معادلات ریاضی را به MathML صادر میکند. اگر به LaTeX نیاز دارید، ابتدا به MathML صادر کنید و سپس با ابزاری که از دیالکت LaTeX هدف پشتیبانی میکند، MathML را به LaTeX تبدیل کنید.