C#を使用して方程式と数式をレンダリングする

LaTeXは、数学を植字するための強力なソフトウェアです。 LaTeXが作成したソースドキュメントであるTEXファイルに数式や数式を埋め込むことができます。テキスト、記号、数式、グラフィックなど、ドキュメントの形式を指定するための多くのコマンドを提供します。 LaTeXを使用せずに、プログラムで基本的な方程式や数式を書くことができます。この記事では、C#を使用してLaTeX方程式と数式をレンダリングする方法を学習します。

この記事では、次のトピックについて説明します。

LaTeX方程式と数式をレンダリングするためのC#API

LaTeX数式のレンダリングには、Aspose.TeX for .NETAPIを使用します。これにより、TeXファイルをPDF、XPS、画像などのさまざまなファイル形式に植字できます。 APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。

PM> Install-Package Aspose.TeX

C#を使用してLaTeXインライン数式をレンダリングする

以下の手順に従って、簡単なインライン数式または数式をレンダリングできます。

  1. まず、MathRendererOptionsクラスのインスタンスを作成します
  2. 次に、LaTeXドキュメントのプリアンブルを指定します。
  3. オプションで、Scale、TextColor、BackgroundColorなどのさまざまなプロパティを設定します。
  4. その後、数式画像の出力ストリームを作成します。
  5. 最後に、Render()メソッドを呼び出して、数式をレンダリングします。引数として、数式文字列、ストリーム、MathRendererOptions、および出力画像サイズを取ります。

次のコードサンプルは、C#を使用してプログラムで数式をレンダリングする方法を示しています。

// このコード例は、数式と方程式をレンダリングする方法を示しています
// 画像解像度150dpiを指定するレンダリングオプションを作成します
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#を使用してインライン数式をレンダリングする

C#を使用してインライン数式をレンダリングする

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#で複素方程式をレンダリングする

C#で複素方程式をレンダリングする

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#で長い方程式を表示する

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#を使用していくつかの方程式を整列させる

C#を使用していくつかの方程式を整列させる

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);
Group-and-Center-Equations-using-CSharp

C#を使用した方程式のグループ化と中心化

マトリックス、括弧、およびブラケットを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#でレンダリングする

マトリックス、括弧、およびブラケットをC#でレンダリングする

C#を使用して分数と二項式をレンダリングする

前述の手順に従うことで、分数と二項式もレンダリングできます。ただし、以下に示すように、手順4で数式文字列を指定する必要があります。

MathRenderer.Render(@"\begin{document}
	            [
	                \binom{n}{k} = \frac{n!}{k!(n-k)!}
	            ]
	            \end{document}", stream, options, out size);
C#を使用して分数と二項式をレンダリングする

C#を使用して分数と二項式をレンダリングする

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにライブラリを試すことができます。

結論

この記事では、次の方法を学びました。

  • 単純および複雑な数式と方程式をC#でレンダリングする
  • プログラムで方程式を整列およびグループ化する
  • 行列、括弧、角かっこ、分数、二項式をレンダリングします

さらに、ドキュメントを使用して、Aspose.TeX for.NET APIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目