2018年10月05日

MathJaxで書かれたWebページ(HTML)上の数式に対してJavaScript(jQuery)で編集する方法

応援クリックを1日1回宜しくお願いいたします。




MathJaxで書かれたWebページ(HTML)上の数式に対してJavaScript(jQuery)で編集する方法。

ページを読み込み、MathJaxも含めてレンダリングが完了した後で操作する方法についてです。

考えられた方法として、.html()で取得するというものがありましたが、MathJaxによる数式レンダリング後に取得すると同じ数式が増えていくということになり(レンダリング中に取得するとそうでなかった)、別の方法を。

ということで、自サイトであればクロスオリジンでないため、.load()メソッドで該当箇所のみロードして、ソースから編集していく方法で解決できます。




具体例として、フラクトゥール文字「\mathfrak{ }」で文字を装飾した文書において、読者がその文字を読めなかったときのために、ソースコードから「\mathfrak」を無くして表示できるようなUIを設置したかったときがありました。

例:$\mathfrak{AEH}$ $\rightarrow$ ${AEH}$

『量子力学序論』第五章$\S38.$ 光の場

ベクトルポテンシャルや電場、磁場でフラクトゥール文字が使われていますが、文字の風習が重要なときに「B」と書かれているのか「H」と書かれているのかは重要です。
(読めなくても記号に過ぎない、というのは置いておいて、会話するときなどに要る情報です)

そこで、「フラクトゥール文字の装飾を解除する。」のチェックボックスをクリックすると、再読込のような状態から数式レンダリングされ、フラクトゥール文字の装飾のないページが表示されます。

JavaScriptとしては、.load()で読み込み、.replace(/\\mathfrak/g, "")で消して、文書表示箇所にid指定で(.html())表示した後、MathJaxで数式レンダリング開始します。

「\mathfrak」だけ消して、「{ }」を消していないのは、$\mathrm{\TeX}$の数式コマンドにおいて「{ }」があってもなくても表示が変わらないので、「}」を探す手間を省くためです。


オンライン上の教科書のあり方として、このような見慣れぬ書体を解除できるUIの存在もありだと思います。

『代数的整数論』第八章 ガロア体 8.8 判別定理($\mathfrak{D}_{K/k}$の$\mathfrak{P}$成分)





posted by Line Segment at 18:00 | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする