* 仕様書

[REFS[
- [2] 
[[Standard ECMA-6]]
[CITE[7-Bit coded Character Set]], 
6[SUP[th]] Edition - December 1991,
Reprinted in electronic form in August 1997,
[TIME[2017-06-15T13:13:29.000Z]], [TIME[2020-12-04T08:36:24.470Z]] <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-006.pdf#page=13>
- [7] [[JIS X 0201-1997]] 5.5
- [25] [TIME[2020-12-05T06:33:15.000Z]] <https://web.archive.org/web/20140314191437/http://www.niso.org/apps/group_public/download.php/6451/Extended%20Latin%20Alphabet%20Coded%20Character%20Set%20for%20Bibliographic%20Use%20%28ANSEL%29.pdf>
- [30] [CITE[Character Sets: Introduction: MARC 21 Specifications for Record Structure, Character Sets, and Exchange Media (Library of Congress)]], [TIME[2007-12-04T16:19:57.000Z]], [TIME[2020-12-05T06:40:00.555Z]] <https://www.loc.gov/marc/specifications/speccharintro.html>
-- [27] [CITE[Character Sets: MARC-8 Encoding Environment: MARC 21 Specifications for Record Structure, Character Sets, and Exchange Media (Library of Congress)]], [TIME[2007-12-05T16:31:01.000Z]], [TIME[2020-12-05T06:34:53.156Z]] <https://www.loc.gov/marc/specifications/speccharmarc8.html#combine>
- [32] [CITE[231.pdf]], [TIME[2014-06-23T02:12:33.000Z]], [TIME[2020-12-05T06:46:42.815Z]] <https://www.itscj.ipsj.or.jp/iso-ir/231.pdf>
- [164] [CITE[The Unicode Standard, Version 13.0 - ch07.pdf]], [TIME[2020-03-09T17:53:38.000Z]], [TIME[2020-12-07T09:15:13.901Z]] <https://www.unicode.org/versions/latest/ch07.pdf#M9.37081.HeadingBreak.79.Combining.Marks>

]REFS]

* spacing 文字


[1] 
[DFN[spacing文字]]
([DFN[spacing character]] [SRC[>>3]],
[DFN[現在位置の前進動作を伴う文字]] [SRC[>>7]],
[DFN[スペーシング文字]] [SRC[>>7]])
は、
[[活性位置]]を[[文字位置]]1つ分、前進させる[[文字]]です
[SRC[>>3]]。

;; [4] [[ISO/IEC 646]] でこの用語はなぜか単独の用語としてではなく、
[[図形文字]]の定義に紛れ込んでいます。
その影響なのか、
[[JIS X 0201]] は明確な定義なく使っています [SRC[>>7]]。
[[JIS X 0208]], [[JIS X 0213]] にも現れます。 [SEE[ [[重ね打ち]] ]]

[5] 
[[ISO/IEC 646]]
はこの語を[[重ね打ちによる文字合成]]の説明で対義語的に使っていました。
[SEE[ [[重ね打ち]] ]]

[34] 
[[ANSEL]]
は
[DFN[spacing図形文字]]
([DFN[spacing graphic character]])
を同じような意味で (しかし別の表現で)
定義していました
[SRC[>>25]]。
[[ANSEL]]
ではこれは[[非spacing図形文字]]の対義語でした。

[REFS[

[FIG(quote)[ [3] [[ECMA-6]] [SRC[>>2]]
>
All graphic characters shall be spacing characters, that is, they cause the active position to advance by one
character position.
]FIG]


]REFS]

* 非spacing文字

[35] 
[DFN[非spacing文字]]
([DFN[non-spacing character]],
[DFN[現在位置の前進動作を伴わない文字]])
は、
[[spacing文字]]のような[[活性位置]]の前進が発生しない[[文字]]です。

[36] [[spacing文字]]を使えば、 
[CODE(char)[[[BS]]]] や [CODE(char)[[[CR]]]] を使う
[SEE[ [[重ね打ち式文字合成]] ]]
こと無く[[重ね打ち]]が実現できます。

