tex2math
プラグイン
通常,jsMathはあなたのページを定義しているHTML内の<SPAN CLASS="math"> または<DIV CLASS="math"> ブロックを探すことによって,あなたのWebページの数式を識別します.これらは少し面倒で,特に,LaTeX中と同じようにダラー記号,\(...\)及び\[...\]
コマンドで数式を入力するのに慣れている人には面倒です.しかし,jsMathは,ページが読み込まれてから,ダラー記号やLaTeXの
\(...\) , \[...\]構文を適切なSPAN ,DIV タグに自動的に翻訳することによってこれを助けています.これは,text2math プラグインによって扱われます.もし,あなたが easy/load.js ファイルを使っていたら,tex2math を起動するのは簡単です.次のオプションのうち少なくとも1つを1に設定すればよい:processSlashParens , processSlashBrackets ,
processDoubleDollars , processSingleDollars , customDelimiters .これらのうちどれが設定されても,tex2math は自動的に読み込まれ,指示された区切り文字を探してページを処理します.もしあなたが,jsMathを手動で読み込んでいて, tex2math プラグインを使いたいのならば,jsMath.jsファイルを読み込むコマンドの直後に次の行を含めなさい.
<SCRIPT"> jsMath.Setup.Script("plugins/tex2math.js") </SCRIPT>次に,HTMLファイルの下端に, jsMath.ProcessBeforeShowing() またはjsMath.ProcessBeforeShowing() が呼び出される前に次の行を含めなさい.
<SCRIPT> jsMath.ConvertTeX() </SCRIPT>これにより,jsMathはあなたのファイルのすべてのテキストボロックを通して, $...$, $$...$$, \(...\) 及び \[...\]を探して適当な SPAN またはDIV に置換します.jsMath.ConvertTeX をページのオンロード・ハンドラーの一部として含めることができます(適当なjsMath.Process コマンドとともに).例えば,
<BODY onLoad="jsMath.ConvertTeX(); jsMath.Process()">は,ページが読み込まれたときに,TeX-またはLaTeXスタイルの数式を数式活字組みに変換します. ダラー記号をテキストの一部とするにはtex2math プラグインを使用するときは,数式に変換されたくないダラー記号が含まれていないかどうか注意しなければなりません.例えば,あなたのWebページに一部として,"that
cost $1.50 in those days, or about $5.00 today"と書かれていれば,jsMath.ConvertTeX() は,これを"that cost <SPAN CLASS="math">1.50 in those
days, or about </SPAN>5.00 today"と変換し,jsMathはSPAN の内容を数式として活字組みしようとします.これを避ける幾つかの方法があります.まず, jsMath.ConvertTeX() は対になっているダラー記号を処理するだけで,それらは,間に介在するHTMLがないときに対になっている見なされるだけです.したがって,ダラー記号が数式に変換されるのを防ぐ1つの方法は,それをSPAN その他独自のタグで包むことです.例えば,"that cost <SPAN>$1.50</SPAN> in those days, or about <SPAN>$5.00</SPAN> today". (数式の間にHTMLコードがないことという要請には1つの例外があります:tex2mathは,数式のテキスト中にある <BR> タグを必要に応じて削除します.これは,幾つかの掲示板システムが,ユーザが入力するテキストに,これらを自動的に挿入するからで,ユーザの知らないうちに数式テキストの中に現われることがあるからです.)あるいは,バックスラッシュを用いてダラー記号を逃れることができます. jsMath.ConvertTeX() コマンドは,\$ が数式モードの外側に現われれば $ に変換します.だから,代わりに,"that
cost \$1.50 in those days, or about \$5.00 today"と入力することができます.もう一つの方法は 数式区切り文字の制御
<SCRIPT> jsMath.Synchronize(function () { jsMath.tex2math.Convert(element,{ processSingleDollars: 1, processDoubleDollars: 1, processSlashParens: 1, processSlashBrackets: 1, fixEscapedDollars: 1 }); }); </SCRIPT> は, インライン数式と別行立て数式のためのオーダーメイドの識別子の使用あなたが,\(...\) と \[...\] をインライン数式及び別行立て数式をマークするものとして使いたくない時があるかもしれません(例えば,あなたのWebページでこれらを簡単に表示したいとき).<SPAN>と</SPAN>をそれらの周りに置くことができますが,それは入力に不便です. は, 一旦区切り文字を定義したら,実際にドキュメントを(またはその一部を)変換するかどうか のコマンドを使います.これらが2つのルーチンに分かれている理由は,オーダーメイドの区切り文字のためにパターンを再処理しなくても,何回でも 一要素のみの処理わずかな数式を含んだ大きなドキュメントにとっては,数式を変換するためにドキュメント全体を探すことは能率がよくない.この場合には,あなたは個々のHTML要素だけを処理したくなるかもしれない(特定の段落やDIVブロックのような).これを行うには,要素IDをjsMath.ConvertTeX やその他の変換ルーチンに渡すことができる(jsMath.Process やjsMath.ProcessBeforeShowing にも渡せます).例えば,
<P ID="has_math"> If $x = 3$ then $x^2 = 9$. </P> <SCRIPT> jsMath.ConvertTeX('has_math'); jsMath.ProcessBeforeShowing('has_math'); </SCRIPT>は,"has_math"とラベル付けられた段落の中だけで数式の変換を行い,ファイルの残りの部分に影響しません.変換すべき数式をマークするために,どんな種類のタグでも用いることができ,例えば SPAN やDIV ,TABLE や他のブロックですら使えます.もし,あなたが内容をその場で作っているのなら,一要素を処理するのは特に便利です.この場合,要素IDを渡すよりも要素への参照を渡す方がもっと便利かもしれません.例えば, <SCRIPT> var div = document.createElement('div'); div.innerHTML = "If $x = 3$ then $x^2 = 9$"; jsMath.ConvertTeX(div); jsMath.ProcessBeforeShowing(div); </SCRIPT>は, DIV ブロックを作り,それにテキストを入れ,次にそのテキスト内の数式を変換して数式に活字組みします.しかし,DIV の内容は,例えばdocument.body.appendChild(div) のようなものによって,ページのどこかに挿入されるまで現われません.要素の配置は,数式に影響する縮尺や他の要因を変えるため,jsMathがこの変化を知っている方がよいので,おそらく,jsMath.ProcessBeforeShowing() を呼び出す前にDIV を挿入すべきです.また,
HTMLファイル中の特別なタグを使用して, |