this oneに似た QML (C++ バックエンドを使用) でプレゼンテーション システムを実行しています。
いくつかの数学を表示するために、いくつかの Latex コードを含めることができるようにしたいと考えています (合計、分数、スーパーおよびサブストリップ、数学フォントなど、最小限の Latex 機能のみが必要です)。
そうするために、次の可能性があると思います。
- latex2e の使用:
- Latex コードを DVI ドキュメントにコンパイルします ( を使用
latex
) 。 - DVI を SVG に変換します (を使用
dvisvgm
) Image
QML (SVG もサポート) を使用してこれを表示します。
- Latex コードを DVI ドキュメントにコンパイルします ( を使用
- MathJax の使用:
- 小さな HTML ファイルに Latex コードをラップし、MathJax JS ライブラリを含めます。
WebKit
これをQMLを使用して表示する
- カスタム ソリューション (C++):
- 既存の最小限の Latex 数学パーサーを作成または含める
QDeclarativeItem
カスタムペイントで書く
私が見ていない別の解決策はありますか?2 番目のソリューションは重すぎて、3 番目のソリューションは難しすぎるため、最初のソリューションを好みます。
数式のベースラインに次の問題が見られます: インライン数式を (段落内に) 含めることができるようにしたいです。現在、テキスト パラグラフは QML Text 要素を使用してレンダリングされます。指定されたベースラインを使用して (おそらく HTML img 要素を使用して) Text 要素に画像を含める可能性はありますか? また、レンダリングされた Latex ドキュメントのベースラインを決定するにはどうすればよいですか?
注: Latex コードを事前にレンダリングする時間は問題ではありません。既にレンダリングされた数式をキャッシュするので、プレゼンテーション ドキュメントに含まれるすべての数式に対してlatex
+を呼び出しても問題ありません。dvisvgm
また、プリプロセッサを使用していることにも注意してください (QML コードを手で書くのではなく、生成します)。したがって、Latex コードに QML 要素は必要ありませんが、Image 要素を使用して QML コード スニペットを生成できます (最初のソリューション用)。これにより、レンダリングされた画像の埋め込みが簡単になります。
また、インライン Latex を使用する場合、式のラップをサポートする必要もありません。(Latex はインライン数式を記述するときにそうしますが、とにかくラップされたくない小さな数式のみを使用します。)