Matematika egyenletek hozzáadása PowerPoint előadásokhoz Java-ban

Áttekintés

A PowerPoint egyenleteket az Office Math Markup Language (OMML) formátumban tárolja. Az Aspose.Slides for Java-val programozottan hozhat létre ugyanolyan matematikai tartalmakat: törtöket, gyököket, függvényeket, határokat, N-áris operátorokat, mátrixokat, tömböket és formázott matematikai blokkokat.

PowerPointban a felhasználók általában a Insert > Equation menüből adnak hozzá egyenleteket:

PowerPoint Insert lap az Equation parancs kiválasztva

Az eredmény szerkeszthető matematikai szöveg a dián:

PowerPoint dia szerkeszthető matematikai egyenlettel

Az Aspose.Slides három fő objektumon keresztül építi fel ezt a matematikai szöveget:

  • Egy matematikai alakzat, amelyet az addMathShape hívással hozunk létre, az az alakzat, amely tartalmazza az egyenletet.
  • A MathPortion tárolja a matematikai tartalmat az alakzat szövegkeretében.
  • A MathParagraph egy vagy több MathBlock objektumot tartalmaz.

Az alábbi példák többsége a MathematicalText és az IMathElement folyékony metódusait használja a kód rövid és olvasható tartásához.

MathML export esetén lásd a Export Math Equations from Presentations in Java oldalt.

Egyenlet létrehozása

Ez a példa egy matematikai alakzatot hoz létre, és hozzáadja a Pitagorasz-tételt:

A c négyzet egyenlő a a négyzet plusz b négyzet egyenlet

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

Törtek hozzáadása

Használja a divide függvényt tört létrehozásához. A tört stílusát a MathFractionTypes segítségével választhatja ki.

Dőlt tört, amely egyet oszt el x‑szel

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

Halmozott tört esetén használja a MathFractionTypes.Bar‑t:

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

Gyökök hozzáadása

Használja a radical függvényt négyzetgyök, köbgyök vagy más gyök létrehozásához. A jelenlegi elem lesz az alap, az argumentum pedig a kitevő.

n-edik gyök x‑szel a gyökjel alatt

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

Függvények és határok hozzáadása

Használja az asArgumentOfFunction vagy a function metódust olyan függvényekhez, mint a sin(x), log(x) vagy egyedi függvénynevek. Határokhoz helyezze a lim‑et egy MathLimit‑ba, vagy használja a setLowerLimit‑et.

Az x határa, amikor x a végtelen felé tart

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

Egyedi függvénynév esetén tegye a függvény nevét a jelenlegi elemévé:

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

N-áris operátorok és integrálok hozzáadása

Használja az nary‑t összegzésekhez, uniókhoz, metszetekhez és más nagy operátorokhoz. Az integral‑t integrálokhoz. Mindkét metódus lehetővé teszi a alsó és felső határ beállítását.

Összegzés alsó és felső határral

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

Az N-áris operátorok nagy operátorok opcionális határokkal. Egyszerű operátorok, mint a +, -, és = általában MathematicalText‑ként kerülnek hozzáadásra, és összekapcsolódnak a kifejezésben.

Integrálhoz használja a integral‑t:

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

Mátrixok hozzáadása

Használja a MathMatrix‑t sorok és oszlopok definiálásához. A mátrixok alapból nem tartalmaznak zárójeleket, ezért szükség esetén zárja őket zárójelek, szögletes zárójelek vagy kapcsos zárójelek közé.

Két soros matematikai mátrix egy üres cellával

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

Egyenlet tömbök hozzáadása

Használja a toMathArray‑t, ha igazított egyenletekre vagy függőleges kifejezéssorozatra van szükség.

Függőleges matematikai tömb, ahol x az y fölött áll

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

Trigonometrikus függvények hozzáadása

Használja az asArgumentOfFunction‑t, ha az argumentum a jelenlegi elem, és a függvény neve ismert.

A cos függvény alkalmazva 2x‑re

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

Alsó- és felső indexek hozzáadása

Használja az alsó- és felső index segédfüggvényeit indexek és hatványok megadásához. Ha az indexeknek a bázis bal oldalán kell megjelenniük, használja a setSubSuperscriptOnTheLeft‑t.

Nagy Y baloldali alsó index 1 és felső index n

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

Határolók hozzáadása

Használja az enclose‑t egy kifejezés határolók közé helyezéséhez. Szétválasztó karaktert is beállíthat több elemet tartalmazó határoló kifejezésekhez.

Határoló kifejezés, amely x‑et, y‑t és z‑t függőleges vonalakkal választ el

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

Keretezett doboz hozzáadása

Használja a toBorderBox‑t, ha maga az egyenlet keretezve kell legyen.

Dobozba helyezett egyenlet, ahol c négyzet egyenlő b négyzet plusz a négyzet

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

Tagok csoportosítása

Használja a group‑ot, hogy egy csoportosító karaktert helyezzen az egy kifejezés fölé vagy alá. Címkézze a csoportosított tagokat egy határral.

x + y kifejezés csoportosítva, alatta egy tetszőleges szöveg címkével

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

Matematikai elemek formázása

Csak ott használja a formázó segédfüggvényeket, ahol azok tisztábbá teszik a képletet. Például az overbar vonalat helyez egy matematikai elem fölé.

ABC matematikai kifejezés overbar‑ral

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

Gyors referencia

Feladat Fő API
Matematikai szöveg létrehozása MathematicalText
Elemek kombinálása IMathElement.join
Törtek létrehozása IMathElement.divide
Felső- vagy alsó index hozzáadása setSuperscript, setSubscript
Függvények hozzáadása function, asArgumentOfFunction
Gyökök hozzáadása IMathElement.radical
Határok hozzáadása setLowerLimit, setUpperLimit
Baloldali indexek hozzáadása setSubSuperscriptOnTheLeft
Összegzések és integrálok hozzáadása nary, integral
Mátrixok hozzáadása MathMatrix
Egyenlet tömbök hozzáadása toMathArray
Határolók hozzáadása enclose
Vízszintes vonalak és keretek overbar, toBorderBox
Tagok csoportosítása group

GYIK

Szerkeszthetem a meglévő PowerPoint egyenletet?

Igen. Nyissa meg a prezentációt, keresse meg azt az alakzatot, amelyik MathPortion‑t tartalmaz, szerezze meg a MathParagraph‑ját, és frissítse a benne lévő matematikai blokkokat.

Az egyenletek szerkeszthető PowerPoint matematikaként kerülnek mentésre?

Igen. PPTX mentésekor az Aspose.Slides az egyenletet szerkeszthető Office Math tartalomként írja ki.

Exportálhatom az egyenleteket LaTeX‑be?

Az Aspose.Slides a matematikai egyenleteket MathML‑be exportálja. Ha LaTeX‑re van szüksége, először exportáljon MathML‑be, majd konvertálja a MathML‑t egy olyan eszközzel, amely támogatja a kívánt LaTeX dialektust.