Renderuj formuły i równania matematyczne LaTeX w Javie

W pliku TeX możemy osadzać formuły i równania matematyczne. LaTeX używa pliku TeX jako dokumentu źródłowego zawierającego zestaw poleceń. Te polecenia określają format dokumentu, w tym tekst, symbole, wyrażenia matematyczne i grafikę. Możemy pisać i renderować wszelkiego rodzaju równania i formuły matematyczne programowo, bez użycia LaTeX. W tym artykule dowiesz się, jak renderować formuły matematyczne LaTeX i równania w Javie.

W tym artykule zostaną omówione następujące tematy:

Java API do renderowania formuł i równań matematycznych LaTeX

Do renderowania formuł matematycznych LaTeX będziemy używać API Aspose.TeX for Java. Zapewnia klasę PngMathRendererOptions do określania opcji renderowania w celu zapisania formuły Math jako PNG. Podobnie udostępnia również klasę SvgMathRendererOptions do określania opcji renderowania w celu zapisania formuły Math jako SVG. Ponadto do renderowania formuł matematycznych udostępnia klasy PngMathRenderer i SvgMathRenderer pochodzące z klasy MathRenderer. Metoda render() tej klasy renderuje podaną formułę matematyczną. Ponadto interfejs API umożliwia również skład plików TeX do różnych formatów plików, takich jak PDF, XPS lub obrazów.

Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej 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>

Renderuj formuły matematyczne LaTeX jako PNG przy użyciu Javy

Możemy renderować proste wbudowane formuły matematyczne lub równania, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy PngMathRendererOptions.
  2. Następnie określ obraz rozdzielczości, na przykład 150 DPI.
  3. Następnie określ preambułę dokumentu LaTeX.
  4. Opcjonalnie ustaw różne właściwości, takie jak Scale, TextColor, BackgroundColor itp.
  5. Następnie utwórz strumień wyjściowy dla obrazu formuły.
  6. Na koniec wywołaj metodę render(), aby wyrenderować formułę. Jako argumenty przyjmuje ciąg formuły, strumień, opcje renderowania i rozmiar obrazu wyjściowego.

Poniższy przykładowy kod pokazuje, jak programowo renderować formułę matematyczną jako plik PNG przy użyciu języka Java.

// Ten przykład kodu pokazuje, jak renderować formuły matematyczne i równania w formacie PNG
// Utwórz opcje renderowania PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Określ rozdzielczość obrazu 150 dpi
options.setResolution(150);

// Określ preambułę.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Określ współczynnik skalowania 300%.
options.setScale(3000);

// Określ kolor pierwszego planu.
options.setTextColor(Color.BLACK);

// Określ kolor tła.
options.setBackgroundColor(Color.WHITE);

// Określ strumień wyjściowy dla pliku dziennika.
options.setLogStream(new ByteArrayOutputStream());

// Określ, czy wyświetlać wyjście terminala na konsoli, czy nie.
options.showTerminal(true);

// Zmienna, w której zostaną zapisane wymiary obrazu wynikowego.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Utwórz strumień wyjściowy dla obrazu formuły.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

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

// Pokaż inne wyniki.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderuj formuły matematyczne LaTeX jako PNG przy użyciu Javy.

Renderuj formuły matematyczne LaTeX jako PNG przy użyciu Javy

Renderowanie złożonych równań przy użyciu języka Java

Możemy renderować dowolne złożone równania lub formuły, wykonując kroki wymienione wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

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);
Renderowanie złożonych równań przy użyciu języka Java

Renderowanie złożonych równań przy użyciu języka Java

Wyświetl długie równania przy użyciu języka Java

Możemy wyświetlać długie równania w wielu wierszach, wykonując czynności wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

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); 
Wyświetl długie równania przy użyciu języka Java.

Wyświetl długie równania przy użyciu języka Java.

Wyrównaj kilka równań za pomocą Java

Możemy również wyrównywać i renderować kilka równań lub formuł jednocześnie, wykonując czynności wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

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);
Wyrównaj kilka równań za pomocą języka Java.

