Renderujte matematické vzorce a rovnice LaTeXu v Javě

Vzorce a matematické rovnice můžeme vložit do souboru TeX. LaTeX používá soubor TeX jako zdrojový dokument, který obsahuje sadu příkazů. Tyto příkazy určují formát dokumentu, včetně textu, symbolů, matematických výrazů a grafiky. Můžeme psát a vykreslovat jakýkoli druh rovnic a matematických vzorců programově bez použití LaTeXu. V tomto článku se dozvíte, jak vykreslit matematické vzorce a rovnice LaTeXu v Javě.

V tomto článku se budou zabývat následujícími tématy:

Java API pro vykreslování matematických vzorců a rovnic LaTeXu

Pro vykreslování matematických vzorců LaTeXu budeme používat API Aspose.TeX for Java. Poskytuje třídu PngMathRendererOptions pro specifikaci možností vykreslování pro uložení vzorce Math jako PNG. Podobně také poskytuje třídu SvgMathRendererOptions pro specifikaci možností vykreslování pro uložení vzorce Math jako SVG. Navíc pro vykreslování matematických vzorců poskytuje třídy PngMathRenderer a SvgMathRenderer odvozené od třídy MathRenderer. Metoda render() této třídy vykreslí poskytnutý matematický vzorec. Kromě toho API také umožňuje sazbu souborů TeX do různých formátů souborů, jako je PDF, XPS nebo obrázky.

Prosím buď stáhněte JAR API, nebo přidejte následující konfiguraci pom.xml do Java aplikace založené na Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>22.4</version>
    <type>jar</type>
</dependency>

Renderujte matematické vzorce LaTeXu jako PNG pomocí Java

Pomocí následujících kroků můžeme vykreslit jednoduché vložené matematické vzorce nebo rovnice:

  1. Nejprve vytvořte instanci třídy PngMathRendererOptions.
  2. Dále zadejte obrázek rozlišení, například 150 DPI.
  3. Poté zadejte preambuli dokumentu LaTeX.
  4. Volitelně nastavte různé vlastnosti, jako je Scale, TextColor, BackgroundColor atd.
  5. Poté vytvořte výstupní proud pro obraz vzorce.
  6. Nakonec zavolejte metodu render() k vykreslení vzorce. Jako argumenty bere řetězec vzorce, proud, možnosti vykreslování a velikost výstupního obrázku.

Následující ukázka kódu ukazuje, jak vykreslit matematický vzorec jako PNG programově pomocí Java.

// Tento příklad kódu ukazuje, jak vykreslit matematické vzorce a rovnice jako PNG
// Vytvořte možnosti vykreslování PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Zadejte rozlišení obrázku 150 dpi
options.setResolution(150);

// Upřesněte preambuli.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Určete faktor měřítka 300 %.
options.setScale(3000);

// Určete barvu popředí.
options.setTextColor(Color.BLACK);

// Určete barvu pozadí.
options.setBackgroundColor(Color.WHITE);

// Zadejte výstupní proud pro soubor protokolu.
options.setLogStream(new ByteArrayOutputStream());

// Určete, zda chcete zobrazit výstup terminálu na konzole nebo ne.
options.showTerminal(true);

// Proměnná, do které se budou zapisovat rozměry výsledného obrázku.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Vytvořte výstupní proud pro obrázek vzorce.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

// Vykreslit jako PNG
PngMathRenderer mathRenderer = new PngMathRenderer();
mathRenderer.render("This is a sample formula $f(x) = x^2$ example.", stream, options, size);

// Zobrazit další výsledky.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderujte matematické vzorce LaTeXu jako PNG pomocí Java.

Renderujte matematické vzorce LaTeXu jako PNG pomocí Java

Vykreslování komplexních rovnic pomocí Java

Podle výše uvedených kroků můžeme vykreslit jakékoli složité rovnice nebo vzorce. Potřebujeme však pouze nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{equation*}"
		+ "(1+x)^n = 1 + nx + \\frac{n(n-1)}{2!}x^{\\color{red}2}"
		+ "+ \\frac{n(n-1)(n-2)}{3!}x^{\\color{red}3}"
                + "+ \\frac{n(n-1)(n-2)(n-3)}{4!}x^{\\color{red}4}" 
                + "+ \\cdots"
                + "\\end{equation*}", stream, options, size);
Vykreslování komplexních rovnic pomocí Java

Vykreslování komplexních rovnic pomocí Java

Zobrazte dlouhé rovnice pomocí Java

Podle výše uvedených kroků můžeme zobrazit dlouhé rovnice na více řádcích. Potřebujeme však pouze nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{multline*}"
		+ "p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3\\\\"
		+ "- 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3"
		+ "\\end{multline*}", stream, options, size); 
Zobrazte dlouhé rovnice pomocí Java.

Zobrazte dlouhé rovnice pomocí Java.

Zarovnejte několik rovnic pomocí Java

