[jlreq-d] 5 ルビと圏点の配置処理 (#113)

KobayashiToshi has just created a new issue for https://github.com/w3c/jlreq-d:

== 5 ルビと圏点の配置処理 ==

“5 ルビと圏点の配置処理”をお送りいたします.ご検討をお願いいたします.“Rules for Simple Placement of Japanese Ruby”(PDF:ルビの簡便な配置ルール(案))を,以下の事項につき,だいぶ書き直しました.GitHubにも掲載しておきました.

- 簡便な配置の処理内容そのものは,変えていません.
- モノルビ,グループルビ,熟語ルビという用語は使用しないことにしたので,それに伴い説明を変えた.ただ,JLReqでは,これはそう呼んでいるよ,という説明は書いておいた.
- 簡便な配置以外の処理方法の説明を追加した.
- ルビで注記を示す方法を追加した.
- 両側ルビは,このテキストでは残してあるが,jlre-dでは削除する.

-------以下が案-------

# 5 ルビと圏点の配置処理

ここでは,行間に配置するルビ及び圏点の組版処理について解説する.なお,ルビ又は圏点を付ける対象の文字は親文字とよぶ.

## 5.1 ルビ処理の問題点

ルビの字詰め方向の配置処理は,要求事項も多数あり,また,いろいろなケースが出現するので,自動処理を行うためには複雑な処理が必要になる.また,どの要求事項を重視するかによっても処理は異なり,正解のない世界ともいえよう.

例えば,できるだけ字間を空けないという要求を満たすために,親文字からはみ出したルビを漢字には掛けないが,仮名には掛けるとする処理方針がある.前後が同じ仮名又は漢字となる場合はよいとしても,親文字の前が仮名で,後ろが漢字といったときに,ルビ文字の字数によっては見た目のバランスを壊す場合も出てくる.図〓に親文字が1字の例に示す.上側が漢字には掛けないが,仮名に掛けるとした方針で処理した例である.図〓に示したように親文字が複数で,親文字全体にルビを対応させる場合でも,同様である.活字組版では個別箇所で状況に応じて配置位置を工夫していたので,その箇所ごとに,原則を考慮しながら,その箇所での最適な処理ができた.しかし,自動処理するためにはルールとして決めておく必要があり,ルールは複雑になる.

また逆に,ルビ文字が片仮名の場合,単語としてのまとまりがあり,前後の仮名にも掛けないという処理方法もあり,実際にもルビの字数によっては,仮名にも掛けないとした方が見た目のバランスはよい(図〓参照,下側が仮名に掛けないとした方針で処理した例).これを実現するためには,さらなるルールの追加が必要となる.

こうした複雑さは,“できるだけ字間を空けないという条件”は満たさないが,はみ出したルビは,仮名を含めて前後の文字には掛けないという単純なルールにすれば解決できる.

さらに,ルビの形式を利用して注を示す例も見掛けるようになった.注は参照しやすいように,注をつけるテキストの近くにあるのは望ましい方法であり,ルビの形式を利用して注を示す方法は,その点では望ましい方法である.しかし,こうした注は,一般にいうルビに比べ,親文字の文字数が多くなる,逆に親文字としては,その位置だけが示されていればよい例もある.ルビそのものも文字数も多くなる.そこで,通常のルビとは異なる処理が必要になる.

こうしたことから,ここでは以下の方針でルビ処理について解説する.

- ある程度の品質を確保しながら,特に字詰め方向の処理について,理想ではないが,誤読されないということを優先し,例外のあまりでない,また,機械的に処理できる簡便な配置処理方法をまず示す.

- 他方,ルビ処理は,複数の方法があるので,参考として,簡便でない方法も,その概略を示すようにした.

- 注としてのルビは,主に単語や複合語を親文字とし,ルビの字数もそれほど多くないルビと同じ方法で処理するには無理がある.そこで,通常のルビを単にルビとよび,ルビ形式の注は注ルビとよぶことにし,その処理については,ルビと注ルビとを分けて,その方法を解説した.なお,ルビするか,それとも注ルビとすかは選択によるものとした.

## 5.2 ルビ及び注ルビに使用する文字と文字サイズ

- 1 ルビ及び注ルビに使用する文字種は,特に制限しない.漢字や約物も使用できるものとする.

> 注:ルビが漢字の例 ルビには,主として平仮名及び片仮名が使用されている.活字組版でも例は少ないが,親文字が平仮名の場合,ルビとして漢字を付ける例もあった.振り漢字とよばれていた.現在は,ルビとして,平仮名と混ぜて漢字を使用する例が徐々に増えていることから,文字種は制限しないこととした.

> 注:小書きの仮名の使用 今日では小書きの仮名をルビに使用することは可能であり,その使用も増えている.しかし,活字組版では,ルビの文字サイズが小さいことから小書きの仮名は準備されていなく,使用されていなかった.こうしたことから,ルビには小書きの仮名は使用しないという方針を採用している例もある.ただし,ルビに小書きの仮名は使用しないという方針の場合,自動音声読み上げなどを考慮すると,データとしては小書きの仮名にし,表示の際には,なんらかの方法で直音を示す小書きでない仮名に変換して示すという方法が望ましい.

- 2 ルビ及び注ルビの文字サイズは選択による.ただし,初期値(デフォルト値)は親文字サイズの1/2とする(図〓).

なお,漢字の読み方を示すルビには,3字となるケースは多いが,4字又は5字となる例は少ない.そこで,ルビが3字以上の場合,ルビを親文字サイズの1/2より小さくする,または横組では左右を縮小する長体,縦組では天地を縮小する平体に変形して親文字からはみ出さないようにする方法もある.ただし,こうした処理を行うとしてもルビが4字又は5字となると,ルビの変形にも限界があるので,ある程度のはみ出しは出てくる.

- 3 ルビ及び注ルビのフォント,文字の変形,その他の装飾は選択による.ただし,初期値(デフォルト値)は親文字と同じにする.

## 5.3 ルビ及び注ルビの行送り方向の位置

- 1 ルビ及び注ルビの行送り方向の配置位置は,横組では親文字の上側,縦組では右側とする(図〓参照).ただし,注ルビは選択により横組では親文字の下側,縦組では左側とすることもできるものとする.

- 2 ルビ及び注ルビと親文字の行送り方向の間隔(行間)は,指定による.ただし,初期値(デフォルト値)は行間をゼロする(親文字の文字のボディとルビ及び注ルビのボディを接して配置する)(図〓参照).

- 3 ルビ及び注ルビを折り返して2行以上にする場合の行間は選択による.ただし,初期値(デフォルト値)は,行間をゼロとする.

## 5.4 ルビの字詰め方向の配置処理

### 5.4.1 ルビの配置処理で考慮した事項

以下で最初に示した簡便化した方法は,次のような事項を考慮した方法である.

- 1 ルビは,親文字の読み方又は意味を示すものである.そこで,誤読されないことを第一とした.具体的には,親文字列からはみ出したルビ文字は,前後に配置する漢字だけでなく,仮名にも掛けない方式とした.

なお,親文字からルビ文字列がはみ出した場合,前後の文字に掛けるか掛けないかでは,主なものとして以下のような方法がある.

    (1)親文字の前後の文字には,アキのある約物を除き,掛けない.
    (2)親文字の前後の漢字には掛けないが,仮名や一部の約物には親文字サイズの1/2まで掛ける.
    (3)親文字の前後の文字には,文字種を限らないで親文字サイズの1/4まで掛ける.
なお,この処理は,親文字が1字でも2字以上の場合のルビでも共通であるが,原則的な処理として(2)を選択した場合でも,ルビが片仮名の場合には(1)とする方式もある.

- 2 縦組と横組とで配置処理法を変えることなく,共通の処理ができる方法とした.具体的には,親文字が1字の場合,親文字列とルビ文字列の中心をそろえる方式のみとした.なお,親文字が2字以上の場合も,原則として親文字列とルビ文字列の中心をそろえる方式とした.

なお,親文字が1字の場合,従来は,以下のような方法が行われていた.
    (1)親文字列の先頭とルビ文字列の先頭をそろえる.
    (2)親文字列とルビ文字列の中心をそろえる.
    (3)親文字列の先頭とルビ文字列の先頭をそろえることを原則とするが,ルビ文字列の字数,親文字列の前後に配置される文字種,行頭又は行末などにより,(1)や(2)だけでなく,それとは異なる配置法とする.どのような配置になるかは,親文字の前後に配置する文字種が関係する配置方法である.この方法は,親文字が熟語の場合にも採用されおり,この場合はルビと親文字との関係も考慮する必要があり,さらに複雑な配置方法になる.
    (4)親文字列とルビ文字列の中心をそろえることを原則とするが,ルビ文字列の字数,親文字列の前後に配置される文字種,行頭又は行末などにより,(2)とは異なる配置法とする.
また,親文字が2字以上となった場合は,これらの方法にできるだけならうとしても,必ずしもそろうわない方法も組合せて行われていた.

- 3 2レベルの処理方式とした.第1レベルでは,親文字及びルビ文字(両者を合わせて,以下,親文字群という)のみの情報から,親文字とルビ文字の配置関係を決める.第2レベルでは,親文字群の前後に配置する文字を考慮して,行の中での親文字群の配置位置を確定する.逆に言えば,第1レベルで決めた親文字とルビ文字の配置関係は,親文字群の前後に配置する文字により修正することはしない.また,親文字群が行頭又は行末に配置されることにより,親文字とルビ文字の配置関係を直し,親文字の先頭又は末尾を行頭又は行末にそろえる配置方法は採用しない.つまり,第1レベルで決定した事項は,第2レベルでは修正しない方式とした.

> 注:ルビ文字と親文字だけで配置位置が決まらない例 前述の(3)又は(4)の方法は,親文字及びルビ文字だけでは,そのルビ文字と親文字の配置位置は決まらない.

> 注:2レベルの処理方式と熟語のルビ 複数の漢字で構成される熟語について,熟語としてのまとまりを重視してルビを配置する方法がある,この方法では熟語内の字間で2行にわたる分割を認めている.分割された場合は,分割前の親文字とルビの配置位置は変化する.しかし,例えば3字で構成された親文字列の場合,親文字は3字,1字+2字,2字+1字の3つの組合せがあるが,それぞれの場合において,親文字とルビの配置位置は,それだけで決定され,配置場所によって,その配置位置は変化しない.

- 4 ルビの配置方法として,JLReqやJIS X 4051(日本語文書の組版方法)では,複数の方法が示されているケースがあるが,ここでは上記の方針による簡便な処理方法を最初に解説した.この方法は,原則としてJIS X 4051で規定している方法によった.ただし,処理系定義として採用できる処理方法(オプション)を採用した場合がある.例えば,はみ出したルビを仮名にも掛けないという方法は,JIS X 4051では処理系定義として採用できる方式として示されている.

- 5 ルビの文字サイズを大きく(逆に小さく)したいという要求がある.そこで,ルビの文字サイズは,親文字の文字サイズの1/2を初期値(デフォルト値)とし,図版では,ルビの文字サイズは親文字の文字サイズの1/2で示したが,空きなどのサイズはルビの文字サイズを基準とするのではなく,親文字の文字サイズを基準として規定することにより,ルビの文字サイズが親文字の文字サイズの1/2以外であっても採用できる配置方法とした.

### 5.4.2 親文字が1字の場合のルビの配置方法

親文字が1字の場合のルビは,次のように配置する.なお,親文字及びルビとしては,漢字,仮名,ラテン文字など様々な文字が使用されている.

1文字の親文字と組み合わせたルビ文字列については,2行にわたる分割(以下,分割という)を不可とする.また,行の調整処理では,ルビ文字列の字間は使用しない.これは,以下の親文字が2字以上の場合でも同様であり,親文字列及びルビ文字列の字間は,行の調整処理では使用しない.

親文字1字にルビを対応させるルビの字詰め方向の配置処理は,次による.なお,親文字が1字の場合のルビは,JLReqでは“モノルビ”とよんでいる.

前述の“5.3.1 ルビの配置処理で考慮した事項”の3の2レベルの処理方式でいえば,以下の説明の1及び2項は,第1レベルの親文字及びルビ文字の配置処理であり,3及び4項は,第2レベルの親文字群を行中に配置する処理である.

- 1 ルビの字数が2字以上の場合は,ルビ文字列の字間は空けないで密着して配置する(以下,親文字及びルビの字間について特に言及がない限り,同様に処理する).なお,ルビがラテン文字のように固有の字幅を持つ⽂字の場合には,それぞれの⽂字の固有の字幅に応じて配置する(図〓参照).

- 2 ルビ文字列と親文字の各字詰め方向の文字列の中心をそろえて配置する(図〓参照).

- 3 親文字よりルビ文字列の全長が長い場合,親文字からはみ出したルビ文字を親文字の前⼜は後ろに配置する文字に掛けてはならない(図〓参照).ただし,次に掲げる句点類(cl-06)など,その後ろ又は前に空きがある約物などにはルビを掛けてよい(図〓参照).

> 注 約物などにはルビを掛ける ここで,他のの文字と約物に差をつけたのは,約物は,文章の区切りとして重要な役割を果たしており,これらの後ろや前後の空きをできるだけ一定していることが望ましく,特にこれらの空きが大きくなると,区切りの意味を変える恐れがあること,また,冒頭の注の“複雑な処理となる例”で述べたような問題もでないことによる.

    親文字の前に配置する約物で,掛けてよい約物は次である.
終わり括弧類(cl-02),句点類(cl-06),読点類(cl-07),和字間隔(cl-14)⼜は中点類(cl-05)の後ろのアキ(このアキは,中点類(cl-05)以外,通常は親文字の二分(中点類(cl-05)は四分),ただし,行の調整処理で⼆分アキや四分アキが詰められている場合は,調整で詰められた空き量までとする,例えば,四分アキとなっていれば,四分まで)

    親文字の後ろに配置するす約物で,掛けてよい約物は次である.
始め括弧類(cl-01),和字間隔(cl-14)⼜は中点類(cl-05)の前のアキ(始め括弧類(cl-01)は通常は親文字の二分,中点類(cl-05)は四分),ただし,行の調整処理で⼆分アキや四分アキが詰められている場合は,調整で詰められた空き量までとする,例えば,四分アキとなっていれば,四分までとする.

- 4 親文字よりルビ文字列の全長が長い場合,行頭ではルビ文字列の先頭を行頭にそろえ(図〓参照),行末ではルビ文字列の末尾を行末にそろえる(図〓参照).行頭又は行末において,親文字の前後にアキが生じていても,ルビ文字が行頭又は行末に接していれば,それでよいとする処理方法であり,JIS X 4051でも採用され,実際にも行われている方法である.

親文字が1字の場合,次のような方法も行われている.詳細の配置方法でなく,その考え方を主に紹介する.縦組と横組でやや異なるので,まず縦組の場合を説明し,それが横組で異なる場合は,補足して説明する

- 親文字よりルビ文字列の長さが短いか同じ場合は,親文字とルビ文字列の先頭をそろえる.横組の場合は,親文字とルビ文字列の中心をそろえる.

- 親文字よりルビ文字列が長い場合は,仮名や一部の約物に親文字サイズの1/2まで掛ける.この場合,後ろに掛けることを優先する.横組では,前後にはみ出させ,仮名だけでなく漢字にも掛けてよい.ただし,掛けてよいのは親文字サイズの1/4までとする.左右のバランスを保つためである.

なお,仮名などに親文字サイズの1/2まで掛けてよいとした場合,例えば,親文字サイズの1/2のルビが,“楽,ルビ:たのしみ”と“苦,ルビ:くるしみ)”のように付いた場合,ルビの“たのしみ”と“くるしみ”が接続してしまう.これは望ましくない.これを避けるためには,仮名等に両側からルビが掛かる場合は,掛けてよい限界を親文字サイズの1/4とするか,又は前からルビが掛かっているときは,後ろからルビを掛けることを禁止るすればよい.

