忘れたときに備えた記録

トップ «前の日記(2012-09-30(Sunday)) 最新 次の日記(2012-11-30(Friday))» 編集
2005|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|11|12|
2009|01|02|03|04|05|06|10|12|
2010|06|07|08|12|
2011|07|09|
2012|09|11|
2013|02|03|09|
2015|10|11|
2016|01|08|11|
2017|02|08|10|
2018|11|
2020|03|

2012-11-11(Sunday)

moでカッコが伸びる

例えば

f(x)=frac12

と書いて変換したMathMLは、丸括弧を

<mo>(</mo>...<mo>)</mo>

と変換します。

mythさんから指摘を受けたのですが、MathMLでは本来、こう書いた場合の丸括弧は同じ行にある式の高さにあわせて縦に伸びてしまいます。

試したところ、Firefoxでは伸びませんが、IEにMathPlayerを入れたものだと伸びます。

以下の画像は上が何も工夫しない丸括弧、下がちょっと加工した丸括弧です。

こっちがFirefoxで

firefoxでの丸括弧

こちらがIE+MathPlayerです

IEでの丸括弧

そもそもなぜ伸びてしまうのかというと、MathML2の仕様によると、moにはstretchy属性というものがあって、この値がtrueだと伸びます。 デフォルト値はfalseなのですが、ここでOperator Dictionaryというのがあり、この中で括弧の類のstretchy属性はデフォルトでtrueになる、と記述されています。

一方LaTeXでは、明示的に\leftと\rightで囲んだりしない限り、縦には伸びません。

という訳でLaTeXからの変換では、括弧はstretchy='false'と指定するのが良さそうです。

Tags: MathML

MathMLライブラリ 0.14公開

というわけで、上記の修正を行ったMathMLライブラリ 0.14 を公開しました。 http://www.hinet.mydns.jp/?mathml.rb からダウンロードできます。

また、gemの方も更新してrubygems.orgにアップしたので、そちらからもインストールできるようにもなるはずです。

今回の修正はちょっと大雑把で、一部を除いてmo要素には fetchy='false' を追加する、という形になっています。 本当は記号ごとにデフォルトの値とLaTeXの場合とを調べて分けるべきなんですけど、ちょっと調べている時間がなくてこのような変更になりました。

「使ってる記号で、LaTeXでも伸びるのにMathMLに変換したら伸びなくなった~」というケースがあったらお知らせくださいませ。

Tags: MathML 更新

マイナスとハイフン

これについても指摘を受けたので、ちょっと調べてみたのです

マイナスとハイフンの表

こちらはIE+MathPlayerでもFirefoxでも挙動は変わらないようで、mtextの中でHyphen-minus(-, #%x2d)を使うと短くなるようですが、mo要素の場合は&minus;と変わらないようです。

Tags: MathML
本日のツッコミ(全4件) [ツッコミを入れる]
_ myth (2012-11-11(Sunday) 17:59)

Hiki のほうに書いたら Interal Server Error になったので,こちらに書かせていただきます。 <br>ご対応たいへんありがとうございました。 <br>マイナスの件は,ある組版ソフトが MathML 3.0 にまだ対応してないという話なのですが,いずれ対応して直ると思います。

_ myth (2012-11-11(Sunday) 18:05)

ところで,ディラックのブラケット記号のような,¥left¥langle と ¥right¥rangle だけでなく真ん中の縦棒も伸ばしたいようなときはどう書けばいいのでしょうか?

_ ひらく (2012-11-11(Sunday) 18:32)

HikiのInternal Server Error、どうもコメントをスパム扱いしてるんですが、その時にエラーになってしまうようです。マズいなぁ(汗 <br> <br>ディラックのブラケット記号の件ですが、僕があまりその手の式を使ったことがないですがLaTeXだとどう対処してるんでしょうか。array環境とかになっちゃうのかな。 <br> <br>ふと思いついてHikiのSandboxの方で \left\langle f \left|\frac12\right.\right\rangle というのを試しましたが、中のDOM構造が胡散臭い感じになってるかもです。 <br> <br>究極的には、専用のLaTeXコマンドをRubyで実装する形になるのかもしれません。\\dirac{f}{...}みたいな感じで

_ myth (2012-11-12(Monday) 11:37)

braket.sty というスタイルファイルがあるそうです。

[]