2011-01-04 5 views
4

テックスマークアップサポートは、以下のスタックExchangeサイトに最近addedされています:Texマークアップ、どのようにHtmlでPythonでレンダリングするのですか?

これらのサイトは、クライアント側Mathjaxライブラリにを使用しています提出された数式をユーザーに正しくフォーマットします。

この新しい機能が追加されたので、StackExchange APIは、$ char Texマークアップ(例:here)によって区切られた数式を使用して、JSON質問/回答テキストを返します。
StackPrinterは、このAPIに基づいて作成されたもので、返されたテキストは$で完全にorrible resultで表示されます。

JSONデータを解析してトランスフォームして、Tex MarkupをHTMLで適切にレンダリングできるサーバー側のPythonライブラリを探しています。
解決方法はありますか?

アプリケーションの詳細:
プラットフォーム:Google App Engine
フレームワーク:webpy

+0

なぜstackexchangeはHTMLページにMathjaxを含めないのですか? –

+0

はい、それはオプションですが、可能性のあるソリューションサーバー側が存在するかどうかを知りたいと思います(おそらくフォントの問題ではありません)。 – systempuntoout

答えて

2

あなたがDVI・ツー・イメージツールを使用して(例えばtex.latex2dvi又はpytexなど)TeXの対DVIツールを組み合わせる試みることができる(例えば、 dvipng)。これをサーバー側で実装するには、TeXコードを入力として使用し、イメージを出力として提供するAPIエンドポイントが必要です。このようにして、対応するパラメータとともに、そのURLにそのソースを指すことで、数式をイメージとして表示できます。これはかなり複雑ですが、良いニュースはGoogle Chart API for math formulasがすでにそのようなサービスを提供しているということです。

とにかく、すべての主要なWebブラウザ(Internet Explorerを除く)がHTML5標準に準拠してこの機能をサポートしているので、クライアント側で数値表記をレンダリングすることを検討します。あるいは、StackExchangeのようなMathjaxを含むだけです(クライアントサイドのマークアップレンダリングも同様です)。これは、最もシンプルでクロスプラットフォームの代替手段のようです。

+0

MathMLには独自の落とし穴があります.DOCTYPEとMIMEタイプの適切な組み合わせを見つけようとすると、複数のブラウザ間で一貫してレンダリングすることはできません。 – detly

関連する問題