- 以上で処理できない場合,親文字の前後の字間を空ける.空ける場合,均等に空ける方法と,後ろを優先する方法がある.横組では均等にあける.

- 行頭・行末については,親文字列の先頭を行頭にそろえ(図〓参照),行末では親文字列の末尾を行末にそろえる方法と,親文字の前又は後ろが空いてもよいとする方法がある.

### 5.4.3 親文字が2字以上の場合のルビの種類

親文字が2字以上の場合,ルビの示す内容は一様でない.“3.4 ルビ”で示したようにいろいろの目的でルビが使用されている.そこで,親文字が2字以上の場合については,次のように分けて,その配置方法を解説する.

- A 2字以上の漢字で構成され,ひとつの意味を持つ熟語では,それぞれの個々の漢字に対応した読み方がある.この個々の読みを示すために付けたルビを個々の漢字との対応を付けてルビを配置する.以下では“熟語(A)”という.

- B 2字以上の漢字で構成された熟語について,個々の漢字に対応した読み方がルビとして付けられているが,熟語としてのまとまりを重視し,必ずしも個々の漢字とその読み方を示すルビとが対応しなくてもよいとする配置にする.以下では“熟語(B)”という.

注 熟語の範囲 “東京都”を例にすると,“東京都”を1つの熟語とするか,それとも,“東京”と“都”とに分けるかが問題になる.人名などでも“山田淳”を1つの熟語とする方法と,“山田”と“淳”と別にする方法がある.こうした例や複合語について,どこまでを1つの熟語とするかは選択による.

