Java ile PowerPoint Sunumlarına Matematik Denklemleri Ekleme

Genel Bakış

PowerPoint, denklemleri Office Math Markup Language (OMML) olarak depolar. Aspose.Slides for Java ile aynı tür matematik içeriğini programlı olarak oluşturabilirsiniz: kesirler, kökler, fonksiyonlar, limitler, N-ary operatörler, matrisler, diziler ve biçimlendirilmiş matematik blokları.

PowerPoint’te kullanıcılar genellikle Ekle > Denklem üzerinden denklemler ekler:

PowerPoint Ekle sekmesi, Denklem komutu seçili

Sonuç, slaytta düzenlenebilir matematik metni olur:

Düzenlenebilir bir matematik denklemi içeren bir PowerPoint slaytı

Aspose.Slides, bu matematik metnini üç ana nesne aracılığıyla oluşturur:

Aşağıdaki çoğu örnek, kodu kısa ve okunaklı tutmak için MathematicalText ve IMathElement –in akıcı yöntemlerini kullanır.

MathML dışa aktarma senaryoları için, Export Math Equations from Presentations in Java bölümüne bakın.

Bir Denklem Oluşturma

Bu örnek bir matematik şekli oluşturur ve Pisagor teoremini ekler:

c² = a² + b² denklemi

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();
}

Kesir Ekleme

divide kullanarak bir kesir oluşturun. Kesir stilini MathFractionTypes ile seçebilirsiniz.

x’e bölünmüş bir sayı gösteren eğik bir matematik kesiri

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();
}

Yığılmış bir kesir için MathFractionTypes.Bar kullanın:

IMathFraction stackedFraction = new MathematicalText("x + 1").divide("y - 1", MathFractionTypes.Bar);

Kök Ekleme

radical kullanarak karekök, küpkök veya diğer kökleri oluşturun. Geçerli öğe taban olur, argüman ise derecesi olur.

x’in kök işareti altında olduğu n’inci kök ifadesi

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();
}

Fonksiyonlar ve Limitler Ekleme

asArgumentOfFunction veya function kullanarak sin(x), log(x) gibi fonksiyonlar veya özelleştirilmiş fonksiyon adları ekleyin. Limitler için lim ifadesini bir MathLimit içine koyun veya setLowerLimit kullanın.

x’in sonsuza yaklaştığı limit

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();
}

Özel bir fonksiyon adı için, fonksiyon adını geçerli öğe yapın:

IMathFunction customFunction = new MathematicalText("f").function("x + 1");

N-ary Operatörler ve İntegraller Ekleme

nary kullanarak toplamlar, birleşimler, kesişimler ve diğer büyük operatörler ekleyin. integral ile integraller ekleyin. Her iki yöntem de alt ve üst limitleri ayarlamanıza olanak tanır.

Alt ve üst limitleri olan bir toplam

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 operatörler, isteğe bağlı limitleri olan büyük operatörler içindir. +, - ve = gibi basit operatörler genellikle MathematicalText olarak eklenir ve ifadeye katılır.

Bir integral için integral kullanın:

IMathBlock integralBase = new MathematicalText("x").join(new MathematicalText("dx").toBox());
IMathNaryOperator integral = integralBase.integral(MathIntegralTypes.Simple, "0", "1");

Matris Ekleme

MathMatrix satır ve sütunlar için kullanılır. Matrisler varsayılan olarak köşeli parantez içermez, bu yüzden parantez, köşeli parantez veya süslü parantez gerektiğinde matrisi dışarı alın.

Bir boş hücresi olan iki satırlı bir matematik matrisi

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();
}

Denklem Dizileri Ekleme

toMathArray kullanarak hizalanmış denklemlere veya dikey bir ifadeler yığınına ihtiyaç duyduğunuzda.

x’in y’nin üstünde olduğu dikey bir matematik dizisi

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();
}

Trigonometrik Fonksiyonlar Ekleme

Argüman geçerli öğe olduğunda ve fonksiyon adı bilindiğinde asArgumentOfFunction kullanın.

cos trigonometrik fonksiyonunun 2x’e uygulanması

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();
}

Alt ve Üst İndis Ekleme

İndeksler ve üsler için alt ve üst indis yardımcılarını kullanın. İndekslerin tabanın sol tarafında görünmesi gerektiğinde setSubSuperscriptOnTheLeft kullanın.

Sol tarafında alt indeks 1 ve üst indeks n olan büyük Y harfi

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();
}

Sınırlayıcılar Ekleme

enclose ile bir ifadeyi sınırlayıcıların içine koyun. Birden çok öğe içeren sınırlayıcı ifadeler için bir ayırıcı karakter de ayarlayabilirsiniz.

x, y ve z’yi dikey çubuklarla ayıran bir sınırlayıcı ifade

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();
}

Kenar Kutusu Ekleme

Denklemin kendisinin çerçevelenmesi gerektiğinde toBorderBox kullanın.

a² = b² + c² gösteren bir kutulu denklem

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();
}

Terimleri Gruplama

Bir ifadeye üstte veya altta bir gruplama karakteri yerleştirmek için group kullanın. Gruplanan terimleri etiketlemek için bir limit ekleyin.

x + y ifadesi altında ‘any text’ etiketiyle gruplandırılmış

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();
}

Matematik Öğelerini Biçimlendirme

Biçimlendirme yardımcılarını yalnızca formülü netleştirdiği durumlarda kullanın. Örneğin, overbar bir matematik öğesinin üzerine bir çubuk yerleştirir.

Üstüne bir çubuk konmuş ABC matematik ifadesi

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();
}

Hızlı Referans

Görev Ana API
Matematik metni oluşturma MathematicalText
Ögeleri birleştirme IMathElement.join
Kesirler oluşturma IMathElement.divide
Üst indeks veya alt indeks ekleme setSuperscript, setSubscript
Fonksiyonlar ekleme function, asArgumentOfFunction
Kökler ekleme IMathElement.radical
Limitler ekleme setLowerLimit, setUpperLimit
Sol taraf indeksleri ekleme setSubSuperscriptOnTheLeft
Toplamları ve integralleri ekleme nary, integral
Matrisler ekleme MathMatrix
Denklem dizileri ekleme toMathArray
Sınırlayıcılar ekleme enclose
Çubuklar ve kenarlıklar ekleme overbar, toBorderBox
Terimleri gruplama group

SSS

Mevcut bir PowerPoint denklemini düzenleyebilir miyim?

Evet. Sunumu açın, bir MathPortion içeren şekli bulun, onun MathParagraph‘ını alın ve o paragraftaki matematik bloklarını güncelleyin.

Denklikler düzenlenebilir PowerPoint matematiği olarak kaydediliyor mu?

Evet. PPTX olarak kaydettiğinizde, Aspose.Slides denklemi düzenlenebilir Office matematik içeriği olarak yazar.

Denklikleri LaTeX’e dışa aktarabilir miyim?

Evet. Denklemin IMathParagraph nesnesini IMathPortion üzerinden alın ve doğrudan dışa aktarmak için IMathParagraph.toLatex metodunu çağırın. Tam bir örnek için, Export Math Equations from Presentations in Java bölümüne bakın.