[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 参加希望



小林です。

> 「ASCII 文字の両側に空白」チェックをやっていてちょっと気になったのですが、
> w3mで表示すると日本語と日本語の間の空白が表示されないみたいです。
> 
> $ cp index.wml index.wml.html
> 
> として、Firefoxで表示すると日本語間の空白が表示されます。
> これはw3mの設定の問題でしょうか。どちらに合わせたらよいのでしょう。

ソースコードなどを読んで調べたわけではなく経験的な話なので間違っていた
らすみませんが、w3m は、

* 改行前が ASCII なら空白を入れ、
* 改行前が漢字やひらがななら空白を入れない

という挙動だと思います。というのも、行末が ASCII なら英語など欧米諸言
語の文章だと思われるので、

* 単語間にはスペースを入れ、
* 単語内では改行せず単語間で改行して

表示されることを期待する一方で、行末が日本語の漢字・ひらがな・カタカナ
なら日本語の文章だと思われるので、

* 明示されないかぎりスペースは入れず、
* どの行も左から右までいっぱいに文字が表示されるように

表示してもらいたいですよね。そういったそれぞれの言語に合わせたルールと
考えればよいと思います。

これはプレインテキストでテキストを表現してきた UNIX の世界に昔からある
慣習に従ったものともいえます。例えば Emacs の auto-fill などでもそうな
りますし、LaTeX の改行も同様です。

一方で (こちらも、表示させるときに一々 HTML のソースを眺めたりしないの
でなんとなく感じているだけかもしれませんが) Firefox など GUI のブラウ
ザは、昔から改行はスペースとして扱うのが普通だったと思います。

ということで、正解は

  「ウェブブラウザによる改行やスペースの扱い方の違いのせい」

です。で、我々としては、できるだけどのウェブブラウザでも綺麗に表示され
てほしいので、

  「w3m のようなテキストブラウザでも綺麗に表示されるように、ASCII と日
  本語との間には空白を入れる」

一方で、

  「w3m では日本語と日本語の間に改行が挟まっていてもまともに表示される
  としても、その他のブラウザのことを考えて、なるべく日本語と日本語の間
  には改行を入れない」

具体的には、

  「属性をもったタグや ASCII は積極的に改行に利用させてもらう :-)」
  「日本語と日本語の間で改行を入れるなら、句読点の後など、キリがよくス
  ペースが入ってもおかしくないところで切る」
  「日本語が句読点なしに長く続いてしまったりして、どうしても切りたかっ
  たら、行末に \ を入れてエスケープする」

というようなポリシーで作業しているつもりです。

-- 
|:  Noritada KOBAYASHI
|:  Dept. of General Systems Studies,
|:  Graduate School of Arts and Sciences, Univ. of Tokyo
|:  E-mail: nori1@xxxxxxxxxxxxxxxxxxxxxxx (preferable)
|:          nori@xxxxxxxxxxxxxxxxxxx
|:  Key fingerprint = AB26 9533 81DA 997B 3C06  4380 19BB ADA0 695C 9F53