“熟語(A)”にするか,“熟語(B)”にするかも選択による.熟語を構成する個々の読み方を示すことを重視すれば“熟語(A)”の選択となり,そうでなければ“熟語(B)”を選択すればよい.

- C 2字以上の漢字で構成された熟語であるが,“為替”(“かわせ”と読む)のように熟語単位で訓読みをするもので,熟字訓と呼ばれている熟語がある.ルビはそれぞれの個々の漢字に対応していない.そこで,熟語全体にルビを対応させて配置する必要がある.こうしたものは,以下では“熟字訓(C)”という.なお,熟字訓で読む熟語に他の漢字が付く“昔気質”のような複合語がある.このうち“気質”は熟字訓として“かたぎ”とよむ.この場合,“昔(むかし)”と“気質”とを別の語とする方法と,“昔気質”を1つの語とする方法がある.どちらかにするは選択による.

- D 2字以上の漢字で構成された漢字や仮名等の文字列(単語または文節のことが多い)に,その文字列の意味を示す外来語を主に片仮名のルビで示す(片仮名ルビともよばれている),又は親文字の意味をルビで示す.この場合,Cと同様に個々の文字に対応しないで,文字列全体にルビを対応させて配置する必要がある.こうしたものは,以下では“片仮名等(D)”という.

