C++ ile PowerPoint Sunumlarına Matematik Denklemleri Ekleme

Genel Bakış

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

PowerPoint’te kullanıcılar genellikle denklemleri Ekle > Denklem üzerinden eklerler:

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 üç temel nesne aracılığıyla oluşturur:

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

MathML dışa aktarma senaryoları için, Sunumlardan Matematik Denklemlerini C++ ile Dışa Aktarma bölümüne bakın.

Denklem Oluşturma

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

c kare eşittir a kare artı b kare denklemi

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 120.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto equation = System::MakeObject<MathematicalText>(u"c")
        - >SetSuperscript(u"2")
        - >Join(u"=")
        - >Join(System::MakeObject<MathematicalText>(u"a")->SetSuperscript(u"2"))
        - >Join(u"+")
        - >Join(System::MakeObject<MathematicalText>(u"b")->SetSuperscript(u"2"));

mathParagraph->Add(equation);

presentation->Save(u"pythagorean-theorem.pptx", SaveFormat::Pptx);
presentation->Dispose();

Kesir Ekleme

Divide kullanarak bir kesir oluşturun. Bir kesir stilini MathFractionTypes ile seçebilirsiniz.

x’e bölünmüş bir birim gösteren eğik kesir

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto fraction = System::MakeObject<MathematicalText>(u"1")
        - >Divide(u"x", MathFractionTypes::Skewed);

mathParagraph->Add(System::MakeObject<MathBlock>(fraction));

presentation->Save(u"fraction.pptx", SaveFormat::Pptx);
presentation->Dispose();

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

auto stackedFraction = System::MakeObject<MathematicalText>(u"x + 1")->Divide(u"y - 1", MathFractionTypes::Bar);

Kök Ekleme

Radical kullanarak karekök, küpkök veya başka bir kök oluşturun. Mevcut öğe taban olur, argüman ise derecesi olur.

Kök işareti altında x bulunan n’inci dereceli kök ifadesi

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto radical = System::MakeObject<MathematicalText>(u"x")
        - >Radical(u"n");

mathParagraph->Add(System::MakeObject<MathBlock>(radical));

presentation->Save(u"radical.pptx", SaveFormat::Pptx);
presentation->Dispose();

Fonksiyon ve Limit Ekleme

AsArgumentOfFunction veya Function kullanarak sin(x), log(x) gibi fonksiyonları veya özel fonksiyon adlarını ekleyebilirsiniz. Limitler için lim ifadesini bir MathLimit içine koyun veya SetLowerLimit kullanın.

x’in sonsuza yaklaştıkça limiti

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto limit = System::MakeObject<MathematicalText>(u"lim")
        - >SetLowerLimit(u"x→∞")
        - >Function(u"x");

mathParagraph->Add(System::MakeObject<MathBlock>(limit));

presentation->Save(u"functions-and-limits.pptx", SaveFormat::Pptx);
presentation->Dispose();

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

auto customFunction = System::MakeObject<MathematicalText>(u"f")->Function(u"x + 1");

N-ary Operatörler ve İntegraller Ekleme

Nary toplamalar, birleşimler, kesişimler ve diğer büyük operatörler için kullanılır. Integral integraller için kullanılır. Her iki yöntem de alt ve üst limitleri ayarlamanıza izin verir.

Alt ve üst limitli bir toplam

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 120.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto summationBase = System::MakeObject<MathematicalText>(u"x")
        - >SetSuperscript(u"k")
        - >Join(System::MakeObject<MathematicalText>(u"a")->SetSuperscript(u"n-k"));

auto summation = summationBase->Nary(MathNaryOperatorTypes::Summation, u"k=0", u"n");

mathParagraph->Add(System::MakeObject<MathBlock>(summation));

presentation->Save(u"nary-operators.pptx", SaveFormat::Pptx);
presentation->Dispose();

N-ary operatörler isteğe bağlı limitlerle büyük operatörler içindir. +, - ve = gibi basit operatörler genellikle MathematicalText olarak eklenir ve ifadeye birleştirilir.

Bir integral için, Integral kullanın:

auto integralBase = System::MakeObject<MathematicalText>(u"x")->Join(System::MakeObject<MathematicalText>(u"dx")->ToBox());
auto integral = integralBase->Integral(MathIntegralTypes::Simple, u"0", u"1");

Matris Ekleme

Satır ve sütunlar için MathMatrix kullanın. Matrisler varsayılan olarak parantez içermez, bu yüzden parantez, köşeli parantez veya süslü paranteze ihtiyacınız olduğunda matrisi bunlarla çevreleyin.

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

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 120.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto matrix = System::MakeObject<MathMatrix>(2, 3);
matrix->idx_set(0, 0, System::MakeObject<MathematicalText>(u"1"));
matrix->idx_set(0, 1, System::MakeObject<MathematicalText>(u"x"));
matrix->idx_set(1, 0, System::MakeObject<MathematicalText>(u"x"));
matrix->idx_set(1, 1, System::MakeObject<MathematicalText>(u"2"));
matrix->idx_set(1, 2, System::MakeObject<MathematicalText>(u"y"));

mathParagraph->Add(System::MakeObject<MathBlock>(matrix));

presentation->Save(u"matrix.pptx", SaveFormat::Pptx);
presentation->Dispose();

Denklem Dizileri Ekleme

Hizalanmış denklemler veya dikey bir ifade yığını gerektiğinde ToMathArray kullanın.

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

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 140.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto equationArray = System::MakeObject<MathematicalText>(u"x")
        - >Join(u"y")
        - >ToMathArray();