[37] 従って、現在位置の前進動作を伴わない文字は主として[[アクセント]]の類です。

[9] 
[[ISO文字コード]]の体系で統一的な[[非spacing文字]]の定義は存在していないようです。

[44] 
[[ITU-T]] ([[CCITT]]) の [[Teletex]], [[Videotex]] 系の規格や、
[[図書館]]系の規格がそれぞれ独自にそうしたものを使っていました。

[57] 
[[[CITE[Symbol]]フォント]]にも前置型の[[結合文字]]的なものがあります。
[SEE[ [[x-mac-symbol]] ]]

[58] [CITE@ja[Symbol - Wikipedia]], [TIME[2025-06-16T14:07:53.000Z]], [TIME[2025-06-19T14:14:53.927Z]] <https://ja.wikipedia.org/wiki/Symbol#cite_note-2>

([CC[U+0305]])

>[SNIP[]]「メイリオ」などSymbol同様に合成対象が後ろ側の文字になっているものがある。

-*-*-

[45] 
[[RFC 1345]]
は
[[ITU-T]] 系、[[図書館]]系の[[文字コード]]の 
[[ISO-IR]]
を出典に、
NON-SPACING 
系の[[文字]]の [[mnem]] 符号を定めていました。
[[ISO 10646]] 
の[[符号位置]]との対応関係も示されていましたが、
[[PUA]]
が使われていました。
[SEE[ [[RFC 1345]] ]]



[40] 
[[JIS X 4153:1998]] 6.3.1.2 
はアクセント付きの文字の表現方法の例示として、
「[B[b)]] 送りのないダイアクリティカルマーク及びe (2文字)」、
「[B[c)]] e及び組合せダイアクリティカルマーク (2文字)」
などを示していました。後者は [[Unicode]] の[[結合文字]]の方式ですが、
前者は[[非spacing文字]]を使った方式に当たります。



[FIG(quote)[
[FIGCAPTION[
[41] 
[CITE[[[JIS X 0208]] 改正案説明資料]],
[[芝野耕司]],
[TIME[1995 年 11 月 20 日][1995-11-20]]
]FIGCAPTION]

>
JIS X 0202 (ISO/IEC 2022),すなわち,符号拡張法を含めて,符号化文字集合規格で認めている文字
の合成方法は,次に二つの方法である。一つの方法は,ISOR 646 以来の BACKSPACE 又は CARRIAGE
RETUREN 及び SPACE を組合せ,重ね打ちによって文字を合成する方法であり,もう一つの方法は,ISO
6937 などで規定される文字送りなしのアクセント記号を用いる方法である。これらの符号化文字集合にお
ける文字合成方法は,どちらも基本的には,重ね打ちに基づいている。
>
このような合成方法では,日本国内で広く用いられている丸付き数字,単位記号文字などの文字を実際
に合成することはできない。にもかかわらず,1978 年に制定した第 1 次規格以来,文字合成に関して,こ
うした具体的な技術に立脚した ISO での合成文字を厳密に議論することなく,文字合成の概念のみをあた
かも魔法のように取り扱ってきた。そのため,丸付き数字,片仮名単位字などは,日常的に広く用いられ
ているにも関わらず,合成が可能であるとして,符号化文字集合に入れられていない。このような文字に
関しては,実務上必要であるが,実際には合成できないため,各社の実装ではメーカ提供外字として取り
入れられており,規格の運用面での問題が生じている。
]FIG]

[51] 
[[KS X 1004:2004]] に前置アクセントがあります。

[46] 
[[JIS X 0213]]
にも[[現在位置の前進を伴わない文字]]がありますが、
これは前置アクセントではなく後置アクセント方式のようです。
[SEE[ [[JIS X 0213の結合文字]] ]]


** ITU-T (CCITT) 系前置アクセント


[10] 
[[T.51]]
は、
[[非spacing文字]]をいくつか定義していました。
[SEE[ [[T.51]] ]]

