Мы можем вставлять формулы и математические уравнения в файл TeX. LaTeX использует файл TeX как исходный документ, содержащий набор команд. Эти команды задают формат документа, включая текст, символы, математические выражения и графику. Мы можем программно писать и отображать любые уравнения и математические формулы без использования LaTeX. В этой статье вы узнаете, как отображать математические формулы и уравнения LaTeX в Java.
В этой статье должны быть раскрыты следующие темы:
- Java API для рендеринга математических формул и уравнений LaTeX
- Рендеринг математических формул LaTeX в формате PNG
- Рендеринг сложных уравнений
- Отображение длинных уравнений
- Выровняйте несколько уравнений
- Групповые и центральные уравнения
- Рендеринг скобок и квадратных скобок
- Матрицы в LaTeX
- Рендеринг дробей и биномов
- Математические операторы в LaTeX
- Рендеринг математических формул LaTeX в виде SVG
Java API для рендеринга математических формул и уравнений LaTeX
Для рендеринга математических формул LaTeX мы будем использовать API Aspose.TeX for Java. Он предоставляет класс PngMathRendererOptions для указания параметров рендеринга для сохранения математической формулы в формате PNG. Точно так же он также предоставляет класс SvgMathRendererOptions для указания параметров рендеринга для сохранения математической формулы в виде 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
Мы можем визуализировать простые встроенные математические формулы или уравнения, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса PngMathRendererOptions.
- Далее укажите изображение разрешение, например 150 DPI.
- Затем укажите преамбулу документа LaTeX.
- При желании установите различные свойства, такие как Scale, TextColor, BackgroundColor и т. д.
- После этого создайте поток вывода для изображения формулы.
- Наконец, вызовите метод 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());
Рендеринг сложных уравнений с использованием 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
Мы можем отобразить длинные уравнения на нескольких строках, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить строку формулы на шаге № 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
Мы также можем выровнять и визуализировать несколько уравнений или формул одновременно, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить строку формулы на шаге № 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
Мы можем сгруппировать и центрировать несколько уравнений во время рендеринга, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить строку формулы на шаге № 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
Мы также можем визуализировать круглые скобки и квадратные скобки, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить строку формулы на шаге № 5, как показано ниже:
mathRenderer.render("\\begin{document}"
+ "\["
+ " \\left[ \\frac{ N } { \\left( \\frac{L}{p} \\right) - (m+n) } \\right]"
+ "\]"
+ "\\end{document}", stream, options, size);
Матрицы в 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);
Рендеринг дробей и биномов с использованием Java
Мы также можем отображать дроби и двучлены, следуя шагам, упомянутым ранее. Однако нам просто нужно установить строку формулы на шаге № 5, как показано ниже:
mathRenderer.render("\\begin{document}"
+ "\["
+ "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
+ "\]"
+ "\\end{document}", stream, options, size);
Математические операторы в 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 в SVG с использованием Java
Мы также можем сохранить визуализированные математические формулы или уравнения в формате изображения SVG, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса SvgMathRendererOptions.
- Затем укажите преамбулу документа LaTeX.
- При желании установите различные свойства, такие как Scale, TextColor, BackgroundColor и т. д.
- После этого создайте поток вывода для изображения формулы.
- Наконец, вызовите метод 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());
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.
Вывод
В этой статье мы узнали, как:
- отображать простые и сложные математические формулы и уравнения в Java;
- программно выравнивать и группировать уравнения;
- отображать матрицы, круглые скобки, скобки, дроби и двучлены;
- сохраните визуализированные изображения формул в формате PNG или SVG с помощью Java.
Кроме того, вы можете узнать больше об Aspose.TeX for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.