Matematikai egyenletek hozzáadása PowerPoint prezentációkhoz PHP-ben

Áttekintés

A PowerPoint egyenleteket Office Math Markup Language (OMML) formátumban tárolja. Az Aspose.Slides for PHP via Java segítségével programozottan hozhat létre ugyanilyen matematikai tartalmakat: törtöket, gyököket, függvényeket, határokat, N-áramú operátorokat, mátrixokat, tömböket és formázott matematikai blokkokat.

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

PowerPoint Insert lap, ahol a Equation parancs ki van választva

Az eredmény egy 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:

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

Az alábbi legtöbb példában a MathematicalText és a MathElementBase folyékony metódusait használjuk a kód rövid és olvasható tartásához.

MathML export esetén lásd a Egyenletek exportálása a prezentációkból PHP-n keresztül Java-val.

Egyenlet létrehozása

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

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $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 {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Törtek hozzáadása

divide használatával hozhat létre törtet. A tört stílusát a MathFractionTypes segítségével választhatja ki.

Súlyozott matematikai tört, amely egyet oszt x-szel

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $fraction = (new MathematicalText("1"))
        - >divide("x", MathFractionTypes::Skewed);

    $mathParagraph->add(new MathBlock($fraction));

    $presentation->save("fraction.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Összeillesztett tört esetén használja a MathFractionTypes::Bar-t:

$stackedFraction = (new MathematicalText("x + 1"))->divide("y - 1", MathFractionTypes::Bar);

Gyökök hozzáadása

radical használatával hozhat létre négyzetgyököt, köbgyököt vagy egyéb gyököt. Az aktuális elem lesz az alap, a argumentum pedig a fok.

n-dik gyök kifejezés, ahol x a gyökjel alatt

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $radical = (new MathematicalText("x"))
        - >radical("n");

    $mathParagraph->add(new MathBlock($radical));

    $presentation->save("radical.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

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

asArgumentOfFunction vagy function használatával hozzáadhat 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‑ba, vagy használja a setLowerLimit‑t.

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $limit = (new MathematicalText("lim"))
        - >setLowerLimit("x\u{2192}\u{221E}")
        - >function("x");

    $mathParagraph->add(new MathBlock($limit));

    $presentation->save("functions-and-limits.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Egyedi függvénynév esetén tegye a függvénynevet az aktuális elemmé:

$customFunction = (new MathematicalText("f"))->function("x + 1");

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

nary használatával összegeket, uniókat, metszeteket és egyéb nagy operátorokat adhat meg. Az integrálokhoz használja a integral‑t. Mindkét metódus lehetővé teszi a alsó és felső határ beállítását.

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $summationBase = (new MathematicalText("x"))
        - >setSuperscript("k")
        - >join((new MathematicalText("a"))->setSuperscript("n-k"));

    $summation = $summationBase->nary(MathNaryOperatorTypes::Summation, "k=0", "n");

    $mathParagraph->add(new MathBlock($summation));

    $presentation->save("nary-operators.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Az N-áramú 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 csatlakoznak a kifejezéshez.

Integrál esetén használja a integral‑t:

$integralBase = (new MathematicalText("x"))->join((new MathematicalText("dx"))->toBox());
$integral = $integralBase->integral(MathIntegralTypes::Simple, "0", "1");

Mátrixok hozzáadása

A sorok és oszlopok kezeléséhez használja a MathMatrix‑t. A mátrixok alapértelmezés szerint nem tartalmaznak zárójeleket, ezért ha zárójelekre, szögletes zárójelekre vagy kapcsos zárójelekre van szükség, vonja be a mátrixot.

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $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 {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Egyenlet tömbök hozzáadása

toMathArray használatával igazított egyenleteket vagy függőleges kifejezéstömböt hozhat létre.

Függőleges matematikai tömb, x a y felett

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 140);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $equationArray = (new MathematicalText("x"))
        - >join("y")
        - >toMathArray();

    $mathParagraph->add(new MathBlock($equationArray));

    $presentation->save("equation-array.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Trigonometrikus függvények hozzáadása

asArgumentOfFunction használatával, ha az argumentum az aktuális elem és a függvény neve ismert.

A trigonometrikus cos függvény alkalmazva 2x-re

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $cosine = (new MathematicalText("2x"))
        - >asArgumentOfFunction(MathFunctionsOfOneArgument::Cos);

    $mathParagraph->add(new MathBlock($cosine));

    $presentation->save("trigonometric-function.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

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

Az indexek és hatványok hozzáadásához használja az alsó- és felső index segédprogramokat. Ha az indexeknek az alap bal oldalán kell megjelenniük, használja a setSubSuperscriptOnTheLeft‑t.

Nagy Y bal oldali alsó index 1-gyel és felső index n-vel

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $scripts = (new MathematicalText("Y"))
        - >setSubSuperscriptOnTheLeft("1", "n");

    $mathParagraph->add(new MathBlock($scripts));

    $presentation->save("subscript-superscript.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Határolók hozzáadása

enclose használatával helyezhet kifejezést határolók közé. Szétválasztó karaktert is beállíthat olyan határolók kifejezéseknél, amelyek több elemet tartalmaznak.

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $delimiter = (new MathematicalText("x"))
        - >join("y")
        - >join("z")
        - >enclose(new Java("java.lang.Character", "<"), new Java("java.lang.Character", ">"));
    $delimiter->setSeparatorCharacter(new Java("java.lang.Character", "|"));

    $mathParagraph->add(new MathBlock($delimiter));

    $presentation->save("delimiters.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Keretezett doboz hozzáadása

toBorderBox használatával, ha magát az egyenletet keretbe szeretné helyezni.

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

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $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 {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Kifejezések csoportosítása

group használatával helyezhet csoportosító karaktert egy kifejezés fölé vagy alá. Határ megadásával címkézheti a csoportosított elemeket.

Az x plusz y kifejezés csoportosítva, a címke bármilyen szöveg alatta

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $grouped = (new MathematicalText("x + y"))
        - >group(new Java("java.lang.Character", "\u{23DF}"), MathTopBotPositions::Bottom, MathTopBotPositions::Top)
        - >setLowerLimit("any text");

    $mathParagraph->add(new MathBlock($grouped));

    $presentation->save("grouped-terms.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Matematikai elemek formázása

Csak ott használjon formázó segédprogramokat, ahol a képletet tisztábbá teszik. Például a overbar egy vonalat helyez a matematikai elem fölé.

Matematikai kifejezés ABC egy vonallal a fölött

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);

    $mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
    $mathParagraph = $mathShape->getTextFrame()->getParagraphs()
        - >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();

    $overbar = (new MathematicalText("ABC"))->overbar();

    $mathParagraph->add(new MathBlock($overbar));

    $presentation->save("overbar.pptx", SaveFormat::Pptx);
} finally {
    if (!java_is_null($presentation)) {
        $presentation->dispose();
    }
}

Gyors referencia

Feladat Fő API
Matematikai szöveg létrehozása MathematicalText
Elemek kombinálása join
Törtek létrehozása divide
Felső- vagy alsó index hozzáadása setSuperscript, setSubscript
Függvények hozzáadása function, asArgumentOfFunction
Gyökök hozzáadása radical
Határok hozzáadása setLowerLimit, setUpperLimit
Baloldali indexek hozzáadása setSubSuperscriptOnTheLeft
Összegeket és integrálokat 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 matematikaként írja.

Exportálhatok egyenleteket LaTeX formátumba?

Igen. Szerezze meg az egyenlet MathParagraph objektumát a MathPortion‑ból, és hívja a MathParagraph::toLatex metódust a közvetlen exportáláshoz. Egy teljes példáért lásd az Egyenletek exportálása a prezentációkból PHP-n keresztül Java-val oldalt.