1. 行の はじめの「。」は、どうして きに なるの?
1. 行の先頭の「。」に、編集者や批評家が反応した
1. 行頭の句点に反応した人たち ── 2010年の電子書籍端末の宣伝画面
2010年、ある でんしの 本の きかいを しょうかいする がめんが、ニュースに なりました。がめんの 行の はじめに「。」や「、」が ならんで いたのです。
本を つくる しごとの 人たちは、「きもちが なえる」と いいました[1]。この きかいを だした 会社は、せっていで きんそくしょりに たいおうして いると せつめいして います[1]。
たった 1もじの いちで、どうして こんなに きに なるのでしょう。
2010年10月、KDDIの電子書籍端末を紹介する資料の画面に、句点や読点が行の先頭に来ている例がありました。それを見た編集者や批評家が、「気持ちが萎える」などと批判したと報じられています[1]。KDDIは、設定すれば禁則処理に対応していると説明したそうです[1]。
ここで大事なのは、だれかを責めることではありません。たった1文字の置き場所に、本を作る人がこれだけ敏感に反応する。それくらい「行の先頭に置かない」という決まりが、身近で強い感覚になっていたということです。では、なぜ置いてはいけないのでしょうか。
2010年10月、KDDIの電子書籍端末の広報資料に、句点・読点が行頭に来る画面が載った。編集者や批評家は「行頭に句点がくる画面を平気で広報用に載せている時点で気持ちが萎える」などと反応し、KDDIは設定によって禁則処理に対応していると説明した[1]。
この例が示すのは、特定の企業の失敗ではなく、行頭禁則が専門家のあいだで「あって当然」の感覚になっていたことだ。1文字の位置に、これほど強い反応が起きる。では、その禁止の根拠は何なのか。W3Cの資料に当たると、意外に控えめな答えが書かれている。
2. どうして「。」を さいしょに おいちゃ だめなの?
2. 置いてはいけない理由は、意外にあっさり書かれている
2. 行頭禁則の理由 ── W3Cが挙げる「体裁」と、もう一つの説明
この きまりを「きんそく」と いいます。行の はじめに おいては いけない もじ、行の おわりに おいては いけない もじを きめた きまりです[2]。
わけは、じつは あっさり して います。W3Cという ところの しりょうには、「かっこうが よく ないから」と かかれて います[2]。
べつの せつめいも あります。「。」や「、」は、まえの もじに くっついて いる ものと かんがえるのです。くっついて いる ものが、行の おわりと はじめに わかれたら おかしい、と いう わけです。
禁則処理は、行の先頭や末尾に置いてはいけない文字を決める組版のルールです。W3Cの「日本語組版処理の要件」には、終わり括弧や句読点などを行頭に置いてはならない、これは体裁がよくないからだ、と書かれています[2]。理由は「体裁」、つまり見た目の問題として、かなり控えめに述べられているのです。
別の説明もあります。句読点や終わり括弧は、直前の文字に「付いている」ものと考えられる。それが行末と行頭に分かれると、付いているものが離れてしまっておかしい、という考え方です。ただしこの説明は、解説記事で見かける言い方で、W3Cの本文が書いているのは「体裁」です。どちらか一つに決めず、並べて持っておくのがよさそうです。
では、置いてはいけない文字とは、具体的にどれなのでしょうか。
W3Cの「日本語組版処理の要件」は、終わり括弧類などを行頭に配置してはならない(行頭禁則)とし、その理由を「体裁がよくない」ためだと述べる[2]。規則の根拠が、物理的な制約ではなく、読者が受ける見た目の印象に置かれている点が目を引く。
これとは別に、句読点や終わり括弧は直前の文字に「付いている」とみなされ、行末と行頭に分かれるとおかしい、という説明が広く流通している。ただしこれは解説の記述で、W3C本文の言葉は「体裁」である。両方を断定せず、並べて理解するのが妥当だろう。なお、同じ要件の行組版の項には、行末の句読点や括弧類の後ろのアキは、行頭の位置をそろえる必要性に比べるとそれほど気にならない、という趣旨の記述がある[3]。
理由が「見た目」なら、どの文字がその対象になるのかが次の問いになる。
3. さいしょに おけない もじは、どれ?
3. 先頭に来られない文字、末尾に来られない文字
3. 行頭禁則・行末禁則の対象 ── 小書き仮名や長音符まで含まれる
ふつうの せっていでは さいしょに おけない もじには、「。」「、」の ほかに、ちいさい「っ」や「ゃ」、のばす ぼうの「ー」などが あります[5]。
はんたいに、行の おわりに おけない もじも あります。「(」や「「」のような、はじまりの かっこです[5]。
たとえば「がっこう」の「っ」が 行の さいしょに くると、まえの もじと はなれて、よみにくく なりそうです。
W3Cの要件では、通常は行頭に置かない文字(設定によっては来ることもあります)に、句点・読点、中黒、閉じ括弧、小書きの仮名(ぁ、ぃ、っ、ゃなど)、長音符「ー」、繰り返し記号などが含まれます[5]。反対に行末に置けないのは、「(」「『」のような始め括弧です。
字種の細かい一覧は規格ごとにあるので、ここでは「、」「。」「っ」「ー」の4つを覚えておけば十分です。たとえば「がっこう」の「っ」だけが次の行に落ちると、「が」と離れて読みにくくなりそうだと想像できます。
この禁止を守るために、昔の組版では、どんな工夫をしたのでしょうか。
通常は行頭に置かない行頭禁則の対象(緩い設定では来ることもある)には、句点・読点、中黒、閉じ括弧類のほか、小書きの仮名(ぁぃぅぇぉ、っ、ゃゅょなど)、長音符、繰り返し記号が含まれる。行末禁則の対象は、始め括弧類(「『(【など)である[5]。この一覧は要約で確かめた範囲の代表例であり、字種の細部は規格の原文に当たる必要がある。
小書き仮名と長音符が含まれる点には、のちに重要な意味が出てくる。この2種は、あとで見るように、規格によって「禁止か許可か」が分かれる文字だからだ。まずは、禁止を守るために、組版の現場で何が行われたかを先に見る。
4. 行が はみだしたら、どう なおすの?
4. 禁則を守るための3つの調整 ── ぶら下げ・追い込み・追い出し
4. 字間の調整とぶら下げ組 ── 禁則を守りつつ行の長さをそろえる方法
「。」が 行の さいしょに きそうな とき、むかしからの やりかたが 3つ あります[2]。
ひとつめは「ぶらさげ」です。「。」を 行の すみから ちょっと はみださせて おきます。ふたつめは「おいこみ」で、まえの 行の もじの あいだを つめて、「。」まで いれます。みっつめは「おいだし」で、もじの あいだを ひろげて、つぎの 行へ おくります。
どの やりかたも、行の ながさを そろえながら、「。」を 行の はじめに おかない ための くふうです。
禁則を守りながら行の長さをそろえる方法は、W3Cの要件に3つ挙げられています[2]。
一つめは「ぶら下げ」です。句読点を行末の版面の外にはみ出して置きます。モリサワの解説では、句点などが行の端から少しはみ出す形だと紹介されています[4]。二つめの「追い込み」は、前の行の字と字の間を詰めて、行頭に来るはずだった文字まで入れる方法です。三つめの「追い出し」は、字間を広げて、はみ出す文字の前の文字ごと次の行へ送る方法です。
三つとも、禁則を守りながら、行の長さをそろえるための手段です。どれも「置いてはいけない文字を、どの行のどの位置に収めるか」という調整で、人が決める方法として書かれています。
ここまでは、人が手や機械で調整する話でした。コンピューターは、これをどう受け継いだのでしょうか。
W3Cの要件が挙げる調整は3つである[2]。ぶら下げ組は、行頭禁則の処理が必要な句点・読点に限って、行末の版面の外側に接して置く方法で、字間調整の必要を減らす[4]。追い込み処理は、前の行の字間を詰めて行頭に来る文字を収める。追い出し処理は、字間を広げて、前の文字ごと次の行へ送る。どれも、禁則を守りながら行の長さをそろえるための手段である。
これらは、行ごとに「どの文字を前の行に残し、どの文字を送るか」を決める調整であり、人が判断して使い分ける方法として書かれている。起源(いつ、だれが、どの工程で)を示す資料は読んでおらず、断定しない。
人が組むなら、「ここは追い込もう」と、その場で決められる。ところが機械は、規則を表として与えなければ動けない。禁則は文字ごとの表にできるため、機械でも扱いやすかったのではないか、という見通しが立つ。
5. コンピューターは、なぜ きんそくを もって いるの?
5. 日本語の改行規則に、行頭に置けない文字の表がある
5. JIS X 4051・Unicode・CSSにある禁則の表
コンピューターの ぶんしょうの きまりには、「かんじや ひらがなは、ふつう もじの あいだで 行を かえて よい」と かいて あります[6]。
それでも、「ここには おかない もじ」の ひょうが ついて います。この ひょうは、世界の もじを あつかう Unicodeと いう きまりの 中に あります[6]。
日本には、日本語の 本の つくりかたを きめた JIS X 4051と いう きかくも あります。W3Cの しりょうは、これを おもな もとに して います[5]。
こうして、ひょうに なって いたから、きかいに もたせやすかったのだと おもいます。
どこでも折れるのが基本
Unicodeの改行規則(UAX #14)は、漢字・ひらがな・多くのカタカナは、その前後や文字どうしの間で、ふつうは改行できるとしています[6]。英語のように、単語の切れ目を探さなくてもよいのです。
そのうえで、一部の文字には「行頭に置けない」という分類(NS)が付いています[6]。ただし、Unicodeが禁則を決めたわけではありません。UAX #14は日本語の禁則の完全な仕様の代わりにはならない、という注意が付いた、あくまで既定の目安です[6]。
規格から規格へ
日本語の組版方法を定めたJIS X 4051は日本の規格で、W3Cの「日本語組版処理の要件」は、これを主な基礎にしています[5]。
禁則が受け継がれた理由は、「だれかが意図して継いだ」とは書けません。ただ、行頭に置かない文字を「文字ごとの表」にできる規則だったので、規格にも、Unicodeにも、ブラウザにも載せやすかった、という流れは見えてきます。
ところで、この表の厳しさは、一つに決まっているのでしょうか。
日本語組版の規格であるJIS X 4051を、W3Cの「日本語組版処理の要件」は主な基礎にして、禁則を含む組版の要件を整理している[5]。
一方、Unicodeの改行アルゴリズム(UAX #14)は、漢字・ひらがな・多くのカタカナ(クラスID)について、前後や文字どうしの間で改行できるとする。そのうえで、行頭に置けない文字(クラスNS)を別に定める[6]。ただし、これは日本語の禁則の完全な仕様ではなく、規格自身が代わりにならないと断っている。つまり「Unicodeが禁則を定めた」とは言えない。
ここから、問いへの一つの答えが組み立てられる。禁則が残る直接の理由は「読みやすさ・体裁」(W3C)である。さらに、禁則が「どの文字を、どこに置かない」という文字ごとの表にできる規則だったため、JIS X 4051からJLReq、Unicode、CSSへと機械が扱える形で渡されやすかった、と考えられる。ただしこれは資料の流れから見た解釈であり、「だれかが意図して継承した」という記録を示す資料ではない。
表なら、厳しさを変えることもできる。実際、ウェブの世界には、厳しさを選ぶ仕組みがある。
6. きんそくの きびしさを、えらべるって ほんと?
6. 禁則の厳しさを選べる ── CSSのstrictとloose
6. line-breakの値 ── 小書き仮名・長音符の扱いが分かれる理由
ウェブの ページを つくる ときに つかう CSSには、きんそくの きびしさを えらぶ しくみが あります[8]。
きびしい ほうは「ストリクト」です。ちいさい かなや「ー」を 行の はじめに おきません。ゆるい ほうは「ルーズ」で、おいても よいと します。しんぶんのような みじかい 行に むくと いわれます[8]。
みじかい 行では、きびしく しすぎると、行の すきまが ひろがって しまうからです。
ウェブページの見た目を決めるCSSには、line-breakというプロパティがあり、禁則の厳しさを選べます[8]。値には、auto・loose・normal・strictなどがあります。
strictは最も厳しい改行規則で、小書きの仮名や長音符を行頭に置きません。looseは最も制限が少なく、新聞などの短い行に向くとされます[8]。CSSの仕様でも、小書き仮名・長音符・繰り返し記号・中黒の前の改行は、looseでは許され、strictでは禁じられます[7]。
この小書き仮名と長音符には、Unicodeの側でも特別な分類「CJ」が用意されています。これをNSとして扱えばstrictに近い改行に、IDとして扱えばnormalに近い改行になる、と説明されています[6]。つまり、禁止の表を一つに固定せず、選べるようにしてあるのです。
厳しさの選択の次には、折り返しのもう一つの工夫が出てきます。
CSSのline-breakプロパティは、禁則の厳しさを選ぶ。値にはauto・loose・normal・strictなどがあり、strictは小書き仮名や長音符を行頭に置かない最も厳格な規則、looseは最も制限の少ない規則で、新聞のような短い行に使われる、とMDNは説明する[8]。CSS Text Module Level 3も、小書き仮名・長音符・繰り返し記号・中黒の前の改行を、looseでは許し、strictでは禁じると定める[7]。
なぜ選べる設計なのか。短い行では、strictに従うと、行を調整する余地が少なく、字間が不自然に広がりやすい。そこで、新聞のような行には緩い規則が使われてきた、と読める(この因果は資料の記述から見た推定である)。
Unicode側も、小書き仮名と長音符に特別な分類「CJ」を置く。UAX #14は、CJをNSとして扱えばCSSのstrictに、IDとして扱えばnormalに近い改行になると説明する[6]。ただし、normalが小書き仮名の前の改行を許すかどうかは、出典によって扱いが分かれるため、ここでは厳しさの両端であるstrictとlooseの対比にとどめる。
禁止の表に厳しさの段階がつけられるなら、折り返しの工夫は、禁止だけに限られない。
7. 「ことばの きれめ」で おる、あたらしい やりかた
7. 禁止だけでなく、文節で折り返す新しい工夫
7. word-break: auto-phrase ── BudouXと文節単位の折り返し
さいきんは、きんそくの ほかに、「ことばの きれめ」で 行を おる くふうも でて きました。
たとえば、ブラウザの Chromeの ばあいは、CSSで ぶんせつを つかって おりかえす ように できます[9]。みだしのような みじかい 文に むいて います。
きれめを みつけるのは、きかいが まなんだ しくみです。きまりを まもる だけでなく、よみやすくする くふうが つづいて いるのです。「ここには おかない」を ひょうに できたから、きかいにも わたしやすかったのかも しれません。
Chrome 119から、CSSのword-breakにauto-phraseを指定すると、日本語を文節(自然な句の切れ目)で折り返せます[9]。切れ目を見つけるのは、BudouXという機械学習(AdaBoost)の仕組みで、見出しのような短い文に向くとされています[9]。
手動の方法もあります。wbr要素で改行してよい位置を示したり、ZWJ(ゼロ幅接合子)に当たる文字を置いて、切ってほしくない場所を守ったりできるとされています[9]。
禁則は「ここには置かない」という禁止の表でした。文節の折り返しは「ここで切ると読みやすい」という、もう一つの方向からの工夫です。どちらも、行の端での文字の置き場所を、読む人に合わせようとする点は同じです。
Chrome 119からは、CSSのword-break: auto-phraseで、日本語を文節単位で折り返せる。文節の境界は、BudouXという機械学習(AdaBoost)で見つける。見出しなど短い文に向くとされる[9]。手動ではwbr要素で改行可能点を示し、ZWJ(ゼロ幅接合子)に当たる文字を置けば改行を防げるとされる。
禁則と文節折り返しを比べると、考え方の向きが違う。禁則は「ここに置いてはいけない」という文字ごとの禁止の表であり、規則としては単純で、組版から規格、ブラウザへと渡しやすい。一方、文節折り返しは「ここで切ると意味のまとまりが保たれる」という判断で、規則では書きにくく、統計的な学習で境界を探している。
こうした流れから、「禁則が受け継がれた」のは、単に古い習慣が残ったからではなく、見た目の読みやすさを保つ工夫が、表という形にできたゆえに道具を乗り換えても残りやすかったから、という整理ができる(これは資料の流れから見た解釈である)。
8. じぶんの がめんで たしかめて みよう
8. 画面の幅を変えて、「、」と「っ」の居場所を観察する
8. 画面の幅を変えて観察する ── 禁止の表が働く場面を探す
スマホを よこむきに したり、パソコンの ブラウザの はばを ひろげたり せばめたり して みましょう。
文を よんで、「。」「、」「っ」「ー」が 行の いちばん はじめに きて いないか さがします。ふつうの せっていなら、どんなに はばを かえても こないはずです。
つぎに、本や きょうかしょを ひらいて、おなじ ことを さがして みましょう。行の はじめに ある もじを、ゆっくり ながめて みて ください。
パソコンのブラウザなら、ウィンドウの幅をゆっくり変えながら、この文章を読んでみましょう。スマホなら、縦と横を切り替えます。
そのとき、行の先頭に「、」「。」「っ」「ー」が来る行があるか、探してみます。幅を変えるたびに、折り返しの位置がずれますが、禁止された文字は、ふつうの設定なら先頭に来ません。画面の中の「見えない表」が、文字ごとに働いているのを、自分の目で確かめられます。
もう一つ、教科書や新聞を開いて、行の先頭にどんな文字が並ぶか見てみてください。新聞は行が短いので、ウェブの話で出てきた「looseに向く短い行」の意味が、実感できるかもしれません。
さらに詳しく知りたいときは、W3Cの「日本語組版処理の要件」[2]に、禁則の対象と調整方法が日本語で書かれています。
ブラウザの幅を少しずつ変えて、この文章の折り返しを観察すると、禁止された文字が行頭に来ない様子を確かめられる。スマホなら画面の向きを切り替えればよい。幅を変えるたびに折り返しの位置は動くが、行頭禁則の文字は、通常の設定では先頭に来ない。
観察の観点は二つある。一つは、「、」「。」「っ」「ー」の4文字が先頭に来る行があるか。もう一つは、行がどう調整されているか、つまり字間が不自然に空いた行がないかである。禁則を守るために字間が動いている行は、追い込み・追い出しの結果として読める可能性がある(ただし実際の処理の内部は、画面からは断定できない)。
資料を読むなら、三つの層がある。①W3C「日本語組版処理の要件」[2]は、日本語で禁則と調整方法の要件を整理している。②Unicode UAX #14[6]とCSS Text Module Level 3[7]は、英語だが、禁止の表の分類と厳しさ(strict・loose)を定義している。③禁則の起源と、規格が実際にどんな経緯で作られたかは、今回の資料からは読み取れず、JIS X 4051の原文など、一次資料に当たる価値のある問いである。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
出典について:W3Cなどの規格、MDN・Chrome for Developersの解説、メーカーの解説、ニュース記事を使った。何に使ったかは、それぞれの項目の最後に書いている。
- J-CASTニュース「電子書籍の画面の禁則処理について」(2010年10月19日)。https://www.j-cast.com/2010/10/19078596.html?p=all (2010年の電子書籍端末の画面への反応について。ニュース記事)
- W3C「日本語組版処理の要件(日本語版)」。https://www.w3.org/2007/02/japanese-layout/docs/aligned/japanese-layout-requirements-ja.html (行頭禁則と体裁の理由、ぶら下げ・追い込み・追い出しについて)
- W3C「日本語組版処理の要件 行組版」。https://w3c.github.io/jlreq/docs/line-composition/index.html (行末の句読点・括弧類の後ろのアキの扱いについて)
- モリサワ「日本語組版」。https://www.morisawa.co.jp/culture/japanese-typesetting/11/ (ぶら下げ組の説明について。企業の解説)
- W3C「Requirements for Japanese Text Layout(JLReq)」。https://www.w3.org/TR/jlreq/ (行頭・行末禁則の対象文字と、JIS X 4051との関係について。英語)
- Unicode「UAX #14 Line Breaking Algorithm」。https://www.unicode.org/reports/tr14/ (日本語の文字の改行、NS・CJの分類について。英語の規格)
- W3C「CSS Text Module Level 3」。https://www.w3.org/TR/css-text-3/#line-break-property (line-breakのstrictとlooseの違いについて。英語の仕様)
- MDN Web Docs「line-break」。https://developer.mozilla.org/ja/docs/Web/CSS/line-break (禁則の厳しさを選ぶ値の説明について)
- Chrome for Developers「CSSの4つの国際化機能」。https://developer.chrome.com/blog/css-i18n-features (文節での折り返しとBudouXについて)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。