mathParagraph->Add(System::MakeObject<MathBlock>(equationArray));

presentation->Save(u"equation-array.pptx", SaveFormat::Pptx);
presentation->Dispose();

Trigonometrik Fonksiyonlar Ekleme

Argüman mevcut öğe ve fonksiyon adı biliniyorsa AsArgumentOfFunction kullanın.

2x’e uygulanan cos trigonometrik fonksiyonu

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto cosine = System::MakeObject<MathematicalText>(u"2x")
        - >AsArgumentOfFunction(MathFunctionsOfOneArgument::Cos);

mathParagraph->Add(System::MakeObject<MathBlock>(cosine));

presentation->Save(u"trigonometric-function.pptx", SaveFormat::Pptx);
presentation->Dispose();

Alt ve Üst İndeksler Ekleme

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

Sol tarafta alt indeks 1 ve üst indeks n olan büyük Y

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto scripts = System::MakeObject<MathematicalText>(u"Y")
        - >SetSubSuperscriptOnTheLeft(u"1", u"n");

mathParagraph->Add(System::MakeObject<MathBlock>(scripts));

presentation->Save(u"subscript-superscript.pptx", SaveFormat::Pptx);
presentation->Dispose();

Sınırlayıcılar Ekleme

Bir ifadeyi sınırlayıcıların içine koymak için Enclose kullanın. Birden fazla öğe içeren sınırlayıcı ifadeler için ayrım karakteri de ayarlayabilirsiniz.

x, y ve z’nin dikey çubuklarla ayrıldığı bir sınırlayıcı ifade

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto delimiter = System::MakeObject<MathematicalText>(u"x")
        - >Join(u"y")
        - >Join(u"z")
        - >Enclose(u'<', u'>', u'|');

mathParagraph->Add(System::MakeObject<MathBlock>(delimiter));

presentation->Save(u"delimiters.pptx", SaveFormat::Pptx);
presentation->Dispose();

Kenar Kutusu Ekleme

Denklemin kendisi çerçevelenmesi gerektiğinde ToBorderBox kullanın.

a kare eşittir b kare artı c kare gösteren kutu içinde bir denklem

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto boxedEquation = System::MakeObject<MathematicalText>(u"a")
        - >SetSuperscript(u"2")
        - >Join(u"=")
        - >Join(System::MakeObject<MathematicalText>(u"b")->SetSuperscript(u"2"))
        - >Join(u"+")
        - >Join(System::MakeObject<MathematicalText>(u"c")->SetSuperscript(u"2"))
        - >ToBorderBox();

mathParagraph->Add(System::MakeObject<MathBlock>(boxedEquation));

presentation->Save(u"border-box.pptx", SaveFormat::Pptx);
presentation->Dispose();

Terimleri Gruplama

Group kullanarak bir ifade üzerine veya altına grup karakteri yerleştirin. Gruplanmış terimleri etiketlemek için bir limit ekleyin.

x artı y ifadesi, altına herhangi bir metin etiketi eklenmiş şekilde gruplanmış

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 120.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto grouped = System::MakeObject<MathematicalText>(u"x + y")
        - >Group(u'\u23DF', MathTopBotPositions::Bottom, MathTopBotPositions::Top)
        - >SetLowerLimit(u"any text");

mathParagraph->Add(System::MakeObject<MathBlock>(grouped));

presentation->Save(u"grouped-terms.pptx", SaveFormat::Pptx);
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 ekler.

Üst çubuğu olan ABC matematik ifadesi

auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto mathShape = slide->get_Shapes()->AddMathShape(20.0f, 20.0f, 700.0f, 100.0f);
auto mathPortion = System::ExplicitCast<MathPortion>(mathShape->get_TextFrame()->get_Paragraph(0)->get_Portion(0));
auto mathParagraph = mathPortion->get_MathParagraph();

auto overbar = System::MakeObject<MathematicalText>(u"ABC")->Overbar();

mathParagraph->Add(System::MakeObject<MathBlock>(overbar));

presentation->Save(u"overbar.pptx", SaveFormat::Pptx);
presentation->Dispose();

Hızlı Başvuru

Görev Ana API
Matematik metni oluşturma MathematicalText
Öğeleri birleştirme IMathElement.Join
Kesir oluşturma IMathElement.Divide
Üst indeks veya alt indeks ekleme SetSuperscript, SetSubscript
Fonksiyon ekleme Function, AsArgumentOfFunction
Kök ekleme IMathElement.Radical
Limit ekleme SetLowerLimit, SetUpperLimit
Sol taraftaki indeksleri ekleme SetSubSuperscriptOnTheLeft
Toplamlar ve integraller ekleme Nary, Integral
Matris ekleme MathMatrix
Denklem dizileri ekleme ToMathArray
Sınırlayıcı ekleme Enclose
Çubuk ve kenar ekleme Overbar, ToBorderBox
Terimleri gruplama Group

SSS

Var olan bir PowerPoint denklemini düzenleyebilir miyim?

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

Denekler düzenlenebilir PowerPoint matematiği olarak kaydedilir mi?

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

Denekleri LaTeX’e dışa aktarabilir miyim?

Aspose.Slides matematik denklemlerini MathML olarak dışa aktarır. LaTeX’e ihtiyacınız varsa, önce MathML’ye dışa aktarın ve ardından hedef LaTeX dialektinizi destekleyen bir araçla MathML’yi dönüştürün.