重ね打ちによる文字合成

重ね打ち式文字合成

[2] かつては、タイプライター時代のような重ね打ち基底文字アクセントなどの組み合わせを表現できると (理論上) されていました。

仕様書

ISO/IEC 646

[14] 制御文字 BACKSPACE (後退) や CR (復帰) を使用することで、2文字以上の図形文字を同じ文字位置に 重ねて表示することが出来ます。 (重ね打ちといいます。 タイプライタに由来します。) たとえば "/" (SOLIDUS) と "=" (EQUALS SIGN) を組み合わせることで、 "≠" (NOT EQUALS SIGN) を表示出来ます。組み合わせられた合成文字は 一つのCCデータ要素として扱われます。

[10] ISO/IEC 646JIS X 0201 に、 そのような合成が可能であるとの規定があります。 ただし出来るという事実や用法、 いくつかの例示はありますが、 肝心のどのようなビット組合せ列によってそれを行うかは規定されていません。 どのような文字の記述が可能であるかの範囲 (文字レパートリー) も規定されていません。 これらは応用が定めることとされています。

[18] 例えば「≠」は = BS / とも / BS = とも表し得ます。 それ以外にも、 CRSP を自由に使えるなら無限の可能性が現れます。 また 「≠≠」 は = = BS BS / / とも表し得ます。

 

[1] JIS X 0201 における合成文字 JIS X 0201:1997 7.

[15] Standard ECMA-6 7-Bit coded Character Set, 6th Edition - December 1991, Reprinted in electronic form in August 1997, , http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-006.pdf#page=16

7 Composite Graphic Characters

Whilst all graphic characters specified in this International Standard are spacing characters, it is possible, by using BACKSPACE or CARRIAGE RETURN to image two or more graphic characters at the same character position (see also annex B.2).

For example, SOLIDUS and EQUALS SIGN may be combined to image "not equals". The character LOW LINE, that may be used as a free-standing character, may also be associated with other character(s) to represent the graphic rendition "underlined".

Diacritical marks may be allocated to the bit combinations specified in 6.4.3 and be available for composing accented letters. For such composition a sequence of three characters, the first or last of which is the letter to be accented and the second of which is BACKSPACE may be used. Furthermore, QUOTATION MARK, APOSTROPHE or COMMA can be associated with a letter by means of BACKSPACE for the composition of an accented letter with a diaeresis, an acute accent or a cedilla, respectively

PDF 23頁

B.2.3 Composite graphic characters and repertoire

ECMA-6 permits the construction of composite graphic characters by using the control characters BACKSPACE and CARRIAGE RETURN to image two or more graphic characters at the same character position.

The total number of graphic characters which can be obtained from any version of the character set, with or without using this facility, is called the repertoire. ECMA-6 does not define a particular repertoire. However, as the interpretation and/or the imaging of composite characters may cause difficulties, agreement between sender and recipient of the data may be required. To minimize the need for such agreements and to facilitate interchange, national or application-oriented standards may specify a standard repertoire of graphic characters which permit only a limited number of composite graphic characters. Such limitations are considered fully compatible with ECMA-6.

[16] 6.4.3 のビット組合せとは、 ISO/IEC 646の版で任意の文字を割り当てられるものを指しています。

[17] 一般に合成文字を含むデータを情報交換する場合には、 あらかじめ送受信者間で合成文字の種類及び合成方法に関する 合意が必要です。開放型環境での情報交換を確実にするために、 合成文字は使用しないほうが良いとされています。

[19] ISO/IEC 646 IRVJIS X 0201 は、 C0文字集合として ISO/IEC 6429 C0 を使っています。 従って制御機能の用法には ISO/IEC 6429 の規定も適用されます。

[33] JIS X 0202:1998 6.3.3 には、 このような合成の方法が存在するという程度の言及がありました。 (他には Unicode 型の結合文字の方法と、 GCC が言及されていました。) 結合文字

[34] NS39012siba, , http://web.archive.org/web/20000903220115/http://www.itscj.ipsj.or.jp/jp/ns39012.html

また,646での文字合成は,一意に決まらず,例えば,“a”にアキュートアクセントを付けようとすると,“a”の直後にBACKSPACE,そして,アキュートアクセントで表現するだけではなく,CARRIAGE RETURNと複数個のSPACE,そして,アキュートアクセントなど幾つもの表現ができる.この合成の曖昧さは,符号化文字集合の満たすべき基本性質である一意な符号化に反する.

ISO/IEC 6429