- E 親文字が2字以上のラテン文字のみの語に対応した語句を漢字や仮名等のルビで示す.以下では“親:ラテン文字(E)”という.

- F 親文字が2字以上の漢字や仮名等で構成された語句に対応したラテン文字のみの語句をルビで示す.Eの反対である.以下では“ルビ:ラテン文字(F)”という.

なお,“熟字訓(C)”,“片仮名等(D)”,“親ラテン文字(E)及び“ルビラテン文字(F)”は,親文字を一つのまとまりと考え,親文字列全体に対してルビを対応させるルビである.これをJLReqでは“グループルビ”とよんでいる.“熟字訓(C)”及び“片仮名等ルビ(D)”は,同じ処理となるので,以下ではまとめて解説する.これに対し,“親ラテン文字(E)及び“ルビラテン文字(F)”は,親文字又はルビがラテン文字であることにより異なり,配置処理も異なるので,別に解説する.

### 5.4.4 熟語(A)及び熟語(B)のルビの配置方法

熟語(A)及び熟語(B)にルビが付く場合,各親文字とルビとの対応を維持しての親文字間の分割は可とする.例えば,熟語(B)についていえば,2字の熟語では,分割されたそれぞれが“5.3.2 親文字が1字の場合のルビの配置方法”の処理となり,3文字の熟語(B)で1字と2字に分割した場合,2字は熟語(B)の処理となる.

#### 熟語(A)の配置処理

熟語(A)は,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法で配置する.

> 注:各親文字1字1字にルビを対応させるルビ この処理を行う場合,データとしては,親文字の1字1字に対してルビを対応させればよい.しかし,熟語などをまとまりとして音読する場合を考慮すると,親文字を一体として,それにルビを対応させたうえで,個々の親文字とルビを対応させることが望ましい.

#### 熟語(B)の配置処理

熟語(B)は,以下のように配置する.

- 1 各親文字1字1字に対応するルビ文字列が該当する親文字の字幅と同じか,又は,はみ出さない場合は,熟語(A)つまり,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法で配置する(図〓参照).

- 2 各親文字1字1字に対応するルビ文字列の長さが該当する親文字の幅よりはみ出す場合は,次のように配置する.
    1)密着させた親文字全体の文字列の長さと密着させたルビ文字列の長さが同じ場合は,それぞれの字詰め方向の文字列の中心をそろえて配置する(図〓参照).
    2)密着させた親文字全体の文字列の長さに対し,密着させたルビ文字列の長さが短い場合は,ルビ文字列の先頭,末尾及び字間を空け,密着させた親文字全体の文字列とルビ文字列の長さをそろえ,それぞれの字詰め方向の文字列の中心をそろえて配置する.ルビ文字列の先頭及び末尾と字間との比率は,1/2にする(図〓参照).ただし,先頭及び末尾の最大の字間は,親文字サイズの1/2とし,それを超えた場合は,字間に均等に割り振る.
    3)密着させた親文字全体の文字列の長さに対し,密着させたルビ文字列の長さが長い場合は,親文字列の先頭,末尾及び字間を空け,密着させた親文字全体の文字列とルビ文字列の長さをそろえ,それぞれの字詰め方向の文字列の中心をそろえて配置する(図〓参照).親文字列の先頭及び末尾と字間との比率は,1/2にする.

なお,親文字全体の文字列とルビ文字列の長さをそろえる方法としては,先頭及び末尾は空けないで,字間だけを空ける方法や,逆に親文字列とルビ文字列ともに字間は空けないで密着して配置し,それぞれの字詰め方向の文字列の中心をそろえる方法もある.

- 3 親文字列からルビがはみ出した場合,親文字列の前後の文字にルビを掛けてよいかどうかの処理は,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法と同じである.

- 4 親文字よりルビ文字列の全長が長い場合,行頭ではルビ文字列の先頭を行頭にそろえ,行末ではルビ文字列の末尾を行末にそろえる.

熟語(B)については,各親文字1字1字に対応するルビ文字列が該当する親文字の字幅よりはみ出さない場合にも2と同じ処理とする方法もある.また,次のような複雑な方法も行われている.これは活字組版の縦組で行われていた伝統的な方法である.ここでは詳細の配置方法でなく,縦組における配置の原則を紹介する.なお,ルビ文字のサイズは親文字の1/2とする.

- 原則その1 熟語に付けるルビは,それを構成するそれぞれの漢字の読み方を示すものであるから,それぞれの漢字の読みを示すルビをできるだけ対応させる.

- 原則その2 熟語としてのまとまりを考慮するので,親文字内の他の漢字に最大で親文字サイズで1/2まで掛かってよい.

- 原則その3 同一の親文字内の他の親文字にルビ文字を掛けることで処理できない場合,親文字群の前後の平仮名や片仮名,約物の一部などには親文字サイズの1/2までルビ文字を掛けてもよい.この場合,後ろへ掛けることを優先する.例えば,親文字群の前後が仮名又は後ろが仮名の場合,親文字が2文字で,上の親文字に3字のルビ,後ろの漢字に2字のルビが付くときであっても,1番目の下の1字を2番目の親文字に掛け,さらに2番目のルビをはみ出させ,親文字群の後ろの平仮名にルビを掛けるようにする(図〓参照).親文字群の前が仮名,後ろが漢字の場合は,親文字群の前の仮名にルビを掛けるようにする.

