web-dev-qa-db-ja.com

LaTeXをWebページに埋め込むための最良の方法は何ですか?

LaTeXドキュメントをhtmlに変換することについて質問しているのではありません。

私ができることは、HTMLドキュメントでLaTeX数学コマンドを使用する方法をいくつか用意し、ブラウザで正しく表示させることです。これは、サーバー側またはクライアント側で実行できます。

44
Phenwoods

MediaWikiはあなたが探しているものを実行できます。 Texvc( http://en.wikipedia.org/wiki/Texvc )を使用して、「(AMS)LaTeX数式を検証し、HTML、MathML、またはPNGグラフィックに変換します。」あなたが探しているもののように聞こえます。

彼らが数学の方程式をどのように処理するかについてのウィキペディアの記事をチェックしてください: http://en.wikipedia.org/wiki/Help:Formula 。また、LaTeXおよびさまざまなレンダリングタイプの長所/短所に関する広範なリファレンス(PNG/MathML/HTML)もあります。

MediaWikiは数式のために、TeXマークアップのサブセット(LaTeXおよびAMS-LaTeXからの拡張を含む)を使用します。ユーザーの好みや表現の複雑さに応じて、PNG画像または単純なHTMLマークアップを生成します。将来的には、より多くのブラウザーがよりスマートになるにつれ、多くの場合、拡張されたHTMLまたはMathMLを生成できるようになります。 (MathMLサポートの追加に関する現在の作業については、blahtexを参照してください。)

より正確には、MediaWikiはTexvcを介してマークアップをフィルターし、Texvcは実際のレンダリングのためにコマンドをTeXに渡します。したがって、完全なTeX言語の一部のみがサポートされます。詳細については、以下を参照してください。 ...

HTMLの長所

  • インラインHTML数式は、常に残りのHTMLテキストに適切に配置されます。
  • 数式の背景、フォントサイズ、および面は、他のHTMLコンテンツと一致し、外観はCSSおよびブラウザ設定に従います。
  • HTMLを使用するページはより速く読み込まれます。

TeXの長所

  • TeXは意味的にHTMLよりも優れています。 TeXでは、「x」は「数学変数x」を意味しますが、HTMLでは「x」は何をも意味する可能性があります。情報は完全に失われました。これには複数の利点があります:
    1. TeXはHTMLに変換できますが、その逆はできません。つまり、サーバー側では、テキスト内の複雑さと場所、ユーザー設定、ブラウザの種類などに基づいて、常に数式を変換できます。したがって、可能な場合は、HTMLのすべての利点を、 TeXの利点。現在の状況が理想的ではないことは事実ですが、それが情報やコンテンツを削除する理由にはなりません。それは状況を改善するのを助けるより多くの理由です。
    2. TeXは、それをサポートするブラウザー用にMathMLに変換できるため、そのセマンティクスを維持し、ベクターとしてレンダリングできます。
  • TeXは数式の組版用に特別に設計されているため、入力がより簡単で自然になり、出力がより美しくなります。
  • TeXで記述する場合、サーバーによって画像にレンダリングされるため、エディターはブラウザーのサポートについて心配する必要はありません。一方、HTMLフォーミュラは、一部のブラウザーまたは古いバージョンのブラウザーによって、エディターの意図と矛盾して(またはまったく)レンダリングされない場合があります。
15
ine

私はイメージのレンダリングを選択するソリューションよりも MathJax を好んでいます(これはエイリアシングの問題を引き起こします)。

MathJaxは、数学のためのオープンソースのJavaScriptレンダリングエンジンです。画像やフラッシュの代わりにCSSとWebフォントを使用し、LaTeXまたはMathMLをレンダリングできます。そうすれば、ズームに問題がなく、スクリーンリーダーにも対応します。

20
user1433688

私はかつてこれを実際に行うjQueryプラグインを開発しました: jsLaTeX

これを使用する最も簡単な例を次に示します。

$(".latex").latex();


<div class="latex">  
    \int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi  
</div>

上記はあなたのページに以下のLaTeX方程式を生成します:

Equation

プラグインの デモページ には、より多くのコード例とデモが含まれています。

14
Andreas Grech

数学を画像として埋め込む場合は、 MathTran をご覧ください。

数式を主にテキストとして(必要な場合にのみ画像を使用して)ページに挿入する場合は、 jsMath が最適です。

10
godbyk

歴史的には、LaTeXのレンダリングと画像の抽出は、クロスプラットフォーム、クロスブラウザの数学に最適です。 MathMLは、ますます合理的な代替手段になりつつあります。 ここにあります TexマークアップからMathMLを出力するオンラインコンバーター。これをWebページに埋め込むことができます。 FirefoxやCaminoなどのGeckoベースのブラウザは、Operaと同様に、MathMLでNiceを再生します。 IEはそのままでは機能しませんが、利用可能なプラグインがあります(-- this one など)。

Texvcは素晴らしい発見です!上付き文字/下付き文字/斜体/共通記号に主に関心がある場合は、バニラHTML出力はうまく機能しますが、より複雑なものについては、最も人気のある数学指向のサイト(例 Wolfram =)画像を生成するので、ブラウザ間の互換性に興味がある場合に限り、できることはたくさんあります:-(

4
Matt J

ここですべての答えを読みましたが、PDFからHTMLへの変換に言及した人がいないことに驚いています。 pdf2htmlEX を使用すると、それはpdfから完璧なWebページを作成します。ラテックスをpdf(pdflatex)にコンパイルするだけです。

デフォルトでは、あなたのPDFの内容がCSS、javascriptおよびhtmlで作られた単一のhtmlファイルを生成します。latexをhtmlに変換するために多くのツールを試しましたが、これははるかに私が見つけた最善かつ最も簡単な解決策

3
Anoyz

LaTexRenderer を試すことができます。それが最高かどうかはわかりませんが、うまくいきます。

1
eduffy

私自身もこれを調べ始めており、状況は進化しているようです。 thisKaTeXMathJax の比較デモに遭遇しました。


長い話(この記事の執筆時点で)

  • マトリックス内の分数は、KaTeXでは互いに実行されますが、MathJaxでは実行されません(「クロス積」を参照)
  • 平方根(またはn番目)のルートシンボル内では、指数と入れ子になった平方根が水平のトップラインにぶつかるように見えます(「繰り返し分数」と「n番目の根」を参照)。
  • MathJaxのフォントは少し太くて大きいですが、KaTeXは少しスリムです。

しかし、おそらく最も決定的なのは、ページのMathJax処理の合計が3回の実行で平均して1674ミリ秒であることがわかりました。対照的に、KaTeXは平均値128ミリ秒で、これは桁違いに優れています!


それぞれのWebサイトを調べるときに考慮すべき比較点が他にもいくつかあります。

  • KaTeXメインWebサイトは、LaTeXのすべてではなくほとんどをサポートしていると主張しています。サポートされている関数 ここ をリストします。 MathJaxは 制限 もいくつか表現しています。結局のところ、「より良い」サポートをしている人たちをざっと見てみるのは難しいですが。私が出会ったいくつかのブログはKaTeXのサポートが少ないと言っていますが、KaTeXは近年サポートを大幅に改善したと言っているブログもあります。
  • MathJax Webサイトは、入力と出力の両方でMathMLのサポートを宣伝しています。 github サイト here および here に関するいくつかのKaTeXの問題は、出力ではMathMLをサポートしているが、入力ではサポートしていないことを示しています(私はあまり知りません) MathMLについてですが、視覚障害を持つユーザーを支援したい場合は、少なくとも重要だと思われます)。
  • KaTeXは 同期的に をレンダリングするため、ページをリフローしません(高速化の一部)。しかし、引き換えに一時的にブラウザをロックします。
  • StackOverflowは、MathJaxのパートナーです( ここ を参照)。 some StackExchangeサイトで使用されますが、ページの読み込み時間のパフォーマンスのため、StackOverflow自体では使用されません。対照的に、KaTeXはカーンアカデミーによって開発されました。
1
pwilcox

tex2gif を使用できます。 LaTeXスニペットを受け取り、LaTeXを実行し、PNG(またはGIF)を生成します。埋め込みもスクリプトも簡単です。わたしにはできる。

tex2png も確認できます。

0
sastanin

MathMLがあなたの探しているものに合う場合は、ぜひMathMLをご覧になることをお勧めしますが、 JsTeX で少し作業するだけで、必要なすべてが得られます。

0
Joe Liversedge