jsMathの特徴のほとんどはjsMath/easy/load.js ファイルを通じてコントロールできます.これは,jsMathの動き方を修正するために変更できる(下に記述した)設定を含んでいる.単に,次の行を追加してjsMathを読込み,走らせるだけです.
<SCRIPT SRC="path-to-jsMath/easy/load.js"></SCRIPT>
ここで,path-to-jsMath は,あなたのサーバ上のjsMathフォルダのURLです.
easy/load.js のコピーを作ることができ,各々のコピーに異なる設定ができるので,easy/load.js のコピーを読み込むことによりjsMathを異なる構成で使うことができます.
Easy Loader の設定
easy/load.js ファイルは,jsMathの動き方をコントロールするために設定できる値のコレクションを含んでいます.あなたがどの設定を変更するかを決めるのを助けるコメントがあり,それらをもっと完全に説明すると:
- ルート
- これは,サーバにおけるjsMathディレクトリのURL,または,(サーバではなくローカルにjsMathを使用する場合)ハードディスクにおけるjsMathの場所です.URLは,
http://your-site/path-to-jsMath の形でもよく,サーバのルートからの絶対パス,すなわち,/path-to-jsMath の形で書くこともできます.相対パスを用いることもできるが,easy/load.js を読み込むページに対して相対的に解釈されるので,そのようなページはWebの階層において同一レベルにある必要があります.URLはそれを読み込むページを同じドメインでなければなりません(つまり,jsMathとHTMLページは両方とも同じサーバから来なくてはならず,少なくとも同じドメインのサーバでなければなりません).
- 拡大率
- これは,周囲のテキストと比較した数式の大きさをコントロールします.パーセント値なので,100は大きさに変化がなく,120は通常よりも20%大きくなります.数式フォントはブラウザで使われている標準的なフォントと比較して少し小さめなので,100よりも大きなサイズを使いたくなるかもしれない.また,数式には上付き文字や下付文字が多く使用されるため,ページに小さいフォントを使用していると,これらは読みにくくなる.拡大率を大きくすると,上付き文字や下付き文字ははっきりしてくる.通常,120から133の間の値を選ぶとよい.
- オートロード
- これは
autoload プラグインを使用するかどうかを決める.オートロードプラグインは,jsMathを読み込む前にそのページに何らかの数式があるかどうか調べるためにWebページをチェックし,そのページに必要なjsMathだけを読み込みます.jsMathは(100KBを超える)大きなファイルなので,これは,数式のないページの読込み時間を大いに改善できる.他方,アオートロードプラグインは追加のダウンロードを行い,オートロードとjsMathの両方を読み込むので,数式を実際に含んでいるページはより遅く開かれる.ほとんどのブラウザはJavaScriptファイルのキャッシュを持っているので,これはあなたのサイトからダウンロードされる最初のページだけに影響します.しかしまだ,各ページについて処理する損失があるので,あなたのページの大部分が数式を含んでいたら,ページがもっと速く読めるように,オートロードを無効にすることを考慮した方がよい.
-
- スラッシュ括弧の処理
- これは,あなたのWebページの中で \(...\) を探し,それらを
<SPAN CLASS="math"> ...</SPAN> タグに変換するのにtex2math プラグインを使用するかどうかを制御します.これはLaTeXファイルを入力するのに使用されたインライン数式の入力を簡単にします.デフォルトの値は1で,その意味はこれらの区切りが実際に探されるということです.
- スラッシュ大括弧の処理
- これは,あなたのWebページの中で\[...\] を探し,それらを
<DIV CLASS="math"> ...</DIV> タグに変換するのにtex2math プラグインを使用するかどうかを制御します.これはLaTeXファイルを入力するのに使用された別行立て数式の入力を簡単にします.デフォルトは1で,その意味はこれらの区切りが実際に探されるということです.
- ダブルダラーの処理
- これは,あなたのWebページの中で $$...$$ を探し,それらを
<DIV CLASS="math"> ...</DIV> タグに変換するのにtex2math プラグインを使用するかどうかを制御します.これはTeXファイルを入力するのに使用された別行立て数式の入力を簡単にします.デフォルトは1で,その意味はこれらの区切りが実際に探されるということです.
- シングルダラーの処理
- これは,あなたのWebページの中で $...$ を探し,それらを
<SPAN CLASS="math">...</SPAN> タグに変換するのにtex2math プラグインを使用するかどうかを制御します.これはLaTeXファイルを入力するのに使用されたインライン数式の入力を簡単にします.デフォルトは0で,その意味はこれらの区切りを探さないということです.これは,ダラー記号は数式モードを表わさないような通常のテキストにも現われるので,シングルダラー記号をインライン数式モードのために使用したければ,特に指定する必要があります.
- エスケープダラーの解消
- シングルダラーの処理を可能にしたのなら,この設定も同様に可能にしたくなるだろう.これは,数式モードの外にある\$
を $に変換するために
tex2math プラグインを使用するかどうかを制御します.これは,ダラー記号から逃れて,数式モードが始まることを防ぎ,ファイル中のテキストで通常のダラー記号として表示される.デフォルトではこれらの変換を行わない.
- ダブルダラーをインラインに
- これは,
tex2math が,あなたのページで $$...$$のためにDIV ではなくSPAN を挿入するかどうかを制御すします.このとき,インライン数式と別行立て数式を区別するために,手動でHTMLを書き換えることができます(例えば,別行立て数式を<CENTER> ...</CENTER> タグの中に置くなど).
- 無効タグの許可
- これは,Webページにおいて
ID="tex2math_off" タグを挿入することにより,tex2math の処理を無効にするかどうか決めます.これは,tex2math がページを処理するかどうかをグローバルに制御するのを容易にします(したがって,jsMathが使用されるかどうかも).あなたのページがブログや掲示板のように複数の人によって作成されているとき,悪意のあるユーザはページ全体で数式を無効にできます.あなたのページにこれが当てはまるなら,この設定を無効にしたくなるでしょう.
- オーダーメイドの区切り文字
- この配列はインライン数式と別行立て数式の最初と最後に使用される4個の文字列を納めています.この方法で,TeX
や LaTeXの方法でなくあなたが望む任意の区切り文字を使うことができます.しかし,これらはHTMLの特別な文字,
< , > , 及び & は含むことができないことに注意してください.これは,これらの文字がHTMLにおけるタグと実体を示すのに用いられるからで,ページがブラウザによって解釈された後までtex2math は走らないので,これらの文字はページをtex2math が処理するときには,もはやテキストの一部ではないからです.特にこれは,通常のHTMLタグに似た区切り文字を作れないことを意味しています.
-
オーダーメイドの区切り文字は,デフォルトでコメントアウトされています.もしあなた自身の区切り文字を使用したければ,例になっているものをコメント解除しあなたの要望に合うように文字列を調整してください.
- ダブルクリックの許可
- ユーザが方程式上でダブルクリックしたとき,jsMathはその方程式の元のTeXコードを示すポップアップウィンドウを表示します.「ダブルクリックの許可」を0に設定することにより,この特徴を無効にすることができます.
- フォント警告の表示
- jsMathはユーザが自分のコンピュータにjsMath-TeX フォントをインストールしたとき最もよく最も速く働きます.これらがないとき,jsMathは,遅くてうまく印刷できない画像代替モードを使用します.ユーザがこれらのフォントをインストールしていないとき,jsMathはあなたのサイトから読み込まれた(数式を含んだ)最初のページでTeXフォントがあなたのサイトの経験を改善することと,そのフォントを得る方法を示す警告を出します.
- 若干のページの著者は,この特徴を無効にすることによって読者を助けていると間違って考えています.しかし,実際には,あなたのサイトで数式の速度と品質を改善するフォントがあって読者がそれをダウンロードできるという知識を奪っっているので,あなたのサイトで貧弱な経験をすることを保証していることになります.警告は一度しか出ず,ボタンをクリックすれば無効にできるので(しかも,コントロールパネルを使って5年まで止めることさえできるので),あなたがこれらの有益なメッセージを止める理由はありません.
- 方法
- この値はjsMathの2つの数式表示方法のどちらを使うかを制御します.デフォルトは「プロセス」の使用(jsMath.
Process() 関数)で,数式を非同期に処理し,ページは数式が活字組みされる前に表示され,ユーザはjsMathが数式を処理するときに方程式が活字組みになっていくのを見ることになります.jsMathは,ページの数式を処理している間,画面左下に進捗メッセージを表示します.
-
「表示の前に処理する」に値を設定することは,しかし,どの数式も表示される前にすべての数式が活字組みされることになります.ほとんどのブラウザで,数式は活字組みされてから現われますが,ページが現われるまで長い遅延があることを意味します(ページが表示される前に,jsMathが活字組みを成し遂げなければならないので).
わずかばかりの数式だけを含んだページにとっては,「表示の前に処理する」は満足のいく効果を生むかもしれませんが,多くの数式を含むページにとっては,そのページのいかなるものでも読めるようになるまで,ページ内のすべての数式が処理されるのを待ちたいとは,たぶん思いません.「プロセス」の設定は,そのページの下の方の数式がまた活字組みされている間でも,ユーザがページを読むのを許します.だから,それがデフォルトの設定になっています.
- 読込みファイル
- この配列は,jsMathが一旦初期化されるときに読み込まれるべきJavaScriptファイルの追加を列挙するのに使われます.これは,jsMath拡張やプラグイン,さらにjsMath関数を呼び出すのに必要な自分自身のJavaScriptファイルをあなたが読み出せるようにする.ファイルを読み出すには,単にそれらを[ ]の中に列挙すればよい.例えば,
- loadFiles: ["plugins/mimeTeX.js","extensions/AMSsymbols.js"]
- は,
mimeTeX プラグインとAMSsymbols 拡張を読み込みます.
ファイルはサーバ上のjsMathフォルダから相対的に読み込まれますが,サーバ上のどこからでも拡張機能を読み込むために絶対URLsを含めることもできます.これらが走っていればjsMathの変数を利用でき,例えば,あなたのペーに必要を思われるマクロを定義するjsMath.Macro()を呼び出すファイルを作ることができます(詳細は,defining macrosのドキュメント参照).
幾つかのプラグインはjsMath.jsが読み込まれる前に必要なので,loadFile リストに加えるべきでないことに注意してください.これらのプラグインが必要なときは,HTMLファイルでeasy/load.js を読み込むちょうど前の所にSCRIPTタグを追加する必要があります. - 読み込むフォント
- この配列は,jsMathで使用するために前もって読み込まれるべき特殊フォントを列挙するために使用されます.これが働くようにするためには,あなたのサーバにこれらのフォントをインストールしておく必要がある点に注意してください(利用可能なファイルの列挙とそれらのインストールの指示についてはextra-fonts download page参照).例えば,
- loadFonts: ["cmmib10"]
- は, Computer Modern bold math italicフォントを読み込みます.一旦読み込まれたフォントにアクセスする方法について,詳細は,adding fonts上のドキュメント参照.
-
- グローバルモードの許可
- jsMathは,後に出てくるページの処理速度を上げるために,活字組みした方程式をキャッシュしておくことができる「グローバルモード」を持っています(詳細はGlobal Mode documentation参照).これは,jsMathにキャッシュを保持する持続的なフレームを与えるためにフレームセットを使用しますが,それはページの著者に幾つかのやっかいな問題を持ち出します.特に,なたのサイトがすでにフレームセットを使用しているとき,jsMathのフレームはこれと干渉することがあります.このため,あなたはjsmathのグローバルモードを無効にしたくなるかもしれず,これは
allowGlobal を0に設定すればできます.これは,jsMathコントロールパネルの「ゴローバルに移行」ボタンを無効にし,ユーザがグローバルモードに入るのを防ぎます.
- 画像フォントを使用しない
- もしあなたがサーバにjsMathの画像フォントをロードしていなければ(それらが大きなスペースを取るために,あるいは,サーバに多数の小さなファイルをアップロードできないために),あなたはj
noImageFonts を1にして,sMathの画像モードを無効にしなければなりません.これはユーザがjsMathオプションパネルから,いずれの画像ベースモードも選択しないようにし,デフォルトの代替モードをunicodeモードにします.しかし,ほとんどの場合,unicodeモードは画像モードのようには効果的でなく,あなたが画像フォントを利用できるようにしたときと比べると,ユーザの経験はかなり貧弱なものとなるでしょう.
-
拡張機能とプラグインの読込み
jsMathには,その働く方法を修正する幾つかの拡張機能とプラグインがあります(詳細はauthor's documentation参照). これらのほとんどは,上に述べたようにloadFiles 配列にそれらを追加することにより読み込むことができます.あなた自身のJavaScriptファイルですら同様にして読み込むことができます.
これらのファイルは,すべてjsMathが読み込まれて初期化された後に走ります.しかし,幾つかのプラグインはjsMathが読み込まれる前に読み込まれなければならず,loadFile 配列に入れることはできません.その代わりに,それらはHTMLファイルでeasy/load.js を読み込む前に,SCRIPT タグで分離して読み込まれなければなりません.
残念ながら,それらのファイルをeasy/load.js それ自身の中に含めることはできません.もっと多くのSCRIPT タグを挿入する追加のdocument.write コマンドを加えればうまく働くと思うかもしれませんが,これは期待したようには働かないことが分ります.そのようなスクリプトタグが実行される順序はブラウザに依存し(MSIEは,それらが出てくる順に実行するとは限りません),スクリプトが正しい順序で読み出されるのを保証するのは困難です.
(このための特徴を見つけるルーチンを開発することは,可能ではあるがやっかいなものです.しかし,需要があればやろうと思います.)
CSSスタイルの設定
活字組みされる数式のサイズや表示される方程式の配置のようなjsMathの幾つかの特徴は,CSSのスタイルによって制御できます.あなたのページでこれらの設定をカスタマイズする方法は幾つかあります.
まず,あなたのページ自身にスタイルを設定するためにSTYLE タグを使うことができ,また,.css ファイルを作り各々のページにこれを読み込むことができます.しかし,easy/load.js にあなたのためにスタイルを設定させることもできます.
.cssファイルを作成したときは,easy/load.js の下端に,例えば次のようなコマンドを追加することができます;
document.write('<STYLE SRC="path-to-CSS-file"></STYLE>');
もしくは,ドキュメントに直接STYLE ブロックを挿入するために,document.write を用いることができます.
あるいは,初期化の間にjsMathがスタイルシートを作成できるように,jsMath.style 配列に値を設定することもできます.例えば,
jsMath.style['div.typeset'] = "text-align:left; margin: 1em 0px
1em 1in";
は,表示される方程式を,ページの左マージンから1インチのところに左寄せします.詳細は,author's documentationのjsMathのカスタマイズのセクション参照.
さらに進んだ設定
jsMathはそのデータやコードの全部を保存するためにjsMath変数を使用しています.jsMath.jsが読み込まれる前に,jsMath変数を設定することにより,これらの値のどれでもオーバーライドできます.例えば,easy/load.js ファイルは,あなたが使いたい構成にjsMathがアクセスするようにjsMath.Easy を設定します.
同様にして,jsMathのデフォルトの振る舞いを変更するために,jsMath変数中の他の値を設定することができます.著者のドキュメントファイルの残りはこの方法を記述しており,しばしばjsMath変数の設定を手動で行う例を与えています.easy/load.js がjsMathを設定してからは,jsMathを新しいオブジェクトで書き換えてそれらの設定をなくさないように気をつけなければなりません.
代わりに,既存のjsMathオブジェクトに追加しなければなりません.これはjsMathそれ自体ではなく,jsMath.name を設定することで行います.例えば,ドキュメントが指示する使用法が
<SCRIPT> jsMath = {styles: {'div.typeset': 'text-align:left; margin: 1em 0px 1em 1in'}} </SCRIPT>
のとき,あなたは,その代わりにeasy/load.js において
jsMath.styles = {'div.typeset': 'text-align:left; margin: 1em 0px 1em 1in'};
または
jsMath.style['div.typeset'] = 'text-align:left; margin: 1em 0px 1em 1in';
と使用します.
与えられたどの name についても,jsMath.name を一度だけ設定しなければなりません.もし,何回も設定すると,最後の値だけが有効になり,第2の代入が行われたときに早い方の設定は失われます.
|