ラテックスフィギュアレンダリング| Python用のAspose.TeX

特定の状況では、ページレイアウトに接続せずに、一般に *フィギュア *と呼ばれるスタンドアロンレンダリングピースとして、LaTexファイルから特定のコンテンツを抽出する必要がある場合があります。これは、たとえば、オンライン公開のイラストを作成するときに役立つ可能性があります。私たちのAPIを使用すると、これを達成できます。レンダリング数値のターゲット形式は、LaTex Math式レンダリング機能と同様に、PNGとSVGです。 ラテックスフィギュアレンダリングは、 LaTex MATH式レンダリングと比較して、より一般的な機能であることに注意してください。

ラテックスフィギュアをPNGにレンダリングします

必要に応じて、最初に このトピックのAPI参照セクションをご覧ください。フォーミュラレンダリングと同様に、例から始めます。ここにあります:

 1from aspose.tex.features import *
 2from aspose.pydrawing import Color
 3from aspose.tex.io import *
 4from aspose.tex.presentation.xps import *
 5from util import Util
 6from io import BytesIO
 7from os import path
 8###############################################
 9###### Class and Method declaration here ######
10###############################################
11
12# Create rendering options setting the image resolution to 150 dpi.
13options = PngFigureRendererOptions() 
14options.resolution = 150             # Specify the preamble.
15options.preamble = r"\usepackage{pict2e}"
16# Specify the scaling factor 300%.
17options.scale = 3000
18# Specify the background color.
19options.background_color = Color.white
20# Specify the output stream for the log file.
21options.log_stream = BytesIO()
22# Specify whether to show the terminal output on the console or not.
23options.show_terminal = True
24
25# Create the output stream for the figure image.
26with open(path.join(Util.output_directory, "text-and-formula.png"), "wb") as stream:
27    # Run rendering.
28    size = PngFigureRenderer().render(r"""\setlength{\unitlength}{0.8cm}
29\begin{picture}(6,5)
30\thicklines
31\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}} \put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}
32\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$} \put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}
33\end{picture}""", stream, options)
34
35# Show other results.
36print(options.error_report)
37print()
38print(f"Size: {size.width}x{size.height}")

まず、 LaTexフィギュアレンダラーオプションクラスのインスタンスを作成します。このクラスでは、出力画像解像度を同時に指定します。

次に、前文を指定する必要があります。ラテックス数学の式レンダリングとは異なり、ラテックスフィギュアレンダリングのデフォルトのプリアンブルはありません。したがって、たとえば、「PICT2E」ラテックスパッケージを使用して作成されたグラフィックをレンダリングする予定がある場合は、前文で指定する必要があります。

1\usepackage{pict2e}

次に、レンダラーに出力を300%スケーリングするよう指示します。

次のオプションは、背景色を決定します。数学の式レンダリングとは異なり、色はラテックスコードによって完全に制御されていると仮定するため、前景の色を指定する必要はありません。同様に、背景色はラテックスコードによっても制御されるため、このオプションは便利なために単純に提供されます。

この例の次の行は、特に意味がない場合があります。ログ出力を特定のストリームに向けるオプションがあることを実証することを意図しています。

最終的なオプション「Showterminal」では、端子出力をコンソールに表示するかどうかを制御できます。

図のレンダリングを担当する方法は figurerenderer.render()です。フィギュアのサイズをポイントで返します。

このメソッドは、画像が記述されるストリームである2番目の引数としてストリームを受け入れます。次の行でストリームを作成します。

最後に、 figurerenderer.render()メソッド自体を呼び出し、3番目の引数としてオプションを渡します。図のラテックスコードは、最初の引数として提供されます。

この例の最後の数行には、図のレンダリングに関連する2つの情報が表示されます。図のサイズと簡単なエラーレポート(エラーがある場合)です。

レンダリングの結果です。

ラテックスフィギュアはPNGにレンダリングします

これは、ラテックスフィギュアレンダリング機能の最も一般的なユースケースを表します。

ラテックスフィギュアをSVGにレンダリングします

同様に、SVG形式でラテックスフィギュアをレンダリングすることもできます。

 1from aspose.tex.features import *
 2from aspose.pydrawing import Color
 3from util import Util
 4from io import BytesIO
 5from os import path
 6###############################################
 7###### Class and Method declaration here ######
 8###############################################
 9
10# Create rendering options.
11options = SvgFigureRendererOptions()
12# Specify the preamble.
13options.preamble = r"\usepackage{pict2e}"
14# Specify the scaling factor 300%.
15options.scale = 3000
16# Specify the background color.
17options.background_color = Color.white
18# Specify the output stream for the log file.
19options.log_stream = BytesIO()
20# Specify whether to show the terminal output on the console or not.
21options.show_terminal = True
22
23# Create the output stream for the figure image.
24with open(path.join(Util.output_directory, "text-and-formula.svg"), "wb") as stream:
25    # Run rendering.
26    size = SvgFigureRenderer().render(r"""\setlength{\unitlength}{0.8cm}
27\begin{picture}(6,5)
28\thicklines
29\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}} \put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}
30\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$} \put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}
31\end{picture}""", stream, options)
32
33# Show other results.
34print(options.error_report)
35print()
36print(f"Size: {size.width}x{size.height}")

違いは次のとおりです。

これが結果です:

ラテックスフィギュアはSVGにレンダリングします

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.