latex2html (2)

昨日に続いてこの話を。

latex2html だけど、思ったよりちゃんと変換をしてくれる。ルビを使っているとその部分がうまく変換されない(HTML はルビを扱えるのだけど)、というのと、OTF パッケージを使用している場合に変換がうまく行えない(これは想定の範囲内だった)、ということはあるけれど、たとえば論文とか、何かのソフトのドキュメントとかを変換するのには、たしかにこれは重宝しそうである。

……などと思っていたら、例の TeX フォーラムの質問者が、「文字化けがまだ解消されない」と書いている。よくよく聞いてみると、\documentclass に article を設定していると文字化けが生じ、jarticle を設定していると文字化けが生じない、という。

あー、なるほど。おそらくこの人は、TeX / LaTeX レベルのことしか見えなくなってしまっているに違いない。日本語の HTML の文字化けのかなりの割合が、charset の不適切な設定に起因する、ということは、僕にとっては基本的な経験則なのだけど、ほとんどの人にとってはそうではないのだろう。

質問者が提示してきた2種類の LaTeX document から DVI ファイルを生成してから、latex2html で HTML ファイルを生成して比較をすると……ああ、やっぱり。article を指定した方の LaTeX document から生成した HTML ファイルには、

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
がない。これが、質問者が「文字化けする」と言う原因に違いない。

HTML において META タグで charset を明示することは must ではないはずなのだ。たとえば、僕の手元の HTML document では全て META タグで charset は管理しているのだけど、万が一これが欠落していても、それで確実に文字化けする、ということはないはずだ(誤った charset を明示していたら、ほぼ確実に化けると思うけれど)。まあでも、質問者の言う「文字化け」の原因は、これ以外にはちょっと思いつかない。

latex2html に charset を指定する META タグの生成を強制するためには、~/latex2html-init 内に、

$charset = "UTF-8";
と明示しておけばよい。一応その旨回答しておいたけれど……うーむ。META タグでの charset 設定がないと確実に文字化けする環境だったら、たしかにここでハマる可能性はあるかもねえ。ただし、複数種類のブラウザで検証していたら、このことには早々に気付きそうな気もするけれど。生成された HTML document の diff をとってみる、とか、思いつかないものなのだろうか……いや、責める気は毛頭ないですよ。確かにハマるかもしれないからね。

2012/01/07(Sat) 11:15:23 | コンピュータ&インターネット
Tittle: Name:

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(902)

Link

Search

Free

e-mail address:
e-mail address