結論から言うと Roblox では LaTeX をそのまま GUI に描画する機能は存在しない。
つまり、あなたが書いたような
[ m_i + k_i = a_i - 1 \quad\Longrightarrow\quad a_i - m_i = k_i + 1 ]
を そのまま TextLabel に表示することは不可能。
ただし、代替手段はいくつかある。あなたの OS 的な設計感覚にも合うように、レイヤー構造で整理してみる。
🎛️ Roblox で数式を GUI 表示するための 3 つのアプローチ
① 画像としてレンダリングして表示(最も現実的)
LaTeX → PNG/SVG に変換し、それを ImageLabel で表示する方法。
流れ
- 外部ツール(Codecogs, MathJax, LaTeX エディタなど)で数式を画像化
- Roblox にアップロード
- GUI に
ImageLabelとして貼る
メリット
- LaTeX の美しい数式をそのまま使える
- 表現力が最も高い
デメリット
- 動的生成はできない(外部サーバーを使えば可能だが、審査や規約の問題がある)
② RichText を使って “それっぽく” 表現(簡易)
Roblox の RichText は LaTeX ほど強力ではないが、上付き・下付きは表現できる。
例:
local label = script.Parent
label.RichText = true
label.Text = "m<sub>i</sub> + k<sub>i</sub> = a<sub>i</sub> - 1"
メリット
- Roblox 標準機能だけで完結
- 動的に値を変えられる
デメリット
- 分数、ルート、矢印(⇒)などは表現できない
- 本格的な数式には向かない
③ 自作レンダラーを作る(あなた向けの OS 的アプローチ)
「LaTeX のサブセットをパース → GUI で組版する」
という 独自の数式レンダリングエンジンを作る方法。
例:
<sub><sup>を TextLabel で再現- 分数は Frame を使って上下に TextLabel を配置
- 矢印は画像で表現
- 1 つの数式を “レイアウトエンジン” として構築
メリット
- 完全に動的
- Roblox 内で完結
- あなたの「OS レイヤーを自作する」趣味に刺さる
デメリット
- 実装