TeXファイルに数式や数式を埋め込むことができます。 LaTeXは、一連のコマンドを含むソースドキュメントとしてTeXファイルを使用します。これらのコマンドは、テキスト、記号、数式、グラフィックなど、ドキュメントの形式を指定します。 LaTeXを使用せずに、プログラムであらゆる種類の方程式や数式を記述およびレンダリングできます。この記事では、JavaでLaTeXの数式と方程式をレンダリングする方法を学習します。
この記事では、次のトピックについて説明します。
- LaTeXの数式と方程式をレンダリングするJavaAPI
- LaTeX数学数式をPNGとしてレンダリングする
- 複雑な方程式をレンダリングする
- 長い方程式を表示する
- いくつかの方程式を揃える
- グループ方程式と中心方程式
- かっことかっこをレンダリングする
- LaTeXの行列
- 分数と二項式をレンダリングする
- LaTeXの数学演算子
- LaTeX数学数式をSVGとしてレンダリングする
LaTeXの数式と方程式をレンダリングするJavaAPI
LaTeX数式のレンダリングには、Aspose.TeX for JavaAPIを使用します。数学式をPNGとして保存するためのレンダリングオプションを指定するためのPngMathRendererOptionsクラスを提供します。同様に、数学式をSVGとして保存するためのレンダリングオプションを指定するためのSvgMathRendererOptionsクラスも提供します。さらに、数式をレンダリングするために、MathRendererクラスから派生したPngMathRendererクラスとSvgMathRendererクラスを提供します。このクラスのrender()メソッドは、提供された数式をレンダリングします。さらに、APIでは、TeXファイルをPDF、XPS、または画像などのさまざまなファイル形式に植字することもできます。
APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加してください。
<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>
Javaを使用してLaTeX数式をPNGとしてレンダリングする
以下の手順に従って、簡単なインライン数式または数式をレンダリングできます。
- まず、PngMathRendererOptionsクラスのインスタンスを作成します。
- 次に、150DPIなどの画像解像度を指定します。
- 次に、LaTeXドキュメントのプリアンブルを指定します。
- オプションで、Scale、TextColor、BackgroundColorなどのさまざまなプロパティを設定します。
- その後、数式画像の出力ストリームを作成します。
- 最後に、render()メソッドを呼び出して、数式をレンダリングします。数式文字列、ストリーム、レンダリングオプション、および出力画像サイズを引数として取ります。
次のコードサンプルは、Javaを使用してプログラムで数式をPNGとしてレンダリングする方法を示しています。
// このコード例は、数式と方程式をPNGとしてレンダリングする方法を示しています
// PNGレンダリングオプションを作成する
PngMathRendererOptions options = new PngMathRendererOptions();
// 画像の解像度を150dpiで指定します
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);
Javaを使用したLaTeXの行列
同様に、前述の手順に従って行列をレンダリングできます。ただし、以下に示すように、手順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);
Javaを使用したLaTeXの数学演算子
数学演算子の記号は、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);
Javaを使用してSVGでLaTeX数式をレンダリングする
以下の手順に従って、レンダリングされた数式または数式をSVG画像形式で保存することもできます。
- まず、SvgMathRendererOptionsクラスのインスタンスを作成します。
- 次に、LaTeXドキュメントのプリアンブルを指定します。
- オプションで、Scale、TextColor、BackgroundColorなどのさまざまなプロパティを設定します。
- その後、数式画像の出力ストリームを作成します。
- 最後に、render()メソッドを呼び出して、数式をレンダリングします。数式文字列、ストリーム、レンダリングオプション、および出力画像サイズを引数として取ります。
次のコードサンプルは、Javaを使用してSVG画像で数式をレンダリングする方法を示しています。
// このコード例は、数式と方程式を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で単純および複雑な数式と方程式をレンダリングします。
- プログラムで方程式を整列およびグループ化します。
- 行列、括弧、角かっこ、分数、二項式をレンダリングします。
- レンダリングされた数式画像をJavaを使用してPNGまたはSVGで保存します。
さらに、ドキュメントを使用して、Aspose.TeX forJavaAPIの詳細を学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。