Виводьте математичні формули та рівняння LaTeX у Java

Ми можемо вставляти формули та математичні рівняння у файл TeX. LaTeX використовує файл TeX як вихідний документ, який містить набір команд. Ці команди визначають формат документа, включаючи текст, символи, математичні вирази та графіку. Ми можемо програмно писати та відтворювати будь-які рівняння та математичні формули без використання LaTeX. У цій статті ви дізнаєтесь, як відображати математичні формули та рівняння LaTeX у Java.

У цій статті будуть розглянуті такі теми:

Java API для відтворення математичних формул і рівнянь LaTeX

Для відтворення математичних формул LaTeX ми будемо використовувати Aspose.TeX for Java API. Він надає клас PngMathRendererOptions для визначення параметрів візуалізації для збереження формули Math як PNG. Подібним чином він також надає клас SvgMathRendererOptions для визначення параметрів візуалізації для збереження формули Math як SVG. Крім того, для відтворення математичних формул він надає класи PngMathRenderer і SvgMathRenderer, похідні від класу MathRenderer. Метод render() цього класу відображає надану математичну формулу. Крім того, API також дозволяє набирати файли TeX у різні формати файлів, наприклад PDF, XPS або зображення.

Будь ласка, завантажте JAR API або додайте наступну конфігурацію pom.xml у програму Java на основі 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>

Відтворення математичних формул LaTeX як PNG за допомогою Java

Ми можемо відобразити прості вбудовані математичні формули або рівняння, виконавши наведені нижче дії.

  1. По-перше, створіть екземпляр класу PngMathRendererOptions.
  2. Далі вкажіть [роздільність] зображення 10, наприклад 150 DPI.
  3. Потім вкажіть преамбулу документа LaTeX.
  4. За бажанням установіть різні властивості, наприклад Scale, TextColor, BackgroundColor тощо.
  5. Після цього створіть вихідний потік для зображення формули.
  6. Нарешті, викличте метод render(), щоб відобразити формулу. Він приймає рядок формули, потік, параметри візуалізації та розмір вихідного зображення як аргументи.

У наведеному нижче прикладі коду показано, як програмно відобразити математичну формулу як PNG за допомогою Java.

// Цей приклад коду демонструє, як відобразити математичні формули та рівняння у форматі PNG
// Створіть параметри візуалізації PNG
PngMathRendererOptions options = new PngMathRendererOptions();

// Вкажіть роздільність зображення 150 dpi
options.setResolution(150);

// Укажіть преамбулу.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Вкажіть коефіцієнт масштабування 300%.
options.setScale(3000);

// Вкажіть колір переднього плану.
options.setTextColor(Color.BLACK);

// Вкажіть колір фону.
options.setBackgroundColor(Color.WHITE);

// Укажіть вихідний потік для файлу журналу.
options.setLogStream(new ByteArrayOutputStream());

// Укажіть, чи показувати вихід терміналу на консолі чи ні.
options.showTerminal(true);

// Змінна, в яку будуть записані розміри отриманого зображення.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Створіть вихідний потік для зображення формули.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

// Відобразити як PNG
PngMathRenderer mathRenderer = new PngMathRenderer();
mathRenderer.render("This is a sample formula $f(x) = x^2$ example.", stream, options, size);

// Показати інші результати.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Відтворення математичних формул LaTeX як PNG за допомогою Java.

Відтворення математичних формул LaTeX як PNG за допомогою Java

Відтворення складних рівнянь за допомогою Java

Ми можемо відобразити будь-які складні рівняння чи формули, дотримуючись кроків, згаданих раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

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);
Відтворення складних рівнянь за допомогою Java

Відтворення складних рівнянь за допомогою Java

Відображення довгих рівнянь за допомогою Java

Ми можемо відобразити довгі рівняння в кількох рядках, виконавши кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

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); 
Відображення довгих рівнянь за допомогою Java.

Відображення довгих рівнянь за допомогою Java.

