7

大量の数式と方程式を入力しました。それぞれのラテックス表現を出力したいと思います。これまでのところ、私は Sage と sympy を試してきましたが、トリッキーな部分は、式の項を並べ替えないことです。

evalしたがって、私の入力がこれである場合、 Pythonで編集できるもの:

(C - A*x) / B

次のような出力が必要です。

\frac{C - A x}{B}

私が望んでいないのは、次のようなものです:

\frac{-(A x - C)}{B}
\frac{1}{B}(C - A x)
etc...

これは達成できますか?徐々に希望を失っていく…


編集:

入力式は多様で、平方根、入れ子になった括弧、指数などを含むものもあります。一般的な解決策を探しています。

これまでのところ機能しないものは次のとおりです。

1) セージ:

sage: var('A B C x y') 
(A, B, C, x, y) 
sage: latex(y == (C - A*x) / B)
y = -\frac{A x - C}{B}

2) シンピー:

>>> from sympy import *
>>> x = Symbol('x')
>>> A = Symbol('A')
>>> B = Symbol('B')
>>> C = Symbol('C')
>>> latex((C - A*x) / B)
'\\frac{1}{B} \\left(- A x + C\\right)'
4

2 に答える 2

3

独自のパーサーを作成する以外に、これを行う唯一の実際の方法は、python の組み込みcompile()関数を使用して、返された抽象構文ツリーを処理することだと思います。

于 2013-10-30T21:52:04.027 に答える