[22] 合成図形文字 (composite graphic character) は、 formator function のみを使って得られなければなりません。 editor function をその目的に使ってはなりません。 >>21

[6] 合成図形文字書式機能だけを使用して作る。 編集機能は、この目的に使用してはならない。 (JISX0211-1994 6.4.2)

代替

[8] 重ね打ち型の合成方法はタイプライタの時代からのものです。 しかし、同じ図形記号の表現に BS や CR を自由自在に 組み合わせた無限の方法が存在し得るのですから、 表示以外の処理には向きません。実際この方法を使っているのは タイプライタ端末装置くらいでしょう。

[4] 従ってこの合成方法は現在では推奨されず、 代わりに結合文字を使う方法が採られています。 そこに至るまでにもいろいろな手法が使われました。

ISO/IEC 6429

[31] ISO/IEC 6429 は、 重ね打ちによる文字合成に使う BS などの制御機能と、 また別の文字合成法である制御機能GCC を定めていました。 GCC

[25] 複数の図形文字を組合せて1つの図形記号として表示したいときは、 重ね打ちではなく GCC を使うべきです。 >>24 (参考)


[35] Mule内部コードは内部処理用に最適化された完全独自の文字コード体系でしたが、 その合成文字の表現は、 構造的には GCC に近いものだったようです。

ISO/IEC 4873

[9] ISO/IEC 4873 附属書C (参考) は、 ISO/IEC 646 の定めるような BSCR による合成は、 図形文字レパートリを未定義とするものであって、 送受信者間の合意が必要となるところ、 そのような要件はなかなか満たされないものであるとして、 こうした合成を禁止していました。 >>26

[27] かわりに GCC の利用が認められていました。

[29] なおその前の ECMA-43 第2版は、 GCC には言及がなく、 かわりに BS などによる重ね打ちを認めており、 送受信者間の合意を要件としていました。 第3版の要件云々は、第3版だけ読んでいると理解できませんが、 第2版のこの要件を指していたようです。

[30] ECMA-43 第1版は何も言及していませんでした。

CCITT

[12] CCITT 系の文字コードは、 重ね打ち式文字合成ではなく、 非spacing文字による合成をつかっていました。 非spacing文字

ANSEL

[23] ANSEL非spacing図形文字による合成に対応しており、 重ね打ち式文字合成は使わないとしていました。 非spacing図形文字

ISO/IEC 8859

[13] ISO/IEC 8859 やそれに相当する ECMA文字コードは、 アクセント付きのラテン文字を合成によらず、 合成済の文字に独立した符号位置を割り当てることで表現していました。

[32] 欧米の計算機業界も似たような独自の文字コードをつかっていました。

JIS漢字コード

[28] JISX0208:1997 は禁止しています。

[5] JIS X 0208:1997

8. 合成文字の取扱い この規格で規定する符号化文字集合中のすべての図形文字は, 現在位置の前進動 作を伴う文字 (スペーシング文字) とする。 JIS X 0211 の BACKSPACE (後退) 又は CARRIAGE RETURN (復帰) を使用することによって, 2文字以上の図形文字を同じ文字位置に重ねて表示することができる が, こうした合成文字を用いてはならない。

備考 2区94点の LARGE CIRCLE (大きな丸) “◯” は, これまでの規格との互換性のため削除しな いが, この図形文字を合成のために用いてはならない。

[11] JIS X 0213:2000

8. 合成文字の取扱い この規格で規定する符号化文字集合中のすべての図形文字は, 別に規定するもの を除き, 現在位置の前進動作を伴う文字とする。 JIS X 0211 の BACKSPACE (後退) 又は CARRIAGE RETURN (復帰) を使用することによって, 2文字以上の図形文字を同じ文字位置に重ねて表示することができる が, こうした合成文字を用いてはならない。文字合成を実装する場合は, ダイアクリティカルマーク (合 成可能) は, 現在位置の前進を伴わない文字として用いてもよい。

備考 1面2区94点の LARGE CIRCLE (大きな丸) “◯” は, 現在位置の前進を伴う文字であり, 文 字合成を実装する場合に, 現在位置の前進を伴わない文字として用いてはならない。

LARGE CIRCLE, JIS X 0213の結合文字

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

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

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

Unicode

[3] UnicodeISO/IEC 8859 の系統の合成済の文字を持ちつつ、 後置の結合文字を使う方式を採用しています。 結合文字

メモ

[36] ISO-IR 68APL 用の94集合で、ビット組合せの組合せを規定していますが、 ただ並べるだけでいいのか、順序はどうなのか、説明がないのでよくわかりません。