- [11] 次の[[非spacing文字]]がありました。
-- [13] [[ラテン文字]]用の[[ダイアクリティカルマーク]]類
-- [12] non spacing underline
-- [14] non spacing vector overbar
-- [15] non spacing slant
- [16] [[ダイアクリティカルマーク]]類は、[[ラテン文字]]との可能な組合せがすべて列挙されていました。
- [17] non spacing underline は、任意の文字 (アクセント付きの文字を含む。)
と組合せられるとされていました。
- [18] [[非spacing文字]]と [CODE(charname)@en[SPACE]] の組合せで、
アクセントの単独の文字を表せるとされていました。
- [19] これらは、[[非spacing文字]]の後に[[spacing文字]]を続けるとされていました。

[21] 
[[T.51]] とほぼ同じ
[[ISO/IEC 6937:2001]]
は、
[[ISO/IEC 10646]] 式の[[文字の名前]]を定義していました。
同形式ではあっても、
事情の違いから独自の[[文字の名前]]を与えたものもありました。
[[非spacing文字]]はそのどちらでもなく、
「[I[non-spacing tilde]]」
のような別の形式の名前が与えられていました。
[SEE[ [[ISO/IEC 6937:2001]] ]]

[22] 
[[ISO/IEC 6937:2001]] 附属書C ([[参考]])
は、
[[非spacing文字]]の[[ダイアクリティカルマーク]]を指して
「non-spacing diacritical mark」、
それに続く[[ラテン文字]]を指して
「basic letter」
と呼んでいました。
両者の組み合わせは[[文字レパートリ]]に含まれるものに限定されるのであって、
新しい[[文字]]を生成するものではないとされていました。


[20] 認められない組合せが出現した時どう処理するべきかは定かではありません。
([[ISO文字コード]]全般がこの種の[[エラー処理]]の規定を欠いています。)

[23] 
なお下線は [[T.51]] の新しい版では互換性のために対応しなければならないが使用しないものとされており、
[[ISO/IEC 6937:2001]]
は規定していませんでした。
かわりに[[制御機能]]により実現することが想定されていたようです。
固定された[[文字レパートリ]]を表現するというこの時代の 
[[ISO文字コード]]のモデルと、
任意の[[文字]]に[[下線]]を引けるという規定が矛盾していたこともあるのでしょうか。


[24] [[T.61]], [[T.101]], [[NAPLPS]] も同系統の[[図形文字集合]]を使っており、
前置のアクセントを持っていました。


[39] 
[[T.51]] 系統の [[ISO-IR]] のうち、 142, 128, 103, 70 は該当[[文字]]に注釈として
non-spacing
であるので云々とありました。
ものによっては使いかたが簡単に示されていましたが、
「non-spacing」以外の説明がないものもありました。
156
は[[文字]]の名前を
NON-SPACING TILDE
のように書いていました。
[SEE[ [[T.51]], [[T.101]] ]]

[56] 
[[T.101]] PDFその2 #page=92

[47] 
[[Unicode]]
には
[[ISO 6937]]
を出典とする[[文字]]があります
[SRC[>>164]]
が、
実際は [[ISO/IEC 6937]] の前置型[[非spacing文字]]ではなく後置型の[[結合文字]]です。



[48] [CITE@en[RFC 1502 - X.400 Use of Extended Character Sets]], [TIME[2021-01-24T15:50:13.000Z]], [TIME[2021-03-22T09:30:12.577Z]] <https://tools.ietf.org/html/rfc1502#page-8>


>(5)  If avoidable, use of character sets with floating accents,
like ISO 6937, should be avoided.


[50] 
[[GB 8865.2]] もこの系統の[[非进格]]文字のある[[94集合]]を定めています。


[53] [CITE[00000001.PDF - 070.pdf]], [TIME[2022-11-02T03:16:09.000Z]], [TIME[2022-12-10T04:44:37.217Z]] <https://itscj.ipsj.or.jp/ir/070.pdf>

[54] [CITE[00000001.PDF - 099.pdf]], [TIME[2022-11-02T03:16:13.000Z]], [TIME[2022-12-10T04:58:45.683Z]] <https://itscj.ipsj.or.jp/ir/099.pdf>

