2013-02-02 8 views
5

私は、JavaとFortranで実装された多くの物理方程式によく出くわします。ほとんどの場合、これらの方程式は高度な物理学の教科書または出版物から直接コピーされます。方程式は元々はLaTeXで一般的にタイプセットされているので、読みやすいです。しかし、これらの方程式がコードに変換されるとき、それらはぎこちないように見えます。短いドメイン特有の変数名as suggested hereを使用したり、数式を複数の行に分割しても、それはタイプセットバージョンと同じように見えません。ソースコードをLaTeXに変換

Java/Fortranソースファイルを解析してLaTeXで出力し、すべての数式をLaTeXに変換するツールはありますか?例えば、

Math.sqrt(Math.pow(a,2) + Math.pow(b,2)) 

はただ明確にする

\sqrt{a^2 + b^2} 

に変換されます。私はLaTeXがコメント/ javadocの一部として含まれるようにするソリューションを探しているわけではありません。それは私のコメントのLaTeX出力だけを作成し、ソースコード内の式は作成しないからです。

+0

カスタム関数e.t.cも処理する必要がありますか? – thkala

+0

カスタム関数をそのまま保持することができます。しかし、私はMathクラスの標準メソッドがサポートされると期待しています。また、ボーナスとして、ツールが変数名の添え字表記を理解できるならば素晴らしいでしょう。例えば、t_outは 't'の添字 'out'として翻訳されます。 – Shahriar

+0

この例では、 'Math.'をバックスラッシュで置き換えるために何らかの種類のスクリプトを使用し、'( '、') 'と' {'、'} 'で定義する必要がありますあなたはLaTeXの同等の出力コードを持っています... –

答えて

1

jetbrains mpsという投影エディタを使用してリクエストしたことがあります。これは、ラテックスのようなレンダリングされた方程式としてソースコード内に算術式を表示するために使用されました。私はそれを見た場所を正確に覚えていませんが。多分それはmbeddrでした。

しかし、ソースからラテックスへの道にもっと関心がありますので、私の提案は次のとおりです。 ATLは、モデル間の変換を提供します。 Java式をラテックス式に変換するために使用できます。したがって、JavaのEMF modelが必要です。 MoDiscoはすでにJava 1.5モデルに同梱されています。私はラテックスEMFモデルを知らない。モデルをラテックスソースにシリアル化するには、Xtextを使用できます。

+1

Java AST解析を行うライブラリがいくつか見つかりました。[Java Parser](http://www.semanticdesigns.com/Products/FrontEnds/JavaFrontEnd.html)、[Eclipse JDT](http://www.vogella.com/ articles/EclipseJDT/article.html)、[スプーン](http://spoon.gforge.inria.fr/) – Shahriar

関連する問題