LaTeX 入力ガイド

私が LaTeX の方程式を打ち直さず入力する方法

更新

LaTeX 入力を追加した理由は、計算機を完全な TeX エディタにしたかったからではありません。\frac{x}{3}+5=12 や \sqrt{2x+3}=5 のように、すでに読みやすい数式を毎回普通の記号へ打ち直すのが面倒だったからです。よく使う記法だけ安全に正規化し、実際に解かれる式をプレビューできれば十分だと考えました。

私が LaTeX の方程式を打ち直さず入力する方法

LaTeX は別のソルバーではなく、入力形式として扱います

LaTeX を受け取っても、最終的には通常入力と同じ正規化済みの式をソルバーへ渡します。二つの数学エンジンを持たないので、入力方法によって答えが食い違うリスクを減らせます。

例えば \frac{x}{3}+5=12 は (x)/(3)+5=12 に、x^{2}-5x+6=0 は x^2-5x+6=0 に変換され、その後は同じ parser が対応範囲を判定します。

\frac{x}{3}+5=12
x^{2}-5x+6=0
\sqrt{2x+3}=5

実際によく使う LaTeX だけを明示的に対応させます

対象は \frac、\sqrt、指数の波括弧、\cdot、\times、\div、\left と \right など、一変数代数で頻繁に出る記法です。

行列、align 環境、独自マクロ、微積分記法や任意の TeX コマンドまで対応しているとは言いません。安全に変換できないものは勝手に別の意味へ読み替えるより未対応にする方が良いと考えています。

求解前に MathML プレビューで意味を確認します

文字列の変換が文法上は通っても、意図した式と違うことがあります。そこで正規化後の式を小さな数式 AST に解析し、その AST をネイティブ MathML で描画します。

これは元の LaTeX を画像化しただけではありません。計算機が『これを解く』と解釈した式を表示するので、分数、指数、括弧、根号の範囲を確認する用途に向いています。

分数とグループ化は特に慎重に見ます

\frac{x+1}{x-2} と x+1/x-2 は別の式です。そのため分子・分母を変換するときは括弧を残します。\sqrt{x+1} も x だけでなく x+1 全体が根号の中にあることを保つ必要があります。

文書から貼り付けたら、私は Solve を押す前にプレビューを見ます。意図したグループ化と違えば、結果を解釈する前に入力を直します。

\frac{x+1}{x-2}=2
\sqrt{x+1}=x-1
(x-2)^{2}=9

未対応 LaTeX では推測しないことを優先します

知らないコマンドをそれらしく解釈するより、未対応と表示する方が安全です。プレビューが意図と違う場合や対象外の記法なら、その部分だけ普通の代数表記へ直します。

LaTeX 対応は入力を速くするための機能で、解ける方程式の種類を増やすものではありません。三次以上、対数、三角関数などが自動的に対応するわけではありません。