Web サイトで MathJax を使用しており、セマンティック サポートを追加したいと考えています。
現在、私の MathJax 構成は、TeX 入力を受け取り、HTML-CSS 出力を吐き出すことです (残念ながら、MathML は Chrome ではうまく機能しません)。また、任意のクラスの html を取得して属性.latex
にダンプする jQuery 関数もあります。title
以下のHTML...
<div class="latex">\[ a^2 + b^2 = c^2 \]</div>
次のスクリプトで...
/* jQuery */
$('.latex').attr('title', function() {
return $(this).html();
})
出力します...
<div class="latex" title="\[ a^2 + b^2 = c^2 \]">
<div class="MathJax_Display">a2+b2=c2</div> <!-- becomes prettyprint in browser -->
</div>
明らかに、コンテンツはdiv.MathJax_Display
多数のスパン、クラス、およびスタイルでスタイル設定されます。ここにすべてを入力するつもりはありません。いずれにせよ、数学がレンダリングされた後、ユーザーはdiv.latex
ツールチップに TeX コマンドを表示するためにカーソルを合わせることができます。
ここで、MJ 構成に新しいマクロを定義してtitle
、TeX 入力が少しあれば、新しく作成された HTML-CSS 出力のスパンに属性を追加します。そのマクロを と呼びましょう\title[2]
。入力できるようにしたいのは次のとおりです。
<div class="latex">\[ a^2 + b^2 = \title{c}{'hypotenuse'}^2 \]</div>
そして、これが私が出力したいものです:
<div class="latex" title="\[ a^2 + b^2 = \title{c}{'hypotenuse'}^2 \]">
<div class="MathJax_Display">a2+b2=<span title="hypotenuse">c</span>2</div> <!-- prettyprint -->
</div>
これが発生した場合、ユーザーがc
数学の にカーソルを合わせると、「斜辺」というツールチップが表示されますが、数学の他の領域にカーソルを合わせると、元の入力が表示されます。
アルゴリズムに対する私の考えは次のとおりです。
//疑似コード: 与えられた TeX 入力 '\title{mathstr}{titlestr}': var thespan = document.createElement('span'); $(thespan).attr('title', titlestr).html(mathstr); どういうわけかこれを適切な場所でMJ出力に入れます