- 原則その4 以上で処理できない場合は,親文字群の前後又は親文字内の字間を空ける.空ける量は,はみ出しがある親文字に限り,その前後を,それにつくルビの字数に比例させる.

- 原則その5 行頭又は行末に配置する場合,行頭又は行末において親文字の先頭又は末尾をそろえる方式にするときは,親文字の前又は後ろに配分された空き量を後ろ又は前のアキに追加する.

横組でこの方式を適用する場合は,次のようにするとよい.できるだけ左右のバランスを考慮することによる.
- はみ出したルビを親文字群の他の漢字に3/4まで掛かってよい.
- はみ出しを親文字群の前後の文字に掛ける場合は優先度をつけることなく,漢字にもはみ出したルビを掛けてよい.
- 親文字群の前後の文字に掛ける場合,掛ける量は親文字サイズの1/4とする.

### 5.4.5 熟字訓(C)及び片仮名等(D)のルビの配置方法

- 1 ルビ文字が1字の場合は,親文字列とルビの字詰め方向の文字列の中心をそろえて配置する.

- 2 ルビ文字が2字以上の場合は,親文字列全体に対してルビを対応させる.その方法は,熟語(B)の2及び3と同じである.

- 3 親文字列からルビがはみ出した場合,親文字列の前後の文字にルビを掛けてよいかどうかの処理は,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法と同じである.

- 4 親文字よりルビ文字列の全長が長い場合,行頭ではルビ文字列の先頭を行頭にそろえ,行末ではルビ文字列の末尾を行末にそろえる.

行頭又は行末において親文字の先頭又は末尾をそろえる方式にする方式もある.この場合は,1:2で配意された親文字群の前又は後ろに配分された空き量を親文字群の字間及び後ろ又は前のアキに追加する.前又は後ろに配分された空き量をすべて親文字群の後ろ又は前に配分する方法と,一定の比率で親文字群の字間に配分する方法が考えられる.

> 注 親文字とルビの字数が同じ場合 縦組において,熟字訓(C)及び片仮名等(D)の親文字とルビの字数が同じ場合,それぞれの親文字ごとに付くルビを親文字の先頭のそろえる方法も行われていた.これは,“5.4.2 親文字が1字の場合のルビの配置方法”で解説した親文字とルビ文字列の先頭をそろえる方法とそろえることから考えられた方法である.

- 5 親文字群は分割を不可とする.

ただし,片仮名等ルビ(D)では,親文字の字数が多くなる例,“想像上の理想郷”に“ユートピア”のルビのような例がある.こうした親文字群を分割不可にした場合,行の調整処理の必要が出たときに極端な字間の調整が発生する.これを避けるために熟字訓(C)及び片仮名等ルビ(D)では,分割を可能にする処理も必要になる.

分割する場合は,次のように処理すればよい.なお,複合語のように望ましい分割位置があり,親文字を形態素に分け,それに分割の優先度を付けるという方法も考えれるが,複雑になるので,ここではそれは考慮しない方法を示す.
- ルビが1字の場合は,分割を不可とする.
- 親文字及びルビの分割位置は,行頭に配置できない約物等を除き,どこでも分割を可とする.
- 分割された親文字の字数に応じて,ルビの字数を配分する.ただし,分割されたルビの最低は1とする.
- 分割された親文字とルビのセットについて,親文字は1字の場合は,“5.4.2 親文字が1字の場合のルビの配置方法”で解説した方法で,2字以上の場合は熟語(B)の2及び3と同じ方法で配置する.

### 5.4.6 親ラテン文字(E)及びルビラテン文字(F)のルビの配置方法

#### 親ラテン文字(E)のルビの配置方法

親ラテン文字(E)は,次のように配置する(図〓参照).

- 1 ラテン文字のそれぞれ固有の字幅にした親文字列の長さより密着させたルビ文字列の長さが短い場合は,ルビ文字列の先頭,末尾及び字間を空け,親文字全体の文字列とルビ文字列の長さをそろえ,それぞれの字詰め方向の文字列の中心をそろえて配置する.ルビ文字列の先頭及び末尾と字間との比率は,1/2にする(図〓参照).

- 2 ラテン文字のそれぞれ固有の字幅に応じて配置した親文字列の長さと密着させたルビ文字列の長さと同じか場合又はルビ文字列が長い場合は,ルビ文字列及び親文字列の字詰め方向の中心をそろえて配置する.

なお,親文字に語間を含む場合は,親文字の語間及び前後のアキを調整して,それぞれの長さをそろえる方法もある.

- 3 親ラテン文字(E)の親文字群は,分割を不可とする.それは,ラテン文字の分割は,文節に基づき,複雑になることによる.

- 4 親文字列からルビがはみ出した場合,親文字列の前後の文字にルビを掛けてよいかどうかの処理は,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法と同じである.

- 5 親文字が複数の単語で構成されている場合,親文字全体にルビを対応させるか方法と,個々の単語にルビを対応させる方法がある.どちらにするかは選択による.個々の単語にルビを対応させる方法では,はみ出したルビが前後の親文字のルビとつながることを避けるために,はみ出したルビを語間に掛けないようにする.

- 6 親文字よりルビ文字列の全長が長い場合,行頭ではルビ文字列の先頭を行頭にそろえ,行末ではルビ文字列の末尾を行末にそろえる.

行頭又は行末において親文字の先頭又は末尾をそろえる方式にする方式もある.この場合は,親文字群の前又は後ろに配分された空き量を親文字群の後ろ又は前のアキに追加する.

#### ルビラテン文字(F)のルビの配置方法

- 1 密着させた親文字列の長さよりラテン文字のそれぞれ固有の字幅にしたルビ文字列の長さが短い場合は,ルビ文字列及び親文字列の字詰め方向の中心をそろえて配置する.

なお,ルビ文字列に語間を含む場合は,ルビ文字列の語間及び前後のアキを調整して,それぞれの長さをそろえる方法もある.

- 2 密着させた親文字列の長さよりラテン文字のそれぞれ固有の字幅にしたルビ文字列の長さが長い場合は,親文字全体の文字列とルビ文字列の長さをそろえ,それぞれの字詰め方向の文字列の中心をそろえて配置する.親文字列の先頭及び末尾と字間との比率は,1/2にする.

