satorumurmur / bibi

Bibi | EPUB Reader on your website.
https://bibi.epub.link
MIT License
833 stars 123 forks source link

MathMLの添え字表示のバグ #126

Open osanshouo opened 2 years ago

osanshouo commented 2 years ago

環境

EPUB ファイル

MathML 3.0 の仕様書に掲載された MathML コード (3.4.7.3節の最初の例) をコピペした次の XHTML 文書についてです.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="ja" lang="ja">
<head>
  <title>Confluent hypergeometric limit function</title>
</head>
<body>
  <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline">
    <mrow>
  <mmultiscripts>
    <mi> F </mi>
    <mn> 1 </mn>
    <none/>
    <mprescripts/>
    <mn> 0 </mn>
    <none/>
  </mmultiscripts>
  <mo> &#x2061;<!--FUNCTION APPLICATION--> </mo>
  <mrow>
    <mo> ( </mo>
    <mrow> 
      <mo> ; </mo>
      <mi> a </mi>
      <mo> ; </mo>
      <mi> z </mi>
    </mrow> 
    <mo> ) </mo>
  </mrow>
</mrow>
  </math>
</body>
</html>

これを EPUB にまとめたファイルを添付します.

MathML.zip

期待される動作

単体の XHTML ファイルを Firefox (Gecko) でレンダリングしたものは「0F1」となっています (次の画像).

image

EPUB ファイルを表示すると同じようになることが期待されます. 実際に Thorium (Microsoft Store 版) で上記 EPUB ファイルを表示するとこの画像と同様の結果が得られることを確認しました.

実際の動作

Firefox + Bibi で EPUB ファイルを表示すると「F10」となっていて, HTML ファイルを表示したものとはレンダリング結果が異なります.

image

添え字「0」の位置が異なります. Firefox でソースを確認すると, Bibi で処理した際に <mprescripts/> というタグが欠落してしまっているように見えます.

satorumurmur commented 2 years ago

@osanshouo 丁寧なご指摘大変ありがとうございました。 サニタイズ処理の過敏さによるものでしたが、おかげさまで、関連の他の問題も含めて修正することができそうです。 手元の開発中バージョンでは解決できていますので、このあと問題が見つからなければ次のバージョンに含められると思います。

osanshouo commented 2 years ago

素早い返信ありがとうございます. 次バージョンで修正されるということで楽しみに待たせていただきます. Bibi という素晴らしい OSS を作成されたことに大変感謝しています.