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:

Sonuç, slaytta düzenlenebilir matematik metni olur:

Aspose.Slides, bu matematik metnini üç temel nesne aracılığıyla oluşturur:
- Denklik içeren bir matematik şekli, AddMathShape ile oluşturulan şekildir.
- MathPortion şekil metin çerçevesi içinde matematik içeriğini depolar.
- MathParagraph bir veya daha fazla MathBlock nesnesi içerir.
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:

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();
AddMathShape zaten bir matematik paragrafı içeren bir şekil oluşturur. İlk MathPortion öğesine erişin, MathParagraph öğesini alın ve ona matematik blokları ya da matematik öğeleri ekleyin.
Kesir Ekleme
Divide kullanarak bir kesir oluşturun. Bir kesir stilini MathFractionTypes ile seçebilirsiniz.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.