- 3 ルビラテン文字(F)の親文字群は,分割を不可とする.それは,ラテン文字の分割は,文節に基づき,複雑になることによる.

- 4 親文字列からルビがはみ出した場合,親文字列の前後の文字にルビを掛けてよいかどうかの処理は,“5.3.2 親文字が1字の場合のルビの配置方法”で述べた方法と同じである.

- 5 親文字よりルビ文字列の全長が長い場合,行頭ではルビ文字列の先頭を行頭にそろえ(図〓参照),行末ではルビ文字列の末尾を行末にそろえる(図〓参照).

行頭又は行末において親文字の先頭又は末尾をそろえる方式にする方法もある.この場合は,1:2で配意された親文字群の前又は後ろに配分された空き量を親文字群の字間及び後ろ又は前のアキに追加する.前又は後ろに配分された空き量をすべて親文字群の後ろ又は前に配分する方法と,一定の比率で親文字群の字間に配分する方法が考えられる.

## 5.5 注ルビの配置処理

注ルビは,親文字列が長いケースが多いが,逆にゼロとなる場合がある.

### 5.5.1 注ルビの字間処理

字間処理は,親文字が属するテキストと同じとする.ただし,先頭に配置する括弧類,句読点の前又は後ろのアキは確保しないものとする.また,可能な位置で注ルビ文字列は分割できるものとし,その処理は親文字が属するテキストと同じとする.注ルビが2行以上となった場合,最終行以外の行末にアキが出た場合は,そのままとし,行の調整処理は行わない.

### 5.5.2 そろえの処理

そろえの処理は,次による.初期値(デフォルト値)は1とする.

- 1 行頭そろえ 親文字列と注ルビ文字列の字詰め方向の先頭をそろえる.注ルビ文字列が長く,親文字列の後ろにはみ出した場合は,親文字の後ろの文字に掛けてよい.

- 2 行末そろえ 親文字列と注ルビ文字列の字詰め方向の末尾をそろえる.注ルビ文字列が長く,親文字列の前にはみ出した場合は,親文字の前の文字に掛けてよい.

- 3 中央そろえ 親文字列とルビ文字列の字詰め方向の中心をそえる.ただし,文字列の長さがゼロ(親文字がempty)の親文字が行末にある場合を除き,かつ親文字列が分割されないで同一行にある場合にのみ,この処理を行い,そうでない場合は1とする.文字列の長さがゼロ(親文字がempty)の親文字が行末にある場合は2とする.注ルビ文字列が長く,親文字列の前後にはみ出した場合は,親文字の前後の文字に掛けてよい.

- 4 均等割り 親文字列とルビ文字列の字詰め方向の長さをそろえ,ルビ文字列の字間を均等にあける.ただし,親文字列が分割されないで同一行にあり,かつルビ文字列の全長が親文字より短い場合のみ,この処理を行い,そうでない場合及び文字列の長さがゼロ(親文字がempty)の親文字の場合は1とする.

注:均等割りの処理 文字列中に字幅を文字サイズとしない文字を含んでいても,また,約物を含んでいても,アキは均等とする.注ルビの場合,処理が複雑になるので,できるだけ単純になる方法としたが,処理系で細かく優先順位を付ける処理方法にしてもよい.以下の字間を均等に空ける場合も同様とする.

注:行頭・行末そろえ 行頭・行末そろえは,処理が複雑になることから,採用しないこととした.

### 5.5.3 ルビ文字列が長くなった場合の処理

ルビ文字列が親文字列より長くなり,または親文字のある行の範囲を超える場合は,前後の行にはみ出すか,又は同一行内で折り返す.いずれによるかは選択による.

- 1 前後の行にはみ出す場合は,次の順序でルビ文字列を配置する.

    (1)行頭そろえの場合は,はみ出した注ルビを末尾側に延ばし,行の末尾を超えるときは,行の範囲を超えて次行にわってもよい.なお,段落の最終行の末尾に達したときは,先頭側に延ばす.なお,ルビ文字列が,段落の先頭及び末尾よりはみ出した場合は,同様にして,前後の段落に延ばす.

    (2)行末そろえの場合は,はみ出した注ルビを先頭側に延ばし,行の先頭を超えるときは,行の範囲を超えて前行にわってもよい.なお,段落の先頭行の先頭に達したときは,末尾側に延ばす.なお,ルビ文字列が,段落の末尾及び先頭よりはみ出した場合は,同様にして,前後の段落に延ばす.

    (3)中心そろえの場合は,はみ出した注ルビを両側に延ばし,行の先頭又は末尾を超えるときは,行の範囲を超えて前及び後ろの行にわってもよい.なお,段落の最終行の先頭又は末尾に達したときは,末尾又は先頭側に延ばす.なお,ルビ文字列が,段落の先頭及び末尾よりはみ出した場合は,同様にして,前後の段落に延ばす.

- 2 同一行内で折り返す場合は,次の順序でルビ文字列を配置する.

    (1)行頭そろえの場合は,親文字の末尾側に延ばし,行の末尾を超えるときは,その行の前方向に延ばし,それでも配置できないときは,その行で複数行に折り返す.そろえは,行頭そろえとする.注ルビの行頭位置は,親文字の含まれる行の行頭とする.

    (2)行末そろえの場合は,親文字の位置から先頭側に延ばし,行の先頭を超えるときは,その行の後ろ方向に延ばし,それでも配置できないときは,その行で複数行に折り返す.そろえは,行末そろえとする.注ルビの行頭位置は,親文字の含まれる行の末尾とする.

    (3)中心そろえの場合は,両側に延ばし,行の先頭又は末尾を超えるときは,親文字の逆方向の前又は後ろに延ばし,それでも配置できないときは,その行で複数行に折り返す.そろえは,中心そろえとする.注ルビの行の中心を親文字の含まれる行の中心とする.

なお,ルビが複数行となり,行間よりルビの行送り方向の幅が大きくなる場合は,行間を広げ,親文字等が重ならないようにする.

## 5.6 圏点