Wyrównaj kilka równań za pomocą Java.

Równania grupowe i środkowe przy użyciu języka Java

Możemy grupować i wyśrodkować wiele równań podczas renderowania, wykonując czynności wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Równania grupowe i środkowe przy użyciu języka Java.

Równania grupowe i środkowe przy użyciu języka Java.

Renderuj nawiasy i nawiasy przy użyciu języka Java

Możemy również renderować nawiasy i nawiasy, wykonując czynności wymienione wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Renderuj nawiasy i nawiasy przy użyciu języka Java.

Renderuj nawiasy i nawiasy przy użyciu języka Java.

Macierze w LaTeX-u z wykorzystaniem Javy

Podobnie możemy renderować macierze, wykonując kroki wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

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);
Macierze w LaTeX-u z wykorzystaniem Javy.

Macierze w LaTeX-u z wykorzystaniem Javy.

Renderuj ułamki i dwumiany przy użyciu języka Java

Możemy również renderować ułamki zwykłe i dwumiany, wykonując kroki wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Renderuj ułamki i dwumiany przy użyciu języka Java.

Renderuj ułamki i dwumiany przy użyciu języka Java.

Operatory matematyczne w LaTeX-u przy użyciu Javy

Symbole operatorów matematycznych reprezentują różne funkcje matematyczne, takie jak log, cos, sin itp. Możemy renderować funkcje trygonometryczne i logarytmy w LaTeX, wykonując kroki wspomniane wcześniej. Jednak musimy tylko ustawić ciąg formuły w kroku nr 5, jak pokazano poniżej:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Operatory matematyczne w LaTeX-u przy użyciu Javy.

Operatory matematyczne w LaTeX-u przy użyciu Javy.

Renderuj formuły matematyczne LaTeX w SVG przy użyciu Javy

Możemy również zapisać wyrenderowane formuły matematyczne lub równania w formacie obrazu SVG, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy SvgMathRendererOptions.
  2. Następnie określ preambułę dokumentu LaTeX.
  3. Opcjonalnie ustaw różne właściwości, takie jak Scale, TextColor, BackgroundColor itp.
  4. Następnie utwórz strumień wyjściowy dla obrazu formuły.
  5. Na koniec wywołaj metodę render(), aby wyrenderować formułę. Jako argumenty przyjmuje ciąg formuły, strumień, opcje renderowania i rozmiar obrazu wyjściowego.

Poniższy przykładowy kod pokazuje, jak renderować formułę matematyczną w obrazie SVG przy użyciu języka Java.

// Ten przykład kodu pokazuje, jak renderować formuły matematyczne i równania jako SVG
// Utwórz opcje renderowania SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Określ preambułę.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Określ współczynnik skalowania 300%.
options.setScale(3000);

// Określ kolor pierwszego planu.
options.setTextColor(Color.BLACK);

// Określ kolor tła.
options.setBackgroundColor(Color.WHITE);

// Określ strumień wyjściowy dla pliku dziennika.
options.setLogStream(new ByteArrayOutputStream());

// Określ, czy wyświetlać wyjście terminala na konsoli, czy nie.
options.showTerminal(true);

// Zmienna, w której zostaną zapisane wymiary obrazu wynikowego.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Utwórz strumień wyjściowy dla obrazu formuły.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Renderuj 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);

// Pokaż inne wyniki.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Renderuj formuły matematyczne LaTeX w SVG przy użyciu Javy.

Renderuj formuły matematyczne LaTeX w SVG przy użyciu Javy.

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • renderować proste i złożone formuły i równania matematyczne w Javie;
  • programowo wyrównywać i grupować równania;
  • renderowanie macierzy, nawiasów, nawiasów, ułamków zwykłych i dwumianów;
  • zapisz wyrenderowane obrazy formuł w formacie PNG lub SVG przy użyciu języka Java.

Poza tym możesz dowiedzieć się więcej o Aspose.TeX for Java API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też