Matematikai egyenletek hozzáadása PowerPoint prezentációkhoz Java-ban

Áttekintés

A PowerPoint egyenleteket az Office Math Markup Language (OMML) formátumban tárolja. Az Aspose.Slides for Java segítségével programozottan hozhat létre ugyanolyan matematikai tartalmakat: törtek, gyökök, függvények, határok, N-áris operátorok, mátrixok, tömbök és formázott matematikai blokkok.

PowerPoint Beszúrás fül a Képlet parancs kiválasztásával

A PowerPoint dia, amely szerkeszthető matematikai egyenletet tartalmaz:

PowerPoint dia, amely szerkeszthető matematikai egyenletet tartalmaz

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

  • Matematikai alakzat, amelyet a addMathShape segítségével hozunk létre, az az alakzat, amely az egyenletet tartalmazza.
  • MathPortion tárolja a matematikai tartalmat az alakzat szövegkeretében.
  • MathParagraph egy vagy több MathBlock objektumot tartalmaz.

A lenti legtöbb példa 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.

Egyenlet létrehozása

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

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

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

divide használatával hozhatunk létre törteket. A törttípust a MathFractionTypes segítségével választhatja ki.

Eltolódott matematikai tört, amely 1-et oszt x‑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();

    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

radical használatával hozhat négyzetgyököt, köbgyököt vagy más gyököt. A jelenlegi elem lesz az alap, a argumentum pedig a gyök fokszáma.

n‑edik gyök kifejezés, amelyben az x a gyökjel alatt szerepel

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

asArgumentOfFunction vagy function használatával hozhat függvényeket, például sin(x), log(x), vagy egyedi függvényneveket. Határok esetén helyezze a lim-et egy MathLimit objektumba, vagy használja a setLowerLimit-et.

x határértéke, 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ény név esetén tegye a függvény nevet a jelenlegi elemmé:

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

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

nary használata összegeknél, unióknál, metszetknél és más nagy operátoroknál. integral használata integrálokhoz. Mindkét metódus lehetővé teszi a felső és alsó határ megadását.

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

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 +, -, és = általában MathematicalText-ként kerülnek hozzáadásra, és összefűződnek a kifejezésbe.

Integrál esetén 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

MathMatrix használatával sorokat és oszlopokat hozhat létre. A mátrixok alapértelmezés szerint nem tartalmaznak zárójeleket, ezért szükség esetén zárja körül a mátrixot zárójelek, szögletes zárójelek vagy kapcsos zárójelek segítségével.

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és‑veremre van szükség.

Függőleges matematikai tömb, amelyben az x a y fölött van

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, amikor az argumentum a jelenlegi elem, és a függvény neve ismert.

A cos trigonometrikus 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 létrehozásához. Ha az indexnek az alap bal oldalán kell megjelennie, használja a setSubSuperscriptOnTheLeft-et.

Egy nagy Y betű baloldali alsó indexszel 1 és felső indexszel 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

enclose használatával helyezhet egy kifejezést határolók közé. Több elemet tartalmazó határoló kifejezéseknél beállíthat elválasztó karaktert is.

Határoló kifejezés, amely x‑et, y‑t és z‑t tartalmaz, függőleges vonalakkal elválasztva

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

Keretes doboz hozzáadása

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

Keretes egyenlet, amely a a² = b² + c²-t mutatja

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

Kifejezések csoportosítása

group használatával helyezhet csoportosító karaktert egy kifejezés fölé vagy alá. Hozzon létre határt a csoportosított kifejezések címkézéséhez.

Az x + y kifejezés csoportosítva, alatta egy tetszőleges szöveges 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

A formázó segédfüggvényeket csak akkor használja, ha a képletet egyértelműbbé teszik. Például az overbar egy vonalat helyez egy matematikai elem fölé.

ABC matematikai kifejezés overbarral

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 egyesítése 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
Összegek é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
Vonalak és keretek hozzáadása overbar, toBorderBox
Kifejezések csoportosítása group

GYIK

Szerkeszthetek meglévő PowerPoint egyenletet?

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

Az egyenletek szerkeszthető PowerPoint matematikaként vannak mentve?

Igen. PPTX formátumba mentéskor az Aspose.Slides az egyenletet szerkeszthető Office matematikai tartalomként írja.

Exportálhatok egyenleteket LaTeX‑be?

Igen. Szerezze meg az egyenlet IMathParagraph objektumát a IMathPortion‑ból, és hívja meg a IMathParagraph.toLatex metódust a közvetlen exportáláshoz. Teljes példáért lásd a Export Math Equations from Presentations in Java.