Aggiungi equazioni matematiche alle presentazioni PowerPoint in PHP

Panoramica

PowerPoint memorizza le equazioni come Office Math Markup Language (OMML). Con Aspose.Slides for PHP via Java, è possibile creare lo stesso tipo di contenuto matematico in modo programmatico: frazioni, radici, funzioni, limiti, operatori N-ari, matrici, array e blocchi matematici formattati.

In PowerPoint, gli utenti normalmente aggiungono equazioni da Inserisci > Equazione:

Scheda Inserisci di PowerPoint con il comando Equazione selezionato

Il risultato è testo matematico modificabile sulla diapositiva:

Diapositiva PowerPoint contenente un’equazione matematica modificabile

Aspose.Slides costruisce quel testo matematico attraverso tre oggetti principali:

  • Una forma matematica, creata con addMathShape, è la forma che contiene l’equazione.
  • MathPortion memorizza il contenuto matematico all’interno del riquadro di testo della forma.
  • MathParagraph contiene uno o più oggetti MathBlock.

La maggior parte degli esempi seguenti utilizza MathematicalText e i metodi fluenti di MathElementBase per mantenere il codice breve e leggibile.

Per scenari di esportazione MathML, vedere Esporta equazioni matematiche da presentazioni in PHP via Java.

Crea un’equazione

Questo esempio crea una forma matematica e aggiunge il teorema di Pitagora:

L’equazione c al quadrato uguale a a al quadrato più b al quadrato

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

Aggiungi frazioni

Usa divide per creare una frazione. È possibile scegliere uno stile di frazione con MathFractionTypes.

Una frazione matematica inclinata che mostra uno diviso per x

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

Per una frazione impilata, usa MathFractionTypes::Bar:

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

Aggiungi radicali

Usa radical per creare una radice quadrata, cubica o altra radice. L’elemento corrente diventa la base e l’argomento diventa il grado.

Un’espressione radicale di radice n-esima con x sotto il segno radicale

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

Aggiungi funzioni e limiti

Usa asArgumentOfFunction o function per funzioni come sin(x), log(x) o nomi di funzione personalizzati. Per i limiti, inserisci lim in un MathLimit o usa setLowerLimit.

Il limite di x mentre x tende all’infinito

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

Per un nome di funzione personalizzato, rendi il nome della funzione l’elemento corrente:

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

Aggiungi operatori N-ari e integrali

Usa nary per sommatorie, unioni, intersezioni e altri grandi operatori. Usa integral per gli integrali. Entrambi i metodi consentono di impostare i limiti inferiore e superiore.

Una sommatoria con limiti inferiore e superiore

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

Gli operatori N-ari sono per grandi operatori con limiti opzionali. Operator semplici come +, - e = sono solitamente aggiunti come MathematicalText e uniti nell’espressione.

Per un integrale, usa integral:

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

Aggiungi matrici

Usa MathMatrix per righe e colonne. Le matrici non includono parentesi quadre per impostazione predefinita, quindi racchiudi la matrice quando ti servono parentesi tonde, quadre o graffe.

Una matrice matematica a due righe con una cella vuota

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

Aggiungi array di equazioni

Usa toMathArray quando ti servono equazioni allineate o una pila verticale di espressioni.

Un array matematico verticale con x sopra y

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

Aggiungi funzioni trigonometriche

Usa asArgumentOfFunction quando l’argomento è l’elemento corrente e il nome della funzione è noto.

La funzione trigonometrica cos applicata a 2x

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

Aggiungi pedici e esponenti

Usa gli assistenti per pedici ed esponenti per indici e potenze. Quando gli indici devono apparire sul lato sinistro della base, usa setSubSuperscriptOnTheLeft.

Una Y maiuscola con pedice sinistro 1 ed esponente n

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

Aggiungi delimitatori

Usa enclose per inserire un’espressione all’interno di delimitatori. È anche possibile impostare un carattere separatore per le espressioni delimitate che contengono più elementi.

Un’espressione delimitata contenente x, y e z separati da barre verticali

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

Aggiungi una casella bordata

Usa toBorderBox quando l’equazione stessa deve essere incorniciata.

Un’equazione racchiusa che mostra a al quadrato uguale a b al quadrato più c al quadrato

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

Raggruppa termini

Usa group per posizionare un carattere di raggruppamento sopra o sotto un’espressione. Aggiungi un limite per etichettare i termini raggruppati.

L’espressione x più y raggruppata con l’etichetta qualsiasi testo sotto di essa

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

Formatta elementi matematici

Usa gli assistenti di formattazione solo dove chiariscono la formula. Ad esempio, overbar posiziona una barra sopra un elemento matematico.

Un’espressione matematica ABC con una barra sopra

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

Riferimento rapido

Attività Main API
Crea testo matematico MathematicalText
Combina elementi join
Crea frazioni divide
Aggiungi apice o pedice setSuperscript, setSubscript
Aggiungi funzioni function, asArgumentOfFunction
Aggiungi radicali radical
Aggiungi limiti setLowerLimit, setUpperLimit
Aggiungi script lato sinistro setSubSuperscriptOnTheLeft
Aggiungi sommatorie e integrali nary, integral
Aggiungi matrici MathMatrix
Aggiungi array di equazioni toMathArray
Aggiungi delimitatori enclose
Aggiungi barre e bordi overbar, toBorderBox
Raggruppa termini group

FAQ

Posso modificare un’equazione PowerPoint esistente?

Sì. Apri la presentazione, trova la forma che contiene un MathPortion, ottieni il suo MathParagraph e aggiorna i blocchi matematici in quel paragrafo.

Le equazioni vengono salvate come matematica PowerPoint modificabile?

Sì. Quando salvi in PPTX, Aspose.Slides scrive l’equazione come contenuto matematico Office modificabile.

Posso esportare le equazioni in LaTeX?

Sì. Ottieni il MathParagraph dell’equazione dal suo MathPortion, e chiama MathParagraph::toLatex per esportarlo direttamente. Per un esempio completo, vedere Esporta equazioni matematiche da presentazioni in PHP via Java.