Вирівняйте кілька рівнянь за допомогою Java

Ми також можемо вирівняти та відобразити кілька рівнянь або формул одночасно, виконавши кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

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);
Вирівняйте кілька рівнянь за допомогою Java.

Вирівняйте кілька рівнянь за допомогою Java.

Групування та центрування рівнянь за допомогою Java

Ми можемо групувати та центрувати кілька рівнянь під час візуалізації, виконуючи кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Групування та центрування рівнянь за допомогою Java.

Групування та центрування рівнянь за допомогою Java.

Візуалізуйте дужки та дужки за допомогою Java

Ми також можемо відобразити дужки та квадратні дужки, виконавши кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Візуалізація дужок і дужок за допомогою Java.

Візуалізація дужок і дужок за допомогою Java.

Матриці в LaTeX з використанням Java

Подібним чином ми можемо візуалізувати матриці, виконавши кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

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);
Матриці в LaTeX з використанням Java.

Матриці в LaTeX з використанням Java.

Візуалізуйте дроби та біноми за допомогою Java

Ми також можемо відобразити дроби та біноми, виконавши кроки, згадані раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Візуалізуйте дроби та біноми за допомогою Java.

Візуалізуйте дроби та біноми за допомогою Java.

Математичні оператори в LaTeX з використанням Java

Символи математичних операторів представляють різні математичні функції, такі як log, cos, sin тощо. Ми можемо відобразити тригонометричні функції та логарифми в LaTeX, дотримуючись кроків, згаданих раніше. Однак нам просто потрібно встановити рядок формули на кроці № 5, як показано нижче:

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Математичні оператори в LaTeX з використанням Java.

Математичні оператори в LaTeX з використанням Java.

Візуалізуйте математичні формули LaTeX у SVG за допомогою Java

Ми також можемо зберегти відтворені математичні формули або рівняння у форматі зображення SVG, виконавши наведені нижче дії.

  1. По-перше, створіть екземпляр класу SvgMathRendererOptions.
  2. Далі вкажіть преамбулу документа LaTeX.
  3. За бажанням установіть різні властивості, наприклад Scale, TextColor, BackgroundColor тощо.
  4. Після цього створіть вихідний потік для зображення формули.
  5. Нарешті, викличте метод render(), щоб відобразити формулу. Він приймає рядок формули, потік, параметри візуалізації та розмір вихідного зображення як аргументи.

У наведеному нижче прикладі коду показано, як відобразити математичну формулу в зображенні SVG за допомогою Java.

// Цей приклад коду демонструє, як відобразити математичні формули та рівняння у форматі SVG
// Створення параметрів візуалізації SVG
SvgMathRendererOptions options = new SvgMathRendererOptions();

// Укажіть преамбулу.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// Вкажіть коефіцієнт масштабування 300%.
options.setScale(3000);

// Вкажіть колір переднього плану.
options.setTextColor(Color.BLACK);

// Вкажіть колір фону.
options.setBackgroundColor(Color.WHITE);

// Укажіть вихідний потік для файлу журналу.
options.setLogStream(new ByteArrayOutputStream());

// Укажіть, чи показувати вихід терміналу на консолі чи ні.
options.showTerminal(true);

// Змінна, в яку будуть записані розміри отриманого зображення.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// Створіть вихідний потік для зображення формули.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// Відобразити як 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);

// Показати інші результати.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Візуалізуйте математичні формули LaTeX у SVG за допомогою Java.

Візуалізуйте математичні формули LaTeX у SVG за допомогою Java.

Отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати бібліотеку без оціночних обмежень.

Висновок

У цій статті ми дізналися, як:

  • відображати прості та складні математичні формули та рівняння на Java;
  • вирівнювати та групувати рівняння програмно;
  • візуалізація матриць, круглих дужок, дужок, дробів і біномів;
  • зберегти відтворені зображення формул у PNG або SVG за допомогою Java.

Крім того, ви можете дізнатися більше про Aspose.TeX for Java API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також