### 5.6.1 圏点の配置処理

圏点は,文字のそばにつけ,その部分を強調する,あるいは連続する仮名文字列の中の単語を示すといったことに使用する.かつては,強調する内容や語句の違いを示すために複数の種類の圏点を使用していた例もあったが,最近は1種類とする例が多い.

なお,圏点を付ける対象の文字は,ルビと同様に親文字という.圏点を付ける親文字の文字種は,これまでは仮名や漢字であったが,最近はラテン文字に付けている例もある.

- 連続する仮名文字列の中の単語を示す また【ほら…圏点】を吹く

次のように処理する.

- 圏点の文字サイズは,圏点を付ける親文字の文字サイズの1/2を原則とする.
- 親文字1文字に圏点は1つだけ付ける.
- 縦組の場合は親文字の右側,横組の場合は親文字の上側とする.
- 字詰め方向は,親文字と圏点の中心をそろえる.行送り方向は,親文字と圏点のボディを接して配置する.

注 活字組版では,縦組で圏点にゴマ(SESAME DOT)を使用する場合,ルビの配置にならって字詰め方向について親文字と圏点の中心をそろえる方法以外に,親文字の中心ではなく,やや上側に配意する方法も行われていた.今日では,そうした配置方法は見かけない.(以下は説明であり,注記としては不要…圏点のボディは縦組用としては,縦方向は親文字はサイズ,横方向は親文字の1/2であったので,こうした処理が可能であった.)

- 圏点に使用する記号は,指定によるが,縦組ではゴマ(SESAME DOT)またはビュレット(BULLET)が使用されており,横組ではビュレット(BULLET)が使用されている.横組では左右のバランスが問題となるが,横組で圏点にゴマを使用すると左右のバランスがよくないので,横組では圏点にゴマを使用しない.
- 慣行として,圏点は,あくまで圏点は文字につけるものであるとして,句読点,括弧類などには付けない方法がある.

### 5.6.2 ルビ・圏点等が重なった場合の処理

ルビや圏点な重なる,あるいは幅のある傍線がつく場合がある.ケースによっては,行間を変更する必要が出る場合もあり,望ましいものではない.以下のような方法が考えられる.

- 強調する方法はいろいろあるので,圏点や傍線とは別の方法にする.たとえば,語句の強調であれが該当の語句を山っこ(〈〉)などでくくる.ある程度の長さのある文字列が該当する場合は,ゴシック体などフォントを変える又は太字を使用する.
- ルビの代わりに親文字の直後にルビに該当する文字を括弧内に示す.
- こうした代替方法がとれない場合は,ルビや圏点又は傍線のいずれかの位置が重ならないように,いずれかを縦組では右方向に,横組では上方向に移動させて,それぞれが重ならないように配置する.ルビと圏点の場合は,圏点を移動させ,傍線と圏点又はルビの場合は,圏点又はルビを移動させるとよい.ルビ,圏点と傍線の場合は,最初が下線・傍線,次がルビ,最後に圏点とするとよい.

### 5.6.3 ルビ・圏点等が重なった場合の行間の処理

ルビ・圏点等が重なった場合,隣接する行に重なることは望ましくない.ルビ・圏点等が隣接する行に重なった場合は,行間を広げる必要がある.次のように処理するとよい.

- 隣接する行の文字,ルビや圏点が重なならないように該当する行間だけを空ける.

> 図 該当する行間だけ空ける例

- ルビ・圏点等がつく行の行ドリを2行ドリ又は3行ドリにする.

> 図 該当する行2行ドリにした例

なお,行ドリとは,その段落で設定されている文字サイズおよび行間で,複数の行を行送り方向の領域とする方法である.文字サイズを10ポイント,行間を8 イントとすると,以下のようになる.いずれも,行ドリをする行が段落の途中にある場合である.

- 2行ドリの領域の大きさ 8+10+8+10+8=44ポイント

この場合,隣接する行との行間は,以下の計算からそれぞれ17ポイントとなる.

- 2行ドリの場合の行間 (44-10)/2=17ポイント

領域の先頭または末尾に行ドリをする行が配置される場合,先頭または末尾の行間の8ポイントがなくなることに注意が必要である(図〓参照).

> これ図解をする.

行ドリの方法は,行間を変更した行に隣接する行が,段落で指定した所定の位置に戻るので,段組など,行位置に乱れが出ないようにする場合に採用できる方法である.しかし,必要でない行間があいてしまうという問題がある.


> 以下は削除

# 1 両側ルビの配置処理

## 1.1 ルビの種類とその組合せ

両側にルビを配置する場合,その処理は複雑になるが,簡単な方法として,ルビの種類を考慮し,その組合せで配置方法を決めることができる.なお,親文字からはみ出したルビ文字の前後の文字との関係,行頭・行末の配置処理は,片側にルビが付く場合と同じである.

- 1 ルビの種類について,以下の名称を使用する.
    モノルビ A方式における親文字が1字の場合又は親文字が2字以上,各親文字にルビを対応させる場合のルビ
    グループルビ A方式における親文字が2字以上の場合でルビが1字又は親文字全体に対してルビを対応させる場合のルビ
    熟語ルビ A方式における親文字及びルビ文字が2字以上で,親文字のまとまりを重視する場合のルビ

- 2 両側ルビの組合せ A方式のルビの組合せとしては,次がある.

    ①モノルビとモノルビ
    ②グループルビとグループルビ
    ③モノルビとグループルビ
    ④モノルビと熟語ルビ
    ⑤一方が熟語ルビで片方が熟語ルビ又はグループルビ

さらに,A方式とB方式の組合せがある.

## 1.2 ルビの種類の組合せと配置方法

JIS X 4051では,前項の①,②及び③の組合せの配置方法のみを規定している.ただし,③は,連続するモノルビを一つのグループルビとして扱う処理なので,結果として,その配置方法は,②である.

ところで,④のモノルビと熟語ルビとの組合せは,熟語ルビの熟語を構成する個々の漢字とそれに対応するルビ文字との組合せを一つのモノルビとして扱えば,①の方法が採用でき,⑤の一方が熟語ルビで片方が熟語ルビ又はグループルビの組合せは,熟語ルビをグループルビとして扱えば,②の方法が採用できる.

