前々から気になっていたのですが、HTML での空白の不自然な扱いは
如何なる理由によるものなのでしょうか?
文の冒頭での半角スペースは無視される
文章中では2個目以降の半角スペースは無視
幸い全角スペースについては、上記制約が無いようで正常に表示される
のですが、この半角スペースの挙動は不可解です。
通常、文章を記述する場合は、書きだし部分に空白が必要で、
日本語では、全角スペース1文字
英語では、半角スペース2~4文字程度
と成っています。ところが、先の不可解な動作の為でしょうか、
書きだしに空白の無い不自然な文章のオンパレードです。
又、検索してみると、この不自然な動作に、みなさん結構苦労している
ようです。
一応対策としては、
A, を使用する
B, <p> で囲って、indent をスタイルシートで指定する
C, 見えない画像を張り付ける
D, 全角スペースを使用する
E, 最初から最後まで、pre で 括ってしまう。
が、有るようですが、[ A , B , C ] は面倒ですし [ D ]は、英米人が
使用しているとは思えません。結局 HTML としては、掟破りなので
しょうが[ E ]当たりが妥協点でしょうか?
少々長くなってしまったのですが、何が知りたいかと言うと
○ 空白を無視する不自然な仕様は、如何なる理由に
よるものなのか?
○ 空白を入れる方法として上記意外に簡単な方法が
有るのか?
です。御存じの方がいましたらご教授願えないでしょうか?
# とにかく、あの行冒頭に空白の無い文章が、気になって、
# 気になって、気になって...しょうが無いのです。
K.Moriyama
In article <20040613181552....@ma.kcom.ne.jp>,
"K.Moriyama" <for...@ma.kcom.ne.jp> wrote:
> 通常、文章を記述する場合は、書きだし部分に空白が必要で、
>
> 日本語では、全角スペース1文字
> 英語では、半角スペース2~4文字程度
>
> と成っています。
印刷物などで段落を分かりやすくするためにできた、最近の習慣
ですよね。
<p>で各段落を囲む一般的なマークアップをすれば、普及している
Internet Explorerなどでは、段落ごとに1行程度のアキが入り、
読みやすくなっているので、印刷物の習慣に合わせる必要はない
でしょう。
理由として
http://www.yamanouchi-yri2.com/yrihp/tgb-02/tgb-02-abp.htm
には、「HTML文書やメール文書では文字空き(全角・半角)は
場合によっては“文字化け”の原因にもなるため1字下げをしない
のが習慣化しています.」とありますが、本当かどうか、私は
知りません。
> B, <p> で囲って、indent をスタイルシートで指定する
(中略)
> が、有るようですが、[ A , B , C ] は面倒ですし
Bが面倒というのが理解できません。本文に<p>のマークアップを
していないのでしょうか。Bが最も一般的で簡単な対処法だと
思います。
ワープロソフトでも、各段落の行頭は、スペースではなく
インデント機能で調節するのが一般的かと思います。
--
阿部圭介(ABE Keisuke)
ko...@ps.sakura.ne.jp (NetNews用)
関心 ・専門分野 :
新聞学(ジャーナリズム、メディア、コミュニケーション)
In article <20040613181552....@ma.kcom.ne.jp>, "K.Moriyama" <for...@ma.kcom.ne.jp> writes
> 前々から気になっていたのですが、HTML での空白の不自然な扱いは
> 如何なる理由によるものなのでしょうか?
一番頭に来るのは、改行が一文字空白に変換されるってあれですね。
> 文の冒頭での半角スペースは無視される
> 文章中では2個目以降の半角スペースは無視
これは無視するのが良いと思う。
HTML中の空白改行は、HTMLの論理構成に使うもので、レイアウトには
反映されない
ってのが論理構成/レイアウトの分離からは正しいと思う。
> 通常、文章を記述する場合は、書きだし部分に空白が必要で、
こういうのは、
表現形式は style sheet で論理構成とは別に規定する
となるべきなんですよね。なので、最初の改行->一文字空白も
CSSで指定できるべきものなわけなんだけど。
> 書きだしに空白の無い不自然な文章のオンパレードです。
僕は開けないです。不自然だとも思わない。っていうか、コンピュ
ータ関係だと、段落は一行開きの方が普通だと思う。
こういう書き方は、かえって読みづらいですよね。段落が
変わった感じがないでしょ? 何故かと言うと、物理的な本と違って、
仮想的に無限の大きさを持つ画面表示では、段落分けに空間を取れ
るからだと思います。
こういうように一行開けた方が良い。ただ、改行を打たずに文章
を書くのが Windows 流なみたいで、それは、それで、一つの
流儀だと思うんだけど、それだと破綻するシステムが多いんだよな。
特に、WWW base BBS では、そうみたい。
> B, <p> で囲って、indent をスタイルシートで指定する
これが普通でしょ?
> E, 最初から最後まで、pre で 括ってしまう。
> 使用しているとは思えません。結局 HTML としては、掟破りなので
> しょうが[ E ]当たりが妥協点でしょうか?
掟破りなのに妥協点なのかなぁ。
> # とにかく、あの行冒頭に空白の無い文章が、気になって、
> # 気になって、気になって...しょうが無いのです。
僕は逆に fj で
行頭に空白、段落に一行開き無し
を見ると、読み飛ばしてしまいます。読めないんだもの。段落ごとに
頭にいれるっていう分離が難しくなるんですよね。行間を開ける
工夫をすると少しはましになるんですけど、それも読みにくくって、
やめてしまいました。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
> 前々から気になっていたのですが、HTML での空白の不自然な扱いは
> 如何なる理由によるものなのでしょうか?
>
> 文の冒頭での半角スペースは無視される
> 文章中では2個目以降の半角スペースは無視
欧文電子メールの影響ではないかと思います。
手元のもの(といっても SPAM しかありませんが)をあさってみた限り、
欧文の電子メールって、行頭に空白をあけないのが主流のようです。
> ○ 空白を入れる方法として上記意外に簡単な方法が
> 有るのか?
は欧文テキストエディタなら簡単に本文に入れられますので、必要なら
それを使っているのではないでしょうか。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp
At Sun, 13 Jun 2004 18:15:52 +0900,
K.Moriyama <for...@ma.kcom.ne.jp> wrote:
> 又、検索してみると、この不自然な動作に、みなさん結構苦労している
> ようです。
そうなのか…。それは空白文字でレイアウト構造をどうこうしようと
しているからなんじゃないかなあ。
河野氏と同じですけど、
> B, <p> で囲って、indent をスタイルシートで指定する
僕もこれです。p タグにしても CSS でかなりいじったりしますが。
> # とにかく、あの行冒頭に空白の無い文章が、気になって、
> # 気になって、気になって...しょうが無いのです。
空白なんてただの飾りです。だから CSSでやってしまうのです。
--
柏崎 礼生 (Hiroki Kashiwazaki)@HUIIC
Ph.D candidate in the Division of Electronics & Information
Engineering, Hokkaido University
mailto:r...@cc.hokudai.ac.jp
Tel:+81-11-706-2998
> 前々から気になっていたのですが、HTML での空白の不自然な扱いは
> 如何なる理由によるものなのでしょうか?
欧文の組版規則には詳しくありませんが、
1. HTMLは文書の論理構造を記述するのもので、見た目を記述するものではない。
2. 欧文組版では、1行の横幅を調整するときに、空白を適当に増減させて行う
こともある。
あたりでしょうか。で、見た目を記述するのがCSSである、と。このあたりは
LaTeXという文書整形システムを使ったことのある人間には自明かもしれませ
ん(世間一般の人には理解しにくいようです)。
> 一応対策としては、
>
> A, を使用する
> B, <p> で囲って、indent をスタイルシートで指定する
> C, 見えない画像を張り付ける
> D, 全角スペースを使用する
> E, 最初から最後まで、pre で 括ってしまう。
>
> が、有るようですが、[ A , B , C ] は面倒ですし [ D ]は、英米人が
> 使用しているとは思えません。結局 HTML としては、掟破りなので
> しょうが[ E ]当たりが妥協点でしょうか?
日本語で文章を書くなら、Dのように全角スペースを入れてしまえばいいと
思いますが……。欧文でCSSを使うとなると、どう指定するんでしょうねえ。
\parindent=1zw、ではなさそうだし。
--
Tomoaki Akiyama 秋山 智朗
mailto:tomoaki...@akiyama.nu
http://tomoaki.akiyama.nu/
> 日本語で文章を書くなら、Dのように全角スペースを入れてしまえばいいと
> 思いますが……。欧文でCSSを使うとなると、どう指定するんでしょうねえ。
> \parindent=1zw、ではなさそうだし。
<p style="indent: 1.5em;"> あたりでよかったと思います。
ちなみにこの数字が LaTeX のデフォルト。
フォローが沢山あり、どこへ付けて良いのやら...
取り合えずここへに付けさせてもらいます。
In Sun, 13 Jun 2004 19:33:25 +0900
ABE Keisuke <ko...@ps.sakura.ne.jp> wrote:
> > In article <20040613181552....@ma.kcom.ne.jp>,
> > "K.Moriyama" <for...@ma.kcom.ne.jp> wrote:
> >
> > > 通常、文章を記述する場合は、書きだし部分に空白が必要で、
> > >
> > > 日本語では、全角スペース1文字
> > > 英語では、半角スペース2~4文字程度
> > >
> > > と成っています。
> >
> > 印刷物などで段落を分かりやすくするためにできた、最近の習慣
> > ですよね。
[ 最近の習慣 ]というのは少々微妙な言い回しですが、少なくとも
私の知る範囲では、上記構成に成っていない本は見たことが無いので、
数十年前からの習慣かと...
On Sun, 13 Jun 2004 15:40:09 +0000 (UTC)
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) wrote:
> > 前々から気になっていたのですが、HTML での空白の不自然な扱いは
> > 如何なる理由によるものなのでしょうか?
>
> 一番頭に来るのは、改行が一文字空白に変換されるってあれですね。
そうなんです。あれも結構頭に来ます。
On Sun, 13 Jun 2004 15:40:09 +0000 (UTC)
ko...@ie.u-ryukyu.ac.jp (Shinji KONO) wrote:
> > 文の冒頭での半角スペースは無視される
> > 文章中では2個目以降の半角スペースは無視
>
> これは無視するのが良いと思う。
>
> HTML中の空白改行は、HTMLの論理構成に使うもので、レイアウトには
> 反映されない
>
> ってのが論理構成/レイアウトの分離からは正しいと思う。
On Mon, 14 Jun 2004 07:01:01 +0900
IIJIMA Hiromitsu <delm...@ht.sakura.ne.jp> wrote:
> 欧文電子メールの影響ではないかと思います。
>
> 手元のもの(といっても SPAM しかありませんが)をあさってみた限り、
> 欧文の電子メールって、行頭に空白をあけないのが主流のようです。
On 14 Jun 2004 12:14:13 +0900
Tomoaki Akiyama <tomoaki...@akiyama.nu> wrote:
> > 欧文の組版規則には詳しくありませんが、
> >
> > 1. HTMLは文書の論理構造を記述するのもので、見た目を記述するものではない。
> > 2. 欧文組版では、1行の横幅を調整するときに、空白を適当に増減させて行う
> > こともある。
> >
> > あたりでしょうか。で、見た目を記述するのがCSSである、と。このあたりは
> > LaTeXという文書整形システムを使ったことのある人間には自明かもしれませ
> > ん(世間一般の人には理解しにくいようです)。
うーん、どうやら紙での文章作成の概念を、そのまま適用しようとしている
私に問題が有るようですね。感覚的なナレの問題もあるのでしょうか...まだ
よく理解出来ない部分もありますので、みなさんの指摘をよく考えてみたい
と思います。
# 質問の内様からすでにお気付きかとは思いますが、私自信は、HTMLに
# 関しては、まったくの初心者です。このような質問に回答して貰い
# 感謝しています。みなさん、ありがとうございます。
K.Moriyama
In article <20040615000602....@ma.kcom.ne.jp>,
"K.Moriyama" <for...@ma.kcom.ne.jp> wrote:
> > > 印刷物などで段落を分かりやすくするためにできた、最近の習慣
> > > ですよね。
>
> [ 最近の習慣 ]というのは少々微妙な言い回しですが、少なくとも
> 私の知る範囲では、上記構成に成っていない本は見たことが無いので、
> 数十年前からの習慣かと...
少なくとも明治初期の新聞などは段落分けをしていなかった
ようです。それ以前も日本語で段落分けをする習慣はなかった
のではなかったという話を聞いたことがあります。
もちろんいまさら段落分けのない文章を書こうなんて主張
しませんが、段落分けを行い、その目印は行頭の1字下げという
のは、長い歴史を考えればごく最近の習慣でしょう。
メディアの特性に合わせてさまざまな方法が出てくることを
受け入れてはどうでしょうか。
> <p style="indent: 1.5em;"> あたりでよかったと思います。
http://www.w3.org/TR/CSS1#text-indent
http://www.w3.org/TR/CSS21/text.html#indentation-prop
あたりを見ると、text-indentのようです。したがって、
p {text-indent: 1em;}
とか書いたファイルを用意しておいて、<head></head>の間で
<link href="/basic.css" rel="stylesheet" type="text/css" title="basic">
みたいな感じで引用すればOK、なのかな。あ、これとmargin-leftを組み合わ
せると、逆インデントもできますね。
森山さん>
> そうなんです。あれも結構頭に来ます。
おそらく日本語の文章中での改行の話だと思いますが、例えば
<p>
日
本
語
</p>
が
日本語
にならずに
日 本 語
のように表示されるならお使いのブラウザの空白処理がイケてないだけかと。
Internet Explorer は Version 4 の頃から前者のように処理しますし、
Netscape でも 7.1 以降、Mozilla では 1.1 以降なら前者のように処理します。
いにしえの Mosaic-L10N とかあさださんの Lynx 日本語化パッチでも前者の
ように処理してたはずです。
一般的に HTML/XHTML 中での空白文字の扱いをどうすべきかというのは
HTML4 / XHTML 1.0 / Modularization of XHTML でそれぞれ微妙に食い違って
たりしてなかなか頭の痛い点なんですが、将来的には表示に関しては現在
W3C 勧告候補になっている "CSS3 Text Module" の "7.2. White space control"
の規定に従って処理すべし、ということに一本化されるはずです。
cf. http://www.w3.org/TR/2003/CR-css3-text-20030514/#white-space-props
--
某関係者
In article <cap9tn$4vo$1...@news.sfc.keio.ac.jp>, Masayasu Ishikawa <mim...@sfc.keio.ac.jp> writes
> > 一番頭に来るのは、改行が一文字空白に変換されるってあれですね。
> のように表示されるならお使いのブラウザの空白処理がイケてないだけかと。
そうそう。なかなか直らないものなんだけど。
> 一般的に HTML/XHTML 中での空白文字の扱いをどうすべきかというのは
> HTML4 / XHTML 1.0 / Modularization of XHTML でそれぞれ微妙に食い違って
> たりしてなかなか頭の痛い点なんですが、将来的には表示に関しては現在
> W3C 勧告候補になっている "CSS3 Text Module" の "7.2. White space control"
> の規定に従って処理すべし、ということに一本化されるはずです。
なるほど。MIMEでも苦労したし、仕方ないんだよな。
この文章は結構複雑だけど、肝は?
禁則処理とかも、時代とともに変わるものなんでしょうけどね。
私も、サイトを構築するために CSS をいじっていた当初、
p要素にそのような指定をしていました。
しかし、p要素は箇条書きなどのブロック要素を中に入れることができません。
つまり、
<p>
……次の場合がある。
<ul>
<li> ほげ </li>
<li> ふが </li>
</ul>
ここでほげとは……。
</p>
とは書けないため、
<p>
……次の場合がある。
</p>
<ul>
<li> ほげ </li>
<li> ふが </li>
</ul>
<p>
ここでほげとは……。
</p>
のようにせざるを得ず、その結果、上記の CSS だと箇条書き直後に
余計なインデントが入ってしまいます。
どうやら 「p は箇条書きだ」と単純に考えることに無理があるようで
(検索すると、そのような主張をされている方の文章がたくさん見つかります)、
代替案としては、例えば div要素の class属性へ“paragraph”を
割り当てて使うという手があります。すなわち
<div class="paragraph">
<p>
……次の場合がある。
</p>
<ul>
<li> ほげ </li>
<li> ふが </li>
</ul>
<p>
ここでほげとは……。
</p>
<div>
など書いて、CSS の方でインデントを調整するわけです。
# 面倒なので私は使ってませんが。
でも div で解決するのは美しくないので、できれば
section要素とか paragraph要素などがあってほしいんですけどね。
-- AIDA Shin
河野さん>
>この文章は結構複雑だけど、肝は?
肝は、望ましい空白処理はスクリプト/文字種によって異なるので、前後の
文字種に応じて良きにはからえ、ってとこです。改行に関しては大まかに
言って、ラテン文字やギリシャ文字、キリル文字の場合はスペースに変換、
CJK 文字の場合は除去、タイ文字やクメール文字の場合は zero width space
に変換するか除去することになります。
なお「表示に関しては」と断った通り、これはあくまでアプリケーションに
渡された解析済み文書を表示する段階での話です。HTML 3.2 あたりだと、
連続する空白文字は1個のスペースと同等に扱う、とか能天気に言っちゃって
ますが、これが XHTML 2.0 あたりになるとソース中の空白文字はそのまま
アプリケーションに渡され、表示する段階で上記のような処理を行なう、と
言うように明確に区別されるはずです。
>禁則処理とかも、時代とともに変わるものなんでしょうけどね。
CSS3 Text Module には 'word-break-cjk' だの禁則関係もいろいろと入って
ますが、正直誰がフル実装するんでしょうね、これ。かれこれ1年以上野晒し
ですが、一体いつになったら勧告候補から次の段階に進むことやら。
--
Masayasu Ishikawa
# とか他人事のように言ってみる。
On Mon, 21 Jun 2004 12:15:00 +0900
AIDA Shin <ai...@tutkie.tut.ac.jp> wrote:
> でも div で解決するのは美しくないので、できれば
> section要素とか paragraph要素などがあってほしいんですけどね。
"P" って Paragraph じゃないかと思うんですけど…。
逆に箇条書き直後の P に「継続」を表す別クラスを指定して、
インデントしないように指定しておくとか。
--
お役に立てない(^^;
OBATA Akio / ob...@zit.to
せかいは ひろがる ちきゅーは まわる。
どうやら 「p は箇条書きだ」と単純に考えることに無理があるようで
の「箇条書き」は、もちろん「段落」の誤りです。
OBATA Akio wrote:
>>でも div で解決するのは美しくないので、できれば
>>section要素とか paragraph要素などがあってほしいんですけどね。
>
> "P" って Paragraph じゃないかと思うんですけど…。
えーと……、確かにそうでしょうね (^^;
私が述べたかったのは、p要素がブロック要素の葉(leaf)にしかなれないと、
箇条書きや引用文を内部に入れられないので、
<p> ~ </p> で日本語の「段落」を表現するのには不便ではないのか、ということです。
英語でも、「箇条書きや引用文の前後の文は、それぞれ別の paragraph となる」
などとは考えていないと思うのですが、私が英語表現に疎いだけで、実は
「英語の paragraph と HTML の p要素は1対1に対応する概念」
だったりするのかもしれません (^^;
> 逆に箇条書き直後の P に「継続」を表す別クラスを指定して、
> インデントしないように指定しておくとか。
なるほど。
でもできるなら論理的な文の塊で括りたいですね。
-- AIDA Shin
>英語でも、「箇条書きや引用文の前後の文は、それぞれ別の paragraph となる」
>などとは考えていないと思うのですが、私が英語表現に疎いだけで、実は
>「英語の paragraph と HTML の p要素は1対1に対応する概念」
>だったりするのかもしれません (^^;
そんなことはないです。HTML の p が現在のような仕様になっているのは単に
歴史的な事情でしょう。
# 6年くらい前にもここでそんな議論をしたような。
ちなみに
>でも div で解決するのは美しくないので、できれば
>section要素とか paragraph要素などがあってほしいんですけどね。
XHTML 2.0 では section 要素が導入されますし、p の中に箇条書きや引用文も
入れられます。
--
Masayasu Ishikawa
# 次のドラフトがもうすぐ出る
# か?
> XHTML 2.0 では section 要素が導入されますし、p の中に箇条書きや引用文も
> 入れられます。
すばらしい.きっとテーブルも入れられるんですよね.ね.
http://www.w3.org/TR/xhtml2/mod-block-text.html#s_block-textmodule
うん,そうみたいですね.
----------- ニュースはみんなのために /|\ メールは個人のために -----------
太田 尚志 - OTA Takashi - http://web.sfc.keio.ac.jp/~t00156to/ ICQ#:39782589
# で,いまその話題を研究室で振ったら,
# MSさんがいつ実装するんだろうねえ,という話に…….
In article <koabe-EF325F....@news01.sakura.ne.jp>,
ABE Keisuke <ko...@ps.sakura.ne.jp> wrote:
> もちろんいまさら段落分けのない文章を書こうなんて主張
> しませんが、段落分けを行い、その目印は行頭の1字下げという
> のは、長い歴史を考えればごく最近の習慣でしょう。
>
> メディアの特性に合わせてさまざまな方法が出てくることを
> 受け入れてはどうでしょうか。
てなことを書いていながら、自分のところではきっちり
1字下げのCSSを適用していました。(^^;;
以前、印刷を意識して、フォントを明朝にするなどして作って
いて、すっかり忘れていたのでした……。