Můžeme také zarovnat a vykreslit několik rovnic nebo vzorců najednou podle výše uvedených kroků. Stačí však nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{align}"
		+ "f(u) & =\\sum_{j=1}^{n} x_jf(u_j)\\\\"
		+ "& =\\sum_{j=1}^{n} x_j \\sum_{i=1}^{m} a_{ij}v_i\\\\"
		+ "& =\\sum_{j=1}^{n} \\sum_{i=1}^{m} a_{ij}x_jv_i"
		+ "\\end{align}", stream, options, size);
Zarovnejte několik rovnic pomocí Java.

Zarovnejte několik rovnic pomocí Java.

Skupinové a středové rovnice pomocí Java

Při vykreslování můžeme seskupit a vycentrovat více rovnic podle výše uvedených kroků. Potřebujeme však pouze nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Skupinové a středové rovnice pomocí Java.

Skupinové a středové rovnice pomocí Java.

Vykreslení závorek a závorek pomocí Java

Můžeme také vykreslit závorky a závorky podle výše uvedených kroků. Stačí však nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Vykreslení závorek a závorek pomocí Java.

Vykreslení závorek a závorek pomocí Java.

Matice v LaTeXu pomocí Java

Podobně můžeme vykreslit matice podle výše uvedených kroků. Potřebujeme však pouze nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\left \\{"
	            + "\\begin{tabular}{ccc}"
	            + "  1 & 4 & 7 \\\\"
	            + "  2 & 5 & 8 \\\\"
	            + "  3 & 6 & 9 "
	            + "\\end{tabular}"
	            + "\\right \\}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Matice v LaTeXu pomocí Java.

Matice v LaTeXu pomocí Java.

Renderujte zlomky a binomy pomocí Java

Můžeme také vykreslit zlomky a dvojčleny podle výše uvedených kroků. Stačí však nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Renderujte zlomky a binomy pomocí Java.

Renderujte zlomky a binomy pomocí Java.

Matematické operátory v LaTeXu pomocí Java

Symboly matematických operátorů reprezentují různé matematické funkce jako log, cos, sin atd. V LaTeXu můžeme vykreslit trigonometrické funkce a logaritmy podle výše uvedených kroků. Potřebujeme však pouze nastavit řetězec vzorce v kroku # 5, jak je uvedeno níže:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Matematické operátory v LaTeXu pomocí Java.

Matematické operátory v LaTeXu pomocí Java.

Renderujte matematické vzorce LaTeXu v SVG pomocí Java

Vykreslené matematické vzorce nebo rovnice můžeme také uložit ve formátu obrázku SVG podle následujících kroků:

  1. Nejprve vytvořte instanci třídy SvgMathRendererOptions.
  2. Dále zadejte preambuli dokumentu LaTeX.
  3. Volitelně nastavte různé vlastnosti, jako je Scale, TextColor, BackgroundColor atd.
  4. Poté vytvořte výstupní proud pro obraz vzorce.
  5. Nakonec zavolejte metodu render() k vykreslení vzorce. Jako argumenty bere řetězec vzorce, proud, možnosti vykreslování a velikost výstupního obrázku.

Následující ukázka kódu ukazuje, jak vykreslit matematický vzorec v obrázku SVG pomocí Java.

// Tento příklad kódu ukazuje, jak vykreslit matematické vzorce a rovnice jako SVG
// Vytvořte možnosti vykreslování SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Upřesněte preambuli.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Určete faktor měřítka 300 %.
options.setScale(3000);

// Určete barvu popředí.
options.setTextColor(Color.BLACK);

// Určete barvu pozadí.
options.setBackgroundColor(Color.WHITE);

// Zadejte výstupní proud pro soubor protokolu.
options.setLogStream(new ByteArrayOutputStream());

// Určete, zda chcete zobrazit výstup terminálu na konzole nebo ne.
options.showTerminal(true);

// Proměnná, do které se budou zapisovat rozměry výsledného obrázku.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Vytvořte výstupní proud pro obrázek vzorce.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Vykreslit jako SVG
SvgMathRenderer mathRenderer = new SvgMathRenderer();
mathRenderer.render("\\begin{equation} \\label{eqn}"
    + "	E = {mc^2}"
    + "	\\end{equation}"
    + " The equation states mass equivalence relationship.", stream, options, size);

// Zobrazit další výsledky.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderujte matematické vzorce LaTeXu v SVG pomocí Java.

Renderujte matematické vzorce LaTeXu v SVG pomocí Java.

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak:

  • vykreslovat jednoduché a složité matematické vzorce a rovnice v Javě;
  • zarovnávat a seskupovat rovnice programově;
  • renderovat matice, závorky, závorky, zlomky a binomy;
  • uložte vykreslené obrázky vzorců v PNG nebo SVG pomocí Java.

Kromě toho se můžete dozvědět více o Aspose.TeX for Java API pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na fóru.

Viz také