[55] [CITE[00000001.PDF - 103.pdf]], [TIME[2022-11-02T03:16:13.000Z]], [TIME[2022-12-10T05:00:01.413Z]] <https://itscj.ipsj.or.jp/ir/103.pdf>

** 図書館系前置アクセント

[42] 
[[DIN 31624]]

>Non-spacing character.  The active position does not move  
to the next position.

(LIGATURE SIGN,
DOUBLE TILDE
は[[非spacing文字]]かつ[[組合せて使う文字]])

[52] [CITE[00000001.PDF - 053.pdf]], [TIME[2022-11-02T03:16:07.000Z]], [TIME[2022-12-10T04:09:32.997Z]] <https://itscj.ipsj.or.jp/ir/053.pdf>

[43] 
[[ISO 5428]]

-*-*-

[26] [[ANSEL]] [SRC[>>25]] とそれを使った [[MARC-8]] は、
[[ダイアクリティカルマーク]]を前置し、[[基底文字]]を後置する方式を使っていました
[SRC[>>27]]。

[38] 
[[ANSEL]]
は、
[DFN[非spacing図形文字]]
([DFN[non-spacing graphic character]]) =
[DFN[結合文字]] ([DFN[combining character]])
を出力装置の前進運動を伴わない[[図形文字]]としていました。
基底文字に前置し、 [CODE(charname)@en[BACKSPACE]] [SEE[ [[重ね打ち]] ]]
は使わないとしていました。
[SRC[>>25]]

[33] 
[[ANSEL]]
の
[[ISO-IR]] 登録では、
[[文字]]の名前に「[I[(combining character)]]」
と付記されていました。
combining character
([[ANSEL]] 用語の nonspacing graphic character)
は基底文字に前置されることが明記されていました。
[SRC[>>32]]


[31] 
現行の
[[MARC]]
の定義は新しい
[[Unicode]]
と旧来の
[[MARC-8]]
を包含する形となっています。
[[結合文字]] (combining character)
と[[基底文字]] (base character)
は現在の
[[Unicode]]
のモデルとも整合する用語の定義となっているようです [SRC[>>30]]。
[[結合文字]] (combining character, combining mark)
は他の文字と組み合わせるマークなどという趣旨の定義になっていて、
この語自体は特定の挙動や前後関係を意味していません。
そして[DFN[非spacing図形文字]]
([DFN[nonspacing graphic character]])
は、
[[結合文字]]と同義とされていました [SRC[>>30]]。
従って
「nonspacing」
という用語だけでは前置か後置か確定できません。


[28] [[ANSEL]]
では複数の[[結合文字]]があるとき、
その出現順に、
左から右に、
そして上から下へと入力していくとされていました。
[SRC[>>25]]
[[MARC-8]]
では複数の[[結合文字]]があるとき、
その出現順に、
[[左横書き]]では左から右に、
[[右横書き]]では右から左に、
そして上から下へと入力していくとされていました。
[SRC[>>27]]

;; [29] [[Unicode]] の[[結合文字]]の内側から外側への順序 [SEE[ [[結合文字]] ]]
とこの「出現順」
との関係性は定かではありません。

** ARIB ノンスペーシング文字

[49] 
[[ARIB STD-B5]] と [[ARIB STD-B24]]
は、
[[JIS X 0208]]
の一部の[[アクセント]]や[[合成用丸]]を[DFN[ノンスペーシング文字]]としていました。
後続の文字と合成すると定めていました。
[SEE[ [[ARIB STD-B5]], [[ARIB STD-B24]] ]]

* 関連

[6] 
[[spacing]]
/
[[非spacing]]
という概念は、
[[Unicode]]
の[[結合文字]]にも残存しています。
[SEE[ [[結合文字]] ]]

[8] 
[[ISO文字コード]]の体系では、
[[ISO/IEC 6429]]
[[制御機能]]が
[[character spacing]],
[[line spacing]]
を細かく制御する仕組みを提供していました。


* メモ
