ノンスペーシング文字

ノンスペーシング文字

仕様書

spacing 文字

[1] spacing文字 (spacing character >>3, 現在位置の前進動作を伴う文字 >>7, スペーシング文字 >>7) は、 活性位置文字位置1つ分、前進させる文字です >>3

[4] ISO/IEC 646 でこの用語はなぜか単独の用語としてではなく、 図形文字の定義に紛れ込んでいます。 その影響なのか、 JIS X 0201 は明確な定義なく使っています >>7JIS X 0208, JIS X 0213 にも現れます。 重ね打ち

[5] ISO/IEC 646 はこの語を重ね打ちによる文字合成の説明で対義語的に使っていました。 重ね打ち

[34] ANSELspacing図形文字 (spacing graphic character) を同じような意味で (しかし別の表現で) 定義していました >>25ANSEL ではこれは非spacing図形文字の対義語でした。

[3] ECMA-6 >>2

All graphic characters shall be spacing characters, that is, they cause the active position to advance by one character position.

非spacing文字

[35] 非spacing文字 (non-spacing character, 現在位置の前進動作を伴わない文字) は、 spacing文字のような活性位置の前進が発生しない文字です。

[36] spacing文字を使えば、 BSCR を使う 重ね打ち式文字合成 こと無く重ね打ちが実現できます。

[37] 従って、現在位置の前進動作を伴わない文字は主としてアクセントの類です。

[9] ISO文字コードの体系で統一的な非spacing文字の定義は存在していないようです。

[44] ITU-T (CCITT) の Teletex, Videotex 系の規格や、 図書館系の規格がそれぞれ独自にそうしたものを使っていました。


[45] RFC 1345ITU-T 系、図書館系の文字コードISO-IR を出典に、 NON-SPACING 系の文字mnem 符号を定めていました。 ISO 10646符号位置との対応関係も示されていましたが、 PUA が使われていました。 RFC 1345

[40] JIS X 4153:1998 6.3.1.2 はアクセント付きの文字の表現方法の例示として、 「b) 送りのないダイアクリティカルマーク及びe (2文字)」、 「c) e及び組合せダイアクリティカルマーク (2文字)」 などを示していました。後者は Unicode結合文字の方式ですが、 前者は非spacing文字を使った方式に当たります。

[41] JIS X 0208 改正案説明資料, 芝野耕司,

JIS X 0202 (ISO/IEC 2022),すなわち,符号拡張法を含めて,符号化文字集合規格で認めている文字 の合成方法は,次に二つの方法である。一つの方法は,ISOR 646 以来の BACKSPACE 又は CARRIAGE RETUREN 及び SPACE を組合せ,重ね打ちによって文字を合成する方法であり,もう一つの方法は,ISO 6937 などで規定される文字送りなしのアクセント記号を用いる方法である。これらの符号化文字集合にお ける文字合成方法は,どちらも基本的には,重ね打ちに基づいている。

このような合成方法では,日本国内で広く用いられている丸付き数字,単位記号文字などの文字を実際 に合成することはできない。にもかかわらず,1978 年に制定した第 1 次規格以来,文字合成に関して,こ うした具体的な技術に立脚した ISO での合成文字を厳密に議論することなく,文字合成の概念のみをあた かも魔法のように取り扱ってきた。そのため,丸付き数字,片仮名単位字などは,日常的に広く用いられ ているにも関わらず,合成が可能であるとして,符号化文字集合に入れられていない。このような文字に 関しては,実務上必要であるが,実際には合成できないため,各社の実装ではメーカ提供外字として取り 入れられており,規格の運用面での問題が生じている。

[51] KS X 1004:2004 に前置アクセントがあります。

[46] JIS X 0213 にも現在位置の前進を伴わない文字がありますが、 これは前置アクセントではなく後置アクセント方式のようです。 JIS X 0213の結合文字

ITU-T (CCITT) 系前置アクセント

[10] T.51 は、 非spacing文字をいくつか定義していました。 T.51

[21] T.51 とほぼ同じ ISO/IEC 6937:2001 は、 ISO/IEC 10646 式の文字の名前を定義していました。 同形式ではあっても、 事情の違いから独自の文字の名前を与えたものもありました。 非spacing文字はそのどちらでもなく、 「non-spacing tilde」 のような別の形式の名前が与えられていました。 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 のように書いていました。 T.51, T.101

[47] Unicode には ISO 6937 を出典とする文字があります >>164 が、 実際は ISO/IEC 6937 の前置型非spacing文字ではなく後置型の結合文字です。

[48] RFC 1502 - X.400 Use of Extended Character Sets, , 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] 00000001.PDF - 070.pdf, , https://itscj.ipsj.or.jp/ir/070.pdf

[54] 00000001.PDF - 099.pdf, , https://itscj.ipsj.or.jp/ir/099.pdf

[55] 00000001.PDF - 103.pdf, , 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] 00000001.PDF - 053.pdf, , https://itscj.ipsj.or.jp/ir/053.pdf

[43] ISO 5428


[26] ANSEL >>25 とそれを使った MARC-8 は、 ダイアクリティカルマークを前置し、基底文字を後置する方式を使っていました >>27

[38] ANSEL は、 非spacing図形文字 (non-spacing graphic character) = 結合文字 (combining character) を出力装置の前進運動を伴わない図形文字としていました。 基底文字に前置し、 BACKSPACE 重ね打ち は使わないとしていました。 >>25

[33] ANSELISO-IR 登録では、 文字の名前に「(combining character)」 と付記されていました。 combining character (ANSEL 用語の nonspacing graphic character) は基底文字に前置されることが明記されていました。 >>32

[31] 現行の MARC の定義は新しい Unicode と旧来の MARC-8 を包含する形となっています。 結合文字 (combining character) と基底文字 (base character) は現在の Unicode のモデルとも整合する用語の定義となっているようです >>30結合文字 (combining character, combining mark) は他の文字と組み合わせるマークなどという趣旨の定義になっていて、 この語自体は特定の挙動や前後関係を意味していません。 そして非spacing図形文字 (nonspacing graphic character) は、 結合文字と同義とされていました >>30。 従って 「nonspacing」 という用語だけでは前置か後置か確定できません。

[28] ANSEL では複数の結合文字があるとき、 その出現順に、 左から右に、 そして上から下へと入力していくとされていました。 >>25 MARC-8 では複数の結合文字があるとき、 その出現順に、 左横書きでは左から右に、 右横書きでは右から左に、 そして上から下へと入力していくとされていました。 >>27

[29] Unicode結合文字の内側から外側への順序 結合文字 とこの「出現順」 との関係性は定かではありません。

ARIB ノンスペーシング文字

[49] ARIB STD-B5ARIB STD-B24 は、 JIS X 0208 の一部のアクセント合成用丸ノンスペーシング文字としていました。 後続の文字と合成すると定めていました。 ARIB STD-B5, ARIB STD-B24

関連

[6] spacing / 非spacing という概念は、 Unicode結合文字にも残存しています。 結合文字

[8] ISO文字コードの体系では、 ISO/IEC 6429 制御機能character spacing, line spacing を細かく制御する仕組みを提供していました。

メモ