*.chmファイルの小さい文字のカラクリ

*.chmファイルの呼び出し方による差である。
上が*.htmlファイルからJavaScriptによる呼び出しで、下が*.chmのダブルクリックによる通常の起動である。

左側のナビゲーション・ペインの文字サイズはほとんど違いがない。しかし、右側の本文の文字サイズはかなり小さくなっている。ただし、画像はそのままのようである。

実は、この*.chmを作成するときに、その原文になる*.htmlファイルの文字は小さいサイズの文字を使っている。というのは、通常の*.htmlファイル(たとえば今見ているこのファイル)と同じ文字サイズにすると、*.chmファイルにしたときに、予想外に大きな文字になってしまうからである。それで、小さい文字サイズで作成したものである。

ということは、上側の小さい文字は、この原文になった*.htmlファイルの文字サイズである。それが表示されているわけである(推測)。
左側のナビゲーション・ペインの文字は*.htmlファイルとは関係がない。これは*.hhcのファイルにある文字である。したがって、本来の*.htmlファイルとは無関係だということになる。それで文字サイズも変わらない。


上が*.htmlからJavaScriptによる*.chmの呼び出し。
下が単独の*.chmの起動。
文字サイズが違うことがわかる。


さて、上での推測の確認である。
下図の左側は*.htmlファイルからJavaScriptによる呼び出しで、右側はその原文になった*.htmlファイルをIEで見たものである。
小さい文字のほうは、原文の*.htmlが出ているということになる。
「小さい文字のカラクリ」はここにあったということになる。これを逆にいえは、*.chmは元の*.htmlの文字を大きく表示しているということになる。




総括

CHMファイルでの文字サイズはHTMLファイルとは「基準」が異なるようである。同じCSSファイルを使っていても、両者の見え方は大きく異なる。

今思えば、*.hhpに「Default Font=MS P明朝,9,128」となっていたり、*.hhc*.hhkに「<param name="Font" value="MS 明朝,9,128">」とデフォルトで設定されていたのは、「9pt」がCHMでの標準的にサイズだという示唆だったとも考えられる。それを通常のHTMLファイルにも引き延ばして考えてしまったために、両者の文字サイズの「基準」の違いに気がつかなかった。

ここでの「9」「9pt」というのは絶対的な不動のサイズではなく、それぞれのファイルでしか意味を持たない、いわば相対的なサイズだったわけである。今まで文字サイズといえばHTMLファイルばかり考えてきたが、CHMファイルもそれと同じだとしたことに「勘違い」の原因があったのかもしれない(私見)。

さて、重要なことは、同じCSSを使っていても、CHMファイルの原文になるHTMLファイルとWEBに使うHTMLファイルとは文字サイズの基準が異なる。両者の共用はできない、ということである。


これはCHMファイルのベースの文字サイズを「9ptにした場合である。
単独のHTMLとしては文字は小さすぎる。
ちなみに、これはHTMLファイル(このファイル)の「11pt」に相当する。

そうなると、ボタン画像の高さは13pxにしたほうがいいかもしれない。
今までの15pxでは不相当に大きくなる。

- 2019/02/25 -