LaTeX — это мощное программное обеспечение для набора математических данных. Это позволяет встраивать формулы и математические уравнения в файл TEX, который является исходным документом, подготовленным LaTeX. Он предоставляет множество команд для указания формата документа, включая текст, символы, математические выражения и графику. Мы можем программно писать основные уравнения и математические формулы, не используя LaTeX. В этой статье мы узнаем, как отображать уравнения LaTeX и математические формулы с помощью C#.
В этой статье должны быть раскрыты следующие темы:
- C# API для рендеринга уравнений LaTeX и математических формул
- Рендеринг встроенных математических формул LaTeX
- Рендеринг сложных уравнений
- Отображение длинных уравнений
- Выровняйте несколько уравнений
- Групповые и центральные уравнения
- Матрицы рендеринга, круглые скобки и квадратные скобки
- Рендеринг дробей и биномов
C# API для рендеринга уравнений LaTeX и математических формул
Для рендеринга математических формул LaTeX мы будем использовать API Aspose.TeX для .NET. Он позволяет набирать файлы TeX в различные форматы файлов, такие как PDF, XPS или изображения. Пожалуйста, загрузите DLL API или установите его с помощью NuGet.
PM> Install-Package Aspose.TeX
Рендеринг встроенных математических формул LaTeX с использованием C#
Мы можем визуализировать простые встроенные математические формулы или уравнения, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса MathRendererOptions.
- Затем укажите преамбулу документа LaTeX.
- При желании установите различные свойства, такие как Scale, TextColor, BackgroundColor и т. д.
- После этого создайте поток вывода для изображения формулы.
- Наконец, вызовите метод Render() для отображения формулы. Он принимает строку формулы, поток, MathRendererOptions и размер выходного изображения в качестве аргумента.
В следующем примере кода показано, как программно отображать математическую формулу с помощью C#.
// В этом примере кода показано, как отображать математические формулы и уравнения.
// Создайте параметры рендеринга, указав разрешение изображения 150 dpi.
MathRendererOptions options = new PngMathRendererOptions() { Resolution = 150 };
// Уточните преамбулу.
options.Preamble = @"\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{color}";
// Укажите коэффициент масштабирования 300%.
options.Scale = 3000;
// Укажите цвет переднего плана.
options.TextColor = System.Drawing.Color.Black;
// Укажите цвет фона.
options.BackgroundColor = System.Drawing.Color.White;
// Укажите выходной поток для файла журнала.
options.LogStream = new MemoryStream();
// Укажите, показывать ли вывод терминала на консоли или нет.
options.ShowTerminal = true;
// Переменная, в которую будут записаны размеры результирующего изображения.
System.Drawing.SizeF size = new System.Drawing.SizeF();
// Создайте выходной поток для изображения формулы.
using (Stream stream = File.Open(@"D:\Files\Tex\math-formula.png", FileMode.Create))
// Запустите рендеринг.
MathRenderer.Render(@"This is a sample formula $f(x) = x^2$ example.", stream, options, out size);
// Показать другие результаты.
System.Console.Out.WriteLine(options.ErrorReport);
System.Console.Out.WriteLine();
System.Console.Out.WriteLine("Size: " + size);
Рендеринг сложных уравнений в C#
Мы можем визуализировать любые сложные уравнения или формулы, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{equation*}
e^x = x^{\color{red}0} + x^{\color{red}1} +
\frac{x^{\color{red}2}}{2} +
\frac{x^{\color{red}3}}{6} +
\cdots = \sum_{n\geq 0} \frac{x^{\color{red}n}}{n!}
\end{equation*}", stream, options, out size);
Отображение длинных уравнений в C#
Мы можем отображать длинные уравнения в нескольких строках, следуя шагам, упомянутым ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{document}
\begin{multline*}
p(x) = x^1+x^2+x^3+x^4\\
- x^4 - x^3 - x^2 - x
\end{multline*}
\end{document}", stream, options, out size);
Выровнять несколько уравнений с помощью C#
Мы также можем выровнять и визуализировать несколько уравнений или формул одновременно, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{document}
\begin{align*}
a+b & a-b & (a+b)(a-b)\\
x+y & x-y & (x+y)(x-y)\\
p+q & p-q & (p+q)(p-q)
\end{align*}
\end{document}", stream, options, out size);
Групповые и центральные уравнения с использованием C#
Мы можем сгруппировать и центрировать несколько уравнений во время рендеринга, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{gather*}
(a+b)=a^2+b^2+2ab \\
(a-b)=a^2+b^2-2ab \\
(a-b)=a^2+b^2-2ab
\end{gather*}", stream, options, out size);
Визуализация матриц, скобок и квадратных скобок в C# {#Render-Matrices,-Parenthesis,-and-Brackets-in-CSharp}
Мы также можем визуализировать матрицы, круглые скобки и квадратные скобки, выполнив шаги, упомянутые ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{document}
[
\left \{
\begin{tabular}{ccc}
1 & 4 & 7 \\
2 & 5 & 8 \\
3 & 6 & 9
\end{tabular}
\right \}
]
\end{document}", stream, options, out size);
Рендеринг дробей и биномов с помощью C#
Мы также можем отображать дроби и двучлены, следуя шагам, упомянутым ранее. Однако нам просто нужно указать строку формулы на шаге № 4, как показано ниже:
MathRenderer.Render(@"\begin{document}
[
\binom{n}{k} = \frac{n!}{k!(n-k)!}
]
\end{document}", stream, options, out size);
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.
Вывод
В этой статье мы узнали, как:
- визуализировать простые и сложные математические формулы и уравнения в C#
- программно выравнивать и группировать уравнения
- отображать матрицы, круглые скобки, скобки, дроби и двучлены
Кроме того, вы можете узнать больше об Aspose.TeX for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.