معادلات رياضية PowerPoint

نظرة عامة

في PowerPoint، من الممكن كتابة معادلة رياضية أو صيغة وعرضها في العرض التقديمي. للقيام بذلك، يتم تمثيل رموز رياضية مختلفة في PowerPoint ويمكن إضافتها إلى النص أو المعادلة. لهذا، يُستخدم مُنشئ المعادلات الرياضية في PowerPoint، الذي يساعد على إنشاء صيغ مركبة مثل:

  • كسر رياضي
  • جذور رياضية
  • دالة رياضية
  • حدود ودوال اللوغاريتم
  • عمليات N-ary
  • مصفوفة
  • عمليات كبيرة
  • دوال sin, cos

لإضافة معادلة رياضية في PowerPoint، يُستخدم القائمة Insert -> Equation:

todo:image_alt_text

سيتم إنشاء نص رياضي بصيغة XML يمكن عرضه في PowerPoint كما يلي:

todo:image_alt_text

يدعم PowerPoint العديد من الرموز الرياضية لإنشاء المعادلات. ومع ذلك، غالبًا ما لا ينتج عن إنشاء معادلات رياضية معقدة في PowerPoint نتيجة ذات مظهر جيد واحترافي. يلجأ المستخدمون الذين يحتاجون إلى إنشاء عروض تقديمية رياضية بشكل متكرر إلى حلول طرف ثالث لإنشاء صيغ رياضية ذات مظهر جيد.

باستخدام Aspose.Slide API، يمكنك العمل مع المعادلات الرياضية في عروض PowerPoint برمجيًا باستخدام C#. أنشئ تعابير رياضية جديدة أو حرر التعابير التي تم إنشاؤها مسبقًا. كما يتم دعم تصدير الهياكل الرياضية إلى صور جزئيًا.

كيفية إنشاء معادلة رياضية

تُستخدم العناصر الرياضية لبناء أي تركيبات رياضية بمستوى تعشيق أيًا كان. تشكل مجموعة خطية من العناصر الرياضية كتلة رياضية يُمثّلها صنف MathBlock. صنف MathBlock هو في الأساس تعبير رياضي منفصل أو صيغة أو معادلة. يُعد صنف MathPortion جزءًا رياضيًا يُستخدم لحفظ النص الرياضي (لا تخلطه مع Portion). يسمح صنف MathParagraph بالتعامل مع مجموعة من كتل الرياضيات. تُعد الأصناف المذكورة أعلاه المفتاح للعمل مع معادلات PowerPoint الرياضية عبر API الخاص بـ Aspose.Slides.

دعنا نرى كيف يمكننا إنشاء المعادلة الرياضية التالية عبر API الخاص بـ Aspose.Slides:

todo:image_alt_text

لإضافة تعبير رياضي إلى الشريحة، أضف أولاً شكلًا سيحتوي على النص الرياضي:

