おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

横書きの段落開始は1文字あけるか?

横書きの段落開始は1文字あけるか

インターネットのある記事で、「ブログでは段落の開始が1文字下がっていないものが多い。日本語の横書きでは段落の開始を1文字あけるべきか、あけなくてもよいのか」ということが取り上げられていました。このブログでも字下げしているときと、していないときがあります。本来、日本語の段落開始は1文字分字下げすることになっています。これは縦書きでも横書きでも同じです。英語の場合も段落のはじめは字下げするそうですが、1文字ではなく、ハーフ・インチ(1.27cm)程度らしいです。これをインデントといいます。また、メールではインデントをつけなくて良いらしいです。ただし、インデントしないと、段落の切れ目がわかりませんから、1行空けるということです。日本語ブログでも、段落開始の字下げがない場合は、段落の切れ目で空行を入れています。ということは、英語のメール形式ということですね。

HTMLの段落はpタグで表現

HTMLでは、pタグ(<p>~</p>)が段落を表します。ブラウザで表示すると、段落と段落の間は空行が入って表示されます。ですから、HTMLはメール形式ですね。字下げしなくても段落の切れ目はわかります。そこで、字下げせずに書いても大丈夫ということではあります。そのようにしてHTML文書を書いた場合、Javascriptで自動的に段落の開始を字下げできないか、考えてみました。

日本語の字下げには、例外があって、かっこ(「)で始まるときは字下げしません。そこで、pタグのテキストを調べ、「開始がかっこでなければ字下げする」スクリプトを作りました。このスクリプトは文書が読み込まれた後に自動的に実行されなければなりませんので、windows.onloadを使います。

自動字下げのスクリプト

自動字下げのスクリプトを示します。
<script>
window.onload = function () {
  ptags = document.getElementsByTagName("p");
  for (i = 0; i < ptags.length; i++) {
    ptag = ptags[i];
    s = ptag.textContent;
    if (s.substr(0,1) != "「") {
      ptag.textContent = " "+s;
    }
  }
};
</script>
このスクリプトはすべての段落にpタグがきちんと付いていれば、上手く動くと思います。