少し前にWord文書由来のhtmlを触る機会があり、フォントサイズを相対指定にする必要に迫られたのが案外うまくいったのでメモ。

問題点

wordが出力したファイルはhtmlからcssまで、font-sizeやmargin,padding等すべてpt指定であるという点。文書の忠実な再現のために細かく指定してあるので数がやたら多い。したがって計算の必要があるこの処理を手書きではこなせないという点。

解決方法

結局シェルスクリプトでやった。 px = pt / 72 * 96に従っていちどpxにしたあと、em = px / px(parent)よりemが算出できる。 早い話が次の式になるので、ざっくりこれを使う。

em = pt * 4 / 3 / px(parent)

余談) この件でいろいろ調べているうちにhtmlのfontsizeを62.5%に指定するやり方というものを知った。頭いいな

参考

数式は以下のページより