var pres = new aspose.slides.Presentation();
try {
    var mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

بعد الإنشاء، سيحتوي الشكل بالفعل على فقرة واحدة مع جزء رياضي بشكل افتراضي. صنف MathPortion هو جزء يحتوي على نص رياضي داخل. للوصول إلى المحتوى الرياضي داخل MathPortion، اشّر إلى المتغيّر MathParagraph كالتالي:

var mathParagraph = mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getMathParagraph();

يُتيح صنف MathParagraph قراءة وإضافة وتعديل وحذف كتل الرياضيات (MathBlock) التي تتكوّن من مجموعة من العناصر الرياضية. على سبيل المثال، أنشئ كسرًا وضعه في العرض:

var fraction = new aspose.slides.MathematicalText("x").divide("y");
mathParagraph.add(new aspose.slides.MathBlock(fraction));

كل عنصر رياضي يُمثَّل بصنف ينفّذ الصنف MathElement. يوفّر هذا الصنف عددًا كبيرًا من الأساليب لإنشاء تعابير رياضية بسهولة. يمكنك إنشاء تعبير رياضي معقّد باستخدام سطر واحد من الشيفرة. على سبيل المثال، ستظهر معادلة فيثاغورس هكذا:

var mathBlock = new aspose.slides.MathematicalText("c").setSuperscript("2").join("=").join(new aspose.slides.MathematicalText("a").setSuperscript("2")).join("+").join(new aspose.slides.MathematicalText("b").setSuperscript("2"));

تُنفّذ عمليات الصنف MathElement في أي نوع من العناصر، بما في ذلك MathBlock.

عينة الشيفرة الكاملة:

var pres = new aspose.slides.Presentation();
try {
    var mathShape = pres.getSlides().get_Item(0).getShapes().addMathShape(0, 0, 720, 150);
    var mathParagraph = mathShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getMathParagraph();
    var fraction = new aspose.slides.MathematicalText("x").divide("y");
    mathParagraph.add(new aspose.slides.MathBlock(fraction));
    var mathBlock = new aspose.slides.MathematicalText("c").setSuperscript("2").join("=").join(new aspose.slides.MathematicalText("a").setSuperscript("2")).join("+").join(new aspose.slides.MathematicalText("b").setSuperscript("2"));
    mathParagraph.add(mathBlock);
    pres.save("math.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

أنواع العناصر الرياضية

تتشكل التعابير الرياضية من تسلسلات من العناصر الرياضية. يُمثَّل تسلسل العناصر الرياضية بكتلة رياضية، وتشكل حجج العناصر الرياضية تعشُّقًا شجريًا.

هناك عدد كبير من أنواع العناصر الرياضية التي يمكن استخدامها لإنشاء كتلة رياضية. يمكن تضمين كل عنصر (تجميع) داخل عنصر آخر. أي أن العناصر هي في الواقع حاويات لعناصر أخرى، مكوّنةً بنية شجرية. أبسط نوع من العنصر لا يحتوي على عناصر نصية رياضية أخرى.

كل نوع من العناصر الرياضية ينفّذ الصنف MathElement؛ مما يسمح باستخدام مجموعة مشتركة من عمليات الرياضيات على أنواع مختلفة من العناصر.

الصنف MathematicalText

الصنف MathematicalText يُمثّل نصًا رياضيًا — العنصر الأساسي لكل التركيبات الرياضية. قد يمثل النص الرياضي معاملات ومشغّلات، متغيرات، أو أي نص خطي آخر.

مثال: 𝑎=𝑏+𝑐

الصنف MathFraction

الصنف MathFraction يُحدّد كائن الكسر، المكوّن من بسط ومقام مفصولين بشريط الكسر. يمكن أن يكون شريط الكسر أفقيًا أو مائلًا بحسب خصائص الكسر. يُستَخدم كائن الكسر أيضًا لتمثيل دالة المكدس، التي تضع عنصرًا فوق آخر دون شريط كسر.

مثال:

todo:image_alt_text

الصنف MathRadical

الصنف MathRadical يُحدّد دالة الجذر (جذر رياضي)، مكوّنًا من قاعدة ودرجة اختيارية.

مثال:

todo:image_alt_text

الصنف MathFunction

الصنف MathFunction يُحدّد دالة لوسيط. يحتوي على خاصيتين: getName — اسم الدالة، وgetBase — وسيط الدالة.

مثال:

todo:image_alt_text

الصنف MathNaryOperator

الصنف MathNaryOperator يُحدّد كائنًا رياضيًا N-ary مثل الجمع التراكمي (Summation) والتكامل. يتكوّن من مشغّل، قاعدة (أو معامل)، ودرجات علوية وسفلية اختيارية. من أمثلة المشغّلات N-ary: Summation، Union، Intersection، Integral.

هذا الصنف لا يتضمن المشغّلات البسيطة مثل الجمع أو الطرح؛ تُمثل هذه المشغّلات بعنصر نصي واحد — MathematicalText.

مثال:

todo:image_alt_text

الصنف MathLimit

الصنف MathLimit يُنشئ حدًا علويًا أو سفليًا. يُحدّد كائن الحد نصًا على الخط الأساسي ونصًا مصغّرًا فوقه أو أسفله مباشرة. لا يحتوي هذا العنصر على كلمة “lim”، بل يسمح لك بوضع النص في أعلى أو أسفل التعبير. لذا، يُنشأ التعبير التالي:

todo:image_alt_text

باستخدام مزيج من عناصر MathFunction وMathLimit يتم إنشاؤه كالتالي:

var funcName = new aspose.slides.MathLimit(new aspose.slides.MathematicalText("lim"), new aspose.slides.MathematicalText("𝑥→∞"));
var mathFunc = new aspose.slides.MathFunction(funcName, new aspose.slides.MathematicalText("𝑥"));

الصنف MathSubscriptElement, MathSuperscriptElement, MathRightSubSuperscriptElement, MathLeftSubSuperscriptElement

تُحدّد الأصناف التالية مؤشرًا سفليًا أو علويًا. يمكن ضبط كل من النص السُفْلي والعُلوي في الوقت نفسه على الجانب الأيسر أو الأيمن للوسيط، لكن يُدعم النص السُفْلي أو العُلوي المفرد فقط على الجانب الأيمن. يمكن أيضًا استخدام MathSubscriptElement لتحديد درجة رياضية لعدد.

مثال:

todo:image_alt_text

الصنف MathMatrix

الصنف MathMatrix يُحدّد كائن المصفوفة، المكوّن من عناصر فرعية مرتبة في صفوف وأعمدة. تجدر الإشارة إلى أن المصفوفات لا تتضمن محددات مدمجة. لوضع المصفوفة بين أقواس يجب استخدام كائن المحدد — MathDelimiter. يمكن استخدام قيم فارغة لإنشاء فراغات داخل المصفوفات.

مثال:

todo:image_alt_text

الصنف MathArray

الصنف MathArray يُحدّد مصفوفة رأسية من المعادلات أو أي كائنات رياضية أخرى.

مثال:

todo:image_alt_text

تنسيق العناصر الرياضية

  • الصنف MathBorderBox: يرسم حدودًا مستطيلة أو غيرها حول MathElement.

    مثال: todo:image_alt_text

  • الصنف MathBox: يُحدّد تغليفًا منطقيًا (تعبئة) للعنصر الرياضي. على سبيل المثال، يمكن أن يكون الكائن المغلف محاكٍ للمشغّل مع أو بدون نقطة محاذاة، أو يُستخدم كفاصل سطر، أو يُجمّع بحيث لا يسمح بحدوث فواصل سطر داخله. على سبيل المثال، يجب تغليف مشغّل “==” لمنع فواصل الأسطر.

  • الصنف MathDelimiter: يُحدّد كائن المحدد، المكوّن من أحرف افتتاحية وإغلاقية (مثل الأقواس، القوس المعقوف، الأقواس المربعة، أو الخطوط العمودية)، وعنصر أو أكثر داخلية مفصولة بحرف محدد. أمثلة: (𝑥2); [𝑥2|𝑦2].

    مثال: todo:image_alt_text

  • الصنف MathAccent: يُحدّد دالة اللكنة، المكوّن من قاعدة وعلامة دمجية.

    مثال: 𝑎́.

  • الصنف MathBar: يُحدّد دالة الشريط، المكوّن من وسيط أساسي وشريط فوقي أو سفلي.

    مثال: todo:image_alt_text

  • الصنف MathGroupingCharacter: يُحدّد رمز تجميع فوق أو تحت التعبير، عادةً لتسليط الضوء على العلاقات بين العناصر.

    مثال: todo:image_alt_text

العمليات الرياضية

كل عنصر رياضي وتعبير رياضي (عبر MathBlock) ينفّذ الصنف MathElement. يسمح لك باستخدام عمليات على البنية الحالية وتكوين تعابير رياضية أكثر تعقيدًا. جميع العمليات لها مجموعتين من الوسائط: إما [MathElement] أو سلسلة كوسائط. تُنشأ كائنات الصنف [MathematicalText] ضمنيًا من السلاسل المحددة عند استخدام وسائط نصية. تُدرج عمليات الرياضيات المتاحة في Aspose.Slides أدناه.

طريقة Join

تدمج عنصرًا رياضيًا وتشكل كتلة رياضية. مثال:

var element1 = new aspose.slides.MathematicalText("x");
var element2 = new aspose.slides.MathematicalText("y");
var block = element1.join(element2);

طريقة Divide

ينشئ كسرًا من النوع المحدد مع هذا البسط والمقام المحدد. مثال:

var numerator = new aspose.slides.MathematicalText("x");
var fraction = numerator.divide("y", aspose.slides.MathFractionTypes.Linear);

طريقة Enclose

يحيط العنصر بأحرف محددة مثل الأقواس أو حرف آخر كإطار.

/**
 * <p>
 * Enclose a math element in parenthesis
 * </p>
 */
public IMathDelimiter enclose();

/**
 * <p>
 * Encloses this element in specified characters such as parenthesis or another characters as framing
 * </p>
 */
public IMathDelimiter enclose(char beginningCharacter, char endingCharacter);

مثال:

var delimiter = new aspose.slides.MathematicalText("x").enclose('[', ']');
var delimiter2 = new aspose.slides.MathematicalText("elem1").join("elem2").enclose();

طريقة Function

تُنشئ دالة لوسيط باستخدام الكائن الحالي كاسم للدالة.

/**
 * <p>
 * Takes a function of an argument using this instance as the function name
 * </p>
 */
public IMathFunction function(IMathElement functionArgument);

/**
 * <p>
 * Takes a function of an argument using this instance as the function name
 * </p>
 */
public IMathFunction function(String functionArgument);

مثال:

var func = new aspose.slides.MathematicalText("sin").function("x");

طريقة AsArgumentOfFunction

تُخذ الدالة المحددة باستخدام المثيل الحالي كوسيط. يمكنك:

مثال:

var funcName = new aspose.slides.MathLimit(new aspose.slides.MathematicalText("lim"), new aspose.slides.MathematicalText("𝑛→∞"));
var func1 = new aspose.slides.MathematicalText("2x").asArgumentOfFunction(funcName);
var func2 = new aspose.slides.MathematicalText("x").asArgumentOfFunction("sin");
var func3 = new aspose.slides.MathematicalText("x").asArgumentOfFunction(aspose.slides.MathFunctionsOfOneArgument.Sin);
var func4 = new aspose.slides.MathematicalText("x").asArgumentOfFunction(aspose.slides.MathFunctionsOfTwoArguments.Log, "3");

طرق SetSubscript, SetSuperscript, SetSubSuperscriptOnTheRight, SetSubSuperscriptOnTheLeft

يضبط النص السفلي والعُلوي. يمكنك ضبط النص السفلي والعُلوي معًا على الجانب الأيسر أو الأيمن من الوسيط، لكن النص السفلي أو العُلوي المفرد يُدعم فقط على الجانب الأيمن. يمكن أيضًا استخدام Superscript لتحديد درجة رياضية لعدد.

مثال:

var script = new aspose.slides.MathematicalText("y").setSubSuperscriptOnTheLeft("2x", "3z");

طريقة Radical

يحدد الجذر الرياضي للدرجة المعطاة من الوسيط المحدد.

مثال:

var radical = new aspose.slides.MathematicalText("x").radical("3");

طرق SetUpperLimit و SetLowerLimit

تُحدد حدًا علويًا أو سفليًا. يشير الحد العلوي والسفلي ببساطة إلى موقع الوسيط بالنسبة للقاعدة.

لنأخذ مثالًا على التعبير:

todo:image_alt_text

يمكن إنشاء مثل هذه التعبيرات عبر مزيج من أصناف MathFunction وMathLimit وعمليات MathElement كما يلي:

var mathExpression = new aspose.slides.MathematicalText("lim").setLowerLimit("x→∞").function("x");

طرق Nary و Integral

تنشئ كل من طريقتي nary و integral كائنًا من النوع [MathNaryOperator]. في طريقة nary، يحدِّد تعداد [MathNaryOperatorTypes] نوع المشغّل: جمع متسلسل، اتحاد، إلخ، ولا تشمل التكاملات. في طريقة Integral، يُستخدم تعداد [MathIntegralTypes] لتحديد نوع التكامل.

مثال:

var baseArg = new aspose.slides.MathematicalText("x").join(new aspose.slides.MathematicalText("dx").toBox());
var integral = baseArg.integral(aspose.slides.MathIntegralTypes.Simple, "0", "1");

طريقة ToMathArray

تضع طريقة toMathArray العناصر في مصفوفة رأسية. إذا تم استدعاء هذه العملية على كائن من صنف MathBlock، فستوضع جميع العناصر الفرعية في المصفوفة المُسترجعة.

مثال:

var arrayFunction = new aspose.slides.MathematicalText("x").join("y").toMathArray();

عمليات التنسيق: Accent, Overbar, Underbar, Group, ToBorderBox, ToBox

  • طريقة accent تضبط علامةً فوق العنصر.
  • طريقتا overbar و underbar تضبطان شريطًا فوق أو تحت العنصر.
  • طريقة group تضع العنصر داخل مجموعة باستخدام رمز تجميع مثل القوس المعقوف السفلي أو غيره.
  • طريقة toBorderBox تضع العنصر داخل صندوق حد.
  • طريقة toBox تضع العنصر داخل صندوق غير مرئي (تجميع منطقي).

أمثلة:

var accent = new aspose.slides.MathematicalText("x").accent('̃');
var bar = new aspose.slides.MathematicalText("x").overbar();
var groupChr = new aspose.slides.MathematicalText("x").join("y").join("z").group('⏡', aspose.slides.MathTopBotPositions.Bottom, aspose.slides.MathTopBotPositions.Top);
var borderBox = new aspose.slides.MathematicalText("x+y+z").toBorderBox();
var boxedOperator = new aspose.slides.MathematicalText(":=").toBox();

الأسئلة الشائعة

كيف يمكن إضافة معادلة رياضية إلى شريحة PowerPoint؟

لإضافة معادلة رياضية، تحتاج إلى إنشاء كائن MathShape، والذي يحتوي تلقائيًا على جزء رياضي. بعد ذلك، استرجع MathParagraph من MathPortion وأضف كائنات MathBlock إليها.

هل من الممكن إنشاء تعابير رياضية متداخلة معقدة؟

نعم، يتيح Aspose.Slides إنشاء تعابير رياضية معقدة عن طريق تعشيق كتل MathBlocks. كل عنصر رياضي ينفّذ الصنف IMathElement، والذي يتيح لك تطبيق عمليات (Join، Divide، Enclose، إلخ) لتجميع العناصر في هياكل أكثر تعقيدًا.

كيف يمكن تحديث أو تعديل معادلة رياضية موجودة؟

لتحديث معادلة، عليك الوصول إلى كتل MathBlocks الحالية عبر MathParagraph. ثم باستخدام طرق مثل Join، Divide، Enclose، وغيرها، يمكنك تعديل عناصر المعادلة الفردية. بعد التحرير، احفظ العرض التقديمي لتطبيق التغييرات.