このように,③及び⑤は②の配置方法と同じ,④は①の配置方法と同じと考えてよい.そこで,③,④及び⑤の配置処理は,①又は②の配置方法を参照してもらうこととし,ここでは,①及び②の配置方法を説明する.

なお,ルビ文字をどちら側に配置するかは,指定による.

## 1.3 モノルビとモノルビの配置処理

モノルビとモノルビの組合せでは,ルビ文字列の字間はベタ組とし,それぞれのルビ文字列と親文字列とは,字詰め方向の中心をそろえて配置する(図〓参照).その他は,前述したモノルビの配置方法と同じである.

## 1.4 グループルビとグループルビの配置処理

両側のルビ文字列がともに親文字より短い場合は,前述した“グループルビの配置方法”により配置する.ルビ文字が同項でいう仮名等の場合は,それぞれのルビ文字列の字間とその前後を空けて配置する(図〓参照).

親文字より長いルビ文字列を含む場合は,長い方のルビ文字列の長さに従い,前述した“グループルビの配置方法”により配置する.親文字が同項でいう仮名等の場合は,親文字列の字間とその前後を空ける.次に,その(仮名等の場合は字間を空けた)親文字列の長さ(前後の空きは含めない)に応じて残りの短い方のグループルビの配置方法を決める.

短い方のグループルビのルビ文字列の長さが(字間を空けた)親文字列長以上の場合は,ルビ文字列はベタ組とし,ルビ文字列と親文字列の字詰め方向の中心をそろえて配置する(図〓参照).

短い方のグループルビのルビ文字列の長さが(字間を空けた)親文字列長未満の場合は,字間を空けた親文字の長さにそろえて,前述の“グループルビの配置方法”で配置する.ルビ文字が同項でいう仮名等の場合は,ルビ文字列の字間とその前後を空ける(図〓参照).

いずれの場合でも,その他は,前述したグループルビの配置方法と同じである.

## 1.5 A方式とB方式の配置処理

A方式とB方式との組合せにおいては,まずA方式のルビの配置処理を行い,そのうえでB方式のルビを配置する.

なお,均等割りの指定があった場合は,行頭そろえとする.

# 2 両側ルビのやや複雑な処理方法

モノルビとグループルビの組合せの場合,次のような方法も考えられる.

まずモノルビとした各親文字とルビの配置を決め(以下,そのまとまりを“モノルビ親文字群のブロック”と呼ぶ),次にそのモノルビ親文字群のブロックを字間を空けないでベタ組で並べ,その全長に対し,グループルビを対応させる処理を行う.グループルビ文字列が,モノルビ親文字群のブロックを並べた全長より短い場合は,グループルビ文字列の字間と先頭・末尾を空ける.長い場合は,モノルビ親文字群のブロック間と全体の先頭・末尾を空ける,という方法である.この方法は,モノルビの親文字とルビとの対応で,ルビ文字列が親文字の字幅以下の場合は,問題がないが,親文字の字幅を超える場合は,グループルビとしてみるとバランスがよい配置とはいえない場合が出てくる.

そこで,すべてのモノルビにおいて親文字の字幅以下の場合と,字幅を超えるケースを含む場合に分け,前者は各モノルビを親文字に配置し,親文字をベタ組で並べ,その上で,グループルビを親文字列に配置する処理を行う.後者はモノルビ全体をグループにし,グループルビとグループルビの組合せという配置方法とする.

この方法は,熟語ルビと熟語ルビの組合せでも適用できる.具体的には,熟語ルビの各親文字とルビ文字列の長さを比べ,次の3つの場合に分ける.
- 1 すべてのルビ文字列の長さが親文字の字幅以下の場合
- 2 片方で一部のルビ文字列で親文字の字幅を超えるケースを含む場合
- 3 両側で一部のルビ文字列で親文字の字幅を超えるケースを含む場合

そのうえで,(1)はモノルビとモノルビの組合せのルール,(2)はモノルビとグループルビの組合せで,すべてのモノルビ文字列の長さが親文字の字幅以下の場合のルール,(3)はグループルビとグループルビの組合せのルールを適用するという方法である.

さらに,この方法は,熟語ルビとグループルビの組合せでも考えることができる.熟語ルビの各親文字とルビ文字の対応において,すべてのルビ文字列の長さが親文字の字幅以下の場合と,一部のルビ文字列で親文字の字幅を超えるケースを含む場合に分け,前者はモノルビとグループルビの組合せで,すべてのモノルビ文字列の長さが親文字の字幅以下の場合のルール,後者はグループルビとグループルビの組合せのルールを適用するという方法である.

# 3 両側ルビと行間

両側にルビを付けた行が重なると,行間の設定によっては,隣り同士の行のルビが重なるケースが出る.これは避けないといけない.以下のような方法が考えられる.

- 1 あらかじめ隣り同士のルビ文字が重ならないように,文書全体の行間を設定しておく.

-2 重なりが発生した該当する行間だけを広げて,ルビが重ならないようにする.この場合,重なった前の行のルビと,後ろのルビが重ならないだけでなく,例えば,その間は本文文字サイズの四分は空けるとする方法も行われていた.

- 3 該当する行間ではなく,両側にルビの付いた行そのものを複数の行の領域に配置する.両側にルビの付いた行を,例えば,2行分のスペース(2行取り)とする.
- 4 重なりが発生した行間だけではなく,該当する段落全体の行間を広げて,ルビが重ならないようにする.

なお,活字組版では,ルビが多く付く,あるいはルビと共に注の合印などが多く入る場合は(1)の方法,ルビが少ない場合は(2)又は(3)の方法がとられていた.しかし,Webの自動処理を考えると(3)の処理でよいであろう.この方法で該当する行に整数行の領域(例えば2行取り)を割り当てれば,行位置の乱れは,その部分だけですみ,段組とした場合などでは,隣りの段との行位置がそろう.


Please view or discuss this issue at https://github.com/w3c/jlreq-d/issues/113 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Sunday, 19 October 2025 03:44:02 UTC