* Unicode 以前の文字コード

[34] 
[[欧米]]の計算機業界は[[エチオピア]]の言語に対応したシステムを販売してこなかったようで、
国家の標準規格もなく、[[アジア]]の多くの地域と同様に互換性のない雑多な実装が乱立していたらしい。

[35] 
ただし[[エチオピア文字]]が他の地域の[[文字]]と異なるのは、
[[8ビット符号]]にフィットする文字数に収まらなかったことで、
他の地域に見られない独特の手法が発展することになった。

[36] 
1つは[[フォント依存符号化]]によるもので、それ自体は多くの地域で行われたが、
[[エチオピア文字]]の場合は[[ワープロ]]等の機能によって2つ[[以上]]の[[フォント]]を切り替えることで文字数の制約を解決している。

;; [126] こうした組合せ手法は、他に[[チベット文字]]の事例があります。
[SEE[ [[チベット文字の文字コード]] ]]

[37] 
1つは [[ASCII]] の[[翻字]]を通信に用いる手法で、それ自体はやはり多くの地域で行われたが、
[[エチオピア]]では [[HTML要素]]の拡張として 
[[Webブラウザー]]に実装された事例がある。
[SEE[ [[SERA]] ]]

[38] 
1つは[[日本]]の[[漢字コード]]の構造の流用で、
[[日本]]の国立研究所の協力で[[日本]]の技術と整合的な方法で[[エチオピア文字]]が利用できる環境が作られた。
[[8ビット符号]]で収まらない文字数があるなら[[2バイト符号]]でとなるのは当然発想されるべきで、
他の地域でほぼ見られないのは意外なことだが、やはり技術的・経済的な障壁があるのだろう。
実際[[エチオピア]]でも[[日本]]技術のシステムが普及したとは言い難い。

;; [39] 
[[8ビット符号]]の[[フォント依存符号化]]の方法なら、
英語圏の[[OS]]や[[ワープロ]]の[[フォント]]を差し替えるだけでそのまま使えるし、
入力も英語[[鍵盤]]と独自文字の対応関係を覚えるだけで済んで専用の[[入力システム]]が要らない。

[FIG(short list)[ [9] [[エチオピア文字]]の[[文字コード]]

- [[Mule]] [CODE[lc-ethio]] [SEE[ [[Fp]] ]]
- [[Mule]] [CODE[ethiopic]] [SEE[ [[Fp]] ]]
- [[Haddis]]
- [[SERA]]
- [[JISエチオピア文字]]
- [[junet]]
]FIG]

[8] 
[TIME[2022-11-07T06:34:45.200Z]]
<ftp://ftp.geez.org/pub/>

- [21] [CITE[The LibEth Project Homepage]], [TIME[2024-10-06T06:02:44.000Z]], [TIME[2000-08-17T22:16:56.624Z]] <https://web.archive.org/web/20000817221639/http://libeth.netpedia.net/>
--
[20] 
[CITE[LibEth and LiveGe'ez Parameter Values for Ethiopic Encoding Systems]], [TIME[2024-10-06T06:02:20.000Z]], [TIME[2000-08-24T11:04:49.485Z]] <https://web.archive.org/web/20000824103803/http://libeth.netpedia.net/CharacterSets.html>


-[18] [CITE[The LiveGe'ez Remote Processing Protocol]], [TIME[2024-10-06T05:40:44.000Z]], [TIME[2000-08-24T10:43:12.868Z]] <https://web.archive.org/web/20000824103755/http://libeth.netpedia.net/LiveGeez.html>
-[22] [CITE[About Zobel/LiveGe'ez]], [TIME[2024-10-06T06:10:19.000Z]], [TIME[2000-08-19T05:54:24.037Z]] <https://web.archive.org/web/20000819054924/http://libeth.netpedia.net/Zobel/>
- [23] [CITE[Web Publishing With Zobel]], [TIME[2024-10-06T06:12:58.000Z]], [TIME[2000-09-14T18:42:39.378Z]] <https://web.archive.org/web/20000914184123/http://libeth.netpedia.net/Zobel/Tutorial.html>
-- [24] 
[CITE[Helo World Links Example]], [TIME[2024-10-06T06:14:21.000Z]], [TIME[2000-10-05T09:59:24.204Z]] <https://web.archive.org/web/20001005095802/http://www.ethiopiaonline.net/Z.pl?file=http://libeth.netpedia.net/Zobel/HelloWorldLinks.html>

* Unicode


[17] [CITE[The Ethiopic Unicode Resource Page]], [TIME[2024-10-06T05:37:04.000Z]], [TIME[2000-08-16T23:25:23.932Z]] <https://web.archive.org/web/20000816232335/http://www.abyssiniacybergateway.net/fidel/unicode/>

** Unicode エチオピア文字の成立

*** DIS 10646

[41] 
[[2nd DP ISO 10646]] では、 33 × 8 の組み合わせの各[[音節]]を符号化していた。
ただし当時の [[ISO/IEC 10646]] の符号構造は[[94文字集合]]を基礎単位にしていたので、
[[ビット組合せ]]としては不連続になっていた。
[SRC[>>40]]

*** Unicode 初期案

[42] 
[TIME[1990-09-27]]版 [[Unicode]] 案は、 >>41 を参照しつつ独自に定めていた。
33 × 8 の組合せの各[[音節]]を基本に、
その他を配置していた。
[SRC[>>40]]

[43] 
Ethiopian ブロックは [SRC[>>40]]:

	U+0700-0807:  	Basic Ge'ez syllabary
	U+0808-081B:  	Numbers
	U+081C-081F:  	Punctuation

[44] 
Extended Ethiopian ブロックは [SRC[>>40]]:

	U+0820-082F:  	Variant letters
	U+0830-0832:  	Additional punctuation
	U+0833-083F:  	Diacritical marks
	U+0840-089E:  	Additional letters
	U+089F-08FF:  	Currently unassigned


[REFS[

- [40] 
[TIME[1990-09-27]],
[TIME[1990-10-09]],
[TIME[2009-02-13T23:41:27.000Z]], [TIME[2025-08-28T11:05:12.946Z]] <https://www.unicode.org/L2/Historical/Unicode-Pre1.0-Draft-Sept27-1990.txt#:~:text=Ethiopian>

]REFS]

*** Unicode と統合された ISO/IEC 10646

[46] 
[TIME[西暦1991(平成3)年10月][1991-10]]の
[[Unicode 1.0.0]] 第1巻の本体では[[エチオピア文字]]は完全に削除されている。

[59] 
ただし [[Unicode 1.0.0]] 第1巻の附属書Eで Proposed Scripts として[[エチオピア文字]]の記述があり、
[[符号表]]や[[符号位置]]の記載こそないものの、従来案とほぼ同じ本文が掲載されている。
[SRC[>>58]]

;; [60] そこまで記載してなぜ Proposed に留まっているのかが謎だが、
何の説明もない。

[45] 
[TIME[西暦1991(平成3)年12月][1991-12]]の
[[ISO/IEC DIS 10646-1.2:1992]]
では[[エチオピア文字]]は完全に削除されている。

[REFS[

- [58] 
[CITE@ja[appE.pdf]], [TIME[2012-11-20T00:31:34.000Z]], [TIME[2025-08-28T15:25:56.628Z]] <https://www.unicode.org/versions/Unicode1.0.0/appE.pdf#page=1>

]REFS]

*** 音素符号化案

[48] 
[[UTC]] で[TIME[1991-02-26]]に提案され、
[TIME[1992-10-30]],
[TIME[1993-01-08]]に改定されたという案に由来するという[TIME[1995-01-28]]付けメール収録案。
[SRC[>>47]]

;; [50] 
Xerox Amharic implementation が既にその方針を採っていたということか。

[49] 
ここから推測するに、 [[UTC]] に於いて、もしかしたら [[WG2]] に於いても、
従来案の[[音節]]符号化案ではなく、
[[音素]]に分解して符号化するべき ([[インド系文字]]などのように)
という意見が有力になり、
全体の進行を遅らせないために [[ISO/IEC 10646]] の初版から削除することになったのだろう。

[56] 
>>55 は[TIME[1992-11-03]]付けで発行され[TIME[1992-11-25]]に改定されたといい、
[[著作権表記]]が[TIME[1998]]の [[UTR #1]] に収録された[[エチオピア文字]]案。
内容はおおむね >>47 と同じであるが、
こちらがやや古い時点の案らしい。

[52] 
>>51 は[TIME[1992-02-21]]付けの意見募集で、
添付されていたらしい肝心の[[符号表]]が欠けているが、文中の説明から
[CC[U+1100]] から少なくても [CC[U+1138]] までの領域に[[音素]]が割り当てられていたらしいことがわかる。
[TIME[1992-03-05]],
[TIME[1992-03-06]]の [[UTC]]
で議論されるとのこと。

[57] >>47, >>55 は [CC[U+1200]] からの領域を使っている。 >>51 の誤りでないとすれば、
平成4年年始時点ではまだ [CC[U+1100]] からの領域を使っており、
平成4年の秋には [CC[U+1200]] からに変わっていたということか。

[REFS[

- [55] 
[CITE[Unicode Technical Report Number 1]], [TIME[2001-02-23T02:41:08.000Z]], [TIME[2025-08-28T15:15:17.402Z]] <https://www.unicode.org/reports/tr1.html#:~:text=Proposal for Ethiopian Encoding>

[FIG(quote)[
[FIGCAPTION[
[47] 
[TIME[1995-01-28]],
[TIME[2015-05-11T21:11:42.000Z]], [TIME[2025-08-28T14:54:01.457Z]] <http://abyssiniagateway.net/utc/becker1.txt>
]FIGCAPTION]

>
[PRE[
* The Ethiopian proposal was written by Joe Becker.
Ethiopian       U+1200	U+125F
]PRE]

>
[PRE[
[SNIP[]] based on UTC/1991-026 On the Extended Ethiopic Alphabet
of February 26, 1991 and its later adjustments by Lloyd Anderson,
unioned with features of the Xerox Amharic implementation by Joe
Becker.  The character names are based on those in DP 10646, which
came from WG2/N459 "Ethiopian character sets" by Michael Mann.
]PRE]

>
[PRE[
Draft October 30, 1992; rev 93/01/08
]PRE]
]FIG]

- [86] 
[CITE[null]], [TIME[2013-07-23T04:32:03.000Z]], [TIME[2025-08-28T16:09:57.962Z]] <http://abyssiniagateway.net/utc/jan/matrix_yonas1.txt>
- [51] 
[CITE[Dr. Lloyd Anderson's Paper]], [TIME[2013-07-23T04:20:50.000Z]], [TIME[2025-08-28T15:08:21.798Z]] <http://abyssiniagateway.net/utc/anderson.html>

]REFS]

*** 音節符号化案



[61] >>53 = >>87 
は[TIME[1993-08]]付けの[[エチオピア人]]グループの提案書であり、
[[Unicode 1.0.0]] 附属書E案と [[UTR #1]] 案に触れつつ、
具体的な[[音節文字]]案を提示している。

[63] >>62 は[TIME[1993-08]]案に基づく[TIME[1995-02-26]]案を[TIME[1995-04-12]]に送付したもの。

[64] 
>>54 は[TIME[1995-10-08]]案。[TIME[1995-01-23]]から始まった作業とある。
>>61 の系統。


[76] なお >>75 は >>54 に付属するが「NOT UPDATED」とあり、
作業途中のある時点の版と思われる。

[116] >>115 は >>75 と同じと思われる。

[90] 
>>89 は作業途中の版。 Mar 26 とだけあり、
[TIME[1995-03-26]]か[TIME[1996-03-26]]か検討を要する。

[72] 
[TIME[1995-12-09]] の
「UTC-95-055A Proposal of Becker et.al.」
という案があったとのこと。非公開。
[SRC[>>71]]
>>63 の系統。
[TIME[1996-04]]の [[WG2]] 会議に提出された [SRC[>>73]]。 

[74] 
>>73 は[TIME[1996-05-28]]案。 >>72 を踏まえた >>64 の改訂版。 

[79] 
>>75 >>78 を比較すると >>72 によると思われる[[符号位置]]の入れ替えがあったことがわかる。

[118] 
>>117 は >>74 と同じと思われる。

[120] 
>>119 は >>74 の表の [[PDF]] 版と思われる。


[91] 
その後[TIME[平成12(2000)年1月][2000-01]]に出版された [[Unicode 3.0]]
には基本部分 (>>80, >>82 を除いた部分) が追加された。


[REFS[

- [71] [CITE[The Ethiopic Unicode Resource Page]], [TIME[2013-07-23T04:33:29.000Z]], [TIME[2025-08-28T15:46:09.707Z]] <http://abyssiniagateway.net/utc/proposal/>
- [85] [CITE[UTC Page]], [TIME[2013-07-23T04:21:22.000Z]], [TIME[2025-08-28T16:07:21.491Z]] <http://abyssiniagateway.net/utc/mail.html>
- [53] [CITE[null]], [TIME[2025-08-28T15:13:27.000Z]], [TIME[2001-01-05T21:26:36.618Z]] <https://web.archive.org/web/20010105212600/http://www.neosoft.com/~ethiosys/esweb3a2.html>
- [87] [CITE[CSES August '93 Paper]], [TIME[2013-07-23T04:21:58.000Z]], [TIME[2025-08-28T16:11:16.383Z]] <http://abyssiniagateway.net/utc/cses/intro.html>
- [62] [CITE[null]], [TIME[2015-05-11T21:12:50.000Z]], [TIME[2025-08-28T15:31:52.631Z]] <http://abyssiniagateway.net/utc/becker2.txt>
- [88] 
[CITE[null]], [TIME[2013-07-23T04:21:34.000Z]], [TIME[2025-08-28T16:13:08.837Z]] <http://abyssiniagateway.net/utc/apr/comm_becker2.txt>
- [54] 
[CITE[A Character Unified Proposal For Ethiopian Script]], [TIME[2013-07-23T04:44:31.000Z]], [TIME[2025-08-28T15:34:56.195Z]] <http://abyssiniagateway.net/utc/proposal/old/index.html>
-- [65] [CITE[null]], [TIME[2013-07-23T04:45:02.000Z]], [TIME[2025-08-28T15:37:37.456Z]] <http://abyssiniagateway.net/utc/proposal/old/variants.html>
-- [67] 
[CITE[null]], [TIME[2013-07-23T04:44:59.000Z]], [TIME[2025-08-28T15:39:41.131Z]] <http://abyssiniagateway.net/utc/proposal/old/uncoded.html>
-- [77] 
[CITE[CSES Appendix A Revised]], [TIME[2013-07-23T04:44:16.000Z]], [TIME[2025-08-28T15:56:33.754Z]] <http://abyssiniagateway.net/utc/proposal/old/AppendixA.html>
-- [75] 
[CITE[null]], [TIME[2013-07-23T04:44:18.000Z]], [TIME[2025-08-28T15:54:14.530Z]] <http://abyssiniagateway.net/utc/proposal/old/Proposal.txt>
- [115] 
<ftp://ftp.geez.org/pub/info/Proposal.txt>
- [73] 
[CITE[A Character Unified Proposal For Ethiopian Script]], [TIME[2013-07-23T04:38:47.000Z]], [TIME[2025-08-28T15:48:09.731Z]] <http://abyssiniagateway.net/utc/proposal/new/index.html>
-- [78] [CITE[Appendix A]], [TIME[2013-07-23T04:38:35.000Z]], [TIME[2025-08-28T15:56:50.478Z]] <http://abyssiniagateway.net/utc/proposal/new/AppendixA.html>
-- [84] 
[CITE[Ethiopic Glyphs Variants]], [TIME[2013-07-23T04:39:10.000Z]], [TIME[2025-08-28T16:04:39.046Z]] <http://abyssiniagateway.net/utc/proposal/new/variants.html>
-- [83] 
[CITE[Uncoded Ethiopic Characters]], [TIME[2013-07-23T04:38:51.000Z]], [TIME[2025-08-28T16:04:23.342Z]] <http://abyssiniagateway.net/utc/proposal/new/uncoded.html>
- [117] 
<ftp://ftp.geez.org/pub/info/uni-proposal.txt>
- [119] 
<ftp://ftp.geez.org/pub/info/unicode.pdf>
- [89] [CITE[CSES Appendix A Revised]], [TIME[2013-07-23T04:22:05.000Z]], [TIME[2025-08-28T16:14:27.026Z]] <http://abyssiniagateway.net/utc/cses_ii/AppendixA_new.html>
- [95] 
<ftp://ftp.geez.org/pub/libeth/libeth-0.33.1.tar.gz>
-- [96] [CODE[libeth-0.33\include\fidel.h]], [TIME[1999-03-25]]


]REFS]

*** 最初の追加からの除外分

[98] >>64 の[TIME[1995-10-08]]案において、

[66] >>65 には他の文字の[[異体字]]の一覧と画像がある。

[68] >>67 には未追加文字の一覧と画像がある。

[69] そのうち[[欧文]]にもある[[句読点]]については、
[[エチオピア文字]]用の書体差の需要があるとして、
[[PUA]] [ [CC[U+E300]], [CC[U+FDFF]] ] 
を使うのが良いと述べ、
[ [CC[U+FDFC]], [CC[U+FDFF]] ]
の文字画像を示している。 [SRC[>>67]]

;; [70] この [[PUA]] の範囲は、
[[Unicode 1.0]] 時代の [[PUA]] の範囲 [ [CC[U+E'''8'''00]], [CC[U+FDFF]] ] 
に起因する誤り。

-*-*-


[100] >>74 の[TIME[1996-05-28]]案において、

[80] 
>>78 には

>
[PRE[
@ Unassigned ** Addition to UTC-95-055A **
]PRE]

から始まる [CC[U+1380]] からの領域があり、 >>75 にも >>72 にもなかった新規追加分かと思われる。

[81] 
この領域は [[Unicode 3.0]] には反映されず、その後の追加で対応されているが、
このときの[[符号位置]]とは異なる。


[82] 
>>78 には 

>
[PRE[
@ Private ** Addition to UTC-95-055A **


FDF0 ETHIOPIC PAGE ORNAMENT                   (\~X)
FDF1 ETHIOPIC ICON ETHIOPIA-ERITREA           (\~e) 
FDF2 ETHIOPIC ICON INVERTED ETHIOPIA-ERITREA  (\~E)
FDF3 ETHIOPIC ICON AFRICA                     (\~a)
FDF4 ETHIOPIC ICON INVERTED AFRICA            (\~A)
FDF5 ETHIOPIC SYLLABLE WWA   (wWe) 
FDF6 ETHIOPIC SYLLABLE WWI   (wWi) 
FDF7 ETHIOPIC SYLLABLE WWAA  (wWa) 
FDF8 ETHIOPIC SYLLABLE WWEE  (wWE) 
FDF9 ETHIOPIC SYLLABLE WWE   (wW)
FDFA ETHIOPIC NON-SPACING GEMINATION MARK  ('__&&'&&__)
        = tebeq /  
        x (spacing diaeresis -> 00A8)
        x (non-spacing diaeresis -> 0308)
FDFB ETHIOPIC SARCASM MARK  (`!)
        = temhert slaq /  
        x (inverted exclamation mark -> 00A1)
FDFC ETHIOPIC STYLIZED DOT  (.)
        = neteb / netbi
        = (period -> 00A8)
FDFD ETHIOPIC STYLIZED LEFT GUILLEMETS  (<<)
        =  kagn timret teqes /
        = (left guillemet -> 00AB)
FDFE ETHIOPIC STYLIZED RIGHT GUILLEMETS (>>)
        =  gra timret teqes /
        = (right guillemet -> 00BA)
FDFF ETHIOPIC STYLIZED QUESTION MARK    (?)
        = teyaqay melket / 
        = (question mark -> 003F)
]PRE]

と [[PUA]] への割当もあって、 >>69 より更に拡充されている。


[108] 
[TIME[1998-09-11]] の [[WG2]] N1846 は、[[符号位置]]は未定としているが、
順序はおおむね >>80 を踏襲していると思われる [[Michael Everson]] の追加案。



[REFS[

- [106] [CITE@ja[Netscape: Proposal to encode Ethiopic Extensions in the BMP of ISO/IEC 10646 - n1846.pdf]], [TIME[1998-09-14T04:06:26.000Z]], [TIME[2025-08-29T09:50:20.758Z]] <https://www.unicode.org/wg2/docs/n1846.pdf>
-- [107] [CITE@ja[Ethiopic Additions.qxp - ethiopic-extensions.pdf]], [TIME[2002-09-11T23:00:00.000Z]], [TIME[2025-08-29T09:50:37.069Z]] <https://www.evertype.com/standards/iso10646/pdf/ethiopic-extensions.pdf>

]REFS]


-*-*-

[97] 
[CITE[libeth]] の[TIME[1999-03-25]]付ファイルに次のような記述がある
[SRC[>>96]]。

>
[PRE[
/* defined extensions */
#define MYA   0x1358
#define RYA   (MYA + 1)
#define FYA   (RYA + 1)

/* define punctuation addresses */
#define SPACE         0x1360
#define WORDSPACE     0x1361
#define FULLSTOP      0x1362
#define COMMA         0x1363
#define SEMICOLON     0x1364
#define COLON         0x1365
#define PREFACECOLON  0x1366
#define SOSTNETEB     0x1367
#define PARAGRAPH     0x1368
#define SOFTSADIS     0x1360  /* I'm putting this at SPACE for now which
                                 I think creates no problems              */

/* define number addresses */
#define ONE           0x1369
#define TEN           ONE + 9
#define HUNDRED       TEN + 9
#define TENTHOUSAND   HUNDRED + 1


/* undefined extensions */
#define NUM_EXTENDED   64
#define EXTLAST  0x13bf       /* 5,055 */
#define QYAE (TENTHOUSAND + 4)   /*`qe */
#define KYAE  (QYAE + ROW + ROW) /*`ke */
#define XYAE  (KYAE + ROW + ROW) /* Xe */
#define GYAE  (XYAE + ROW + ROW) /*`ge */
#define MWAE  (QYAE + ROW)
#define BWAE  (MWAE + 1)
#define GYWAE (BWAE + 1)
#define FWAE (GYWAE + 1)
#define PWAE  (FWAE + 1)
#define CCAE  (GYAE + ROW + ROW)
#define SSAE  (CCAE + ROW + ROW)
#define CCHAE (SSAE + ROW + ROW)
#define ZZAE (CCHAE + ROW + ROW)

/* Private Use Additions */
#define PRIVATE_USE_BEGIN 0xe300
#define PRIVATE_USE_END   0xfdff
#define NUM_SPECIAL       16
/* define glyph codes */
#define ORNAMENT          (PRIVATE_USE_END - 15)
#define FIDELLAND         (PRIVATE_USE_END - 14)
#define INVFIDELLAND      (PRIVATE_USE_END - 13)
#define AFRICA            (PRIVATE_USE_END - 12)
#define INVAFRICA         (PRIVATE_USE_END - 11)
/* define letter */
#define WWAE              (PRIVATE_USE_END - 10)  /* wWe */
/* define punctation */
#define GEMINATION        (PRIVATE_USE_END - 5)   /* stylized 0x0308    */
#define TEMHERTESLAQ      (PRIVATE_USE_END - 4)   /* stylized           */
#define NETEB             (PRIVATE_USE_END - 3)   /* stylized 0x002e  . */
#define LEFTQUOTE         (PRIVATE_USE_END - 2)   /* stylized 0x00ab << */
#define RIGHTQUOTE        (PRIVATE_USE_END - 1)   /* stylized 0x00bb >> */
#define EQUESTIONMARK      PRIVATE_USE_END        /* stylized 0x003f  ? */
]PRE]

[99] 
これらの定義の undefined extension 以下が >>80 >>82 に相当する。

[101] 
[CITE[libeth]] はこれらの追加部分を含む [[Unicode]]
と既存の各種[[文字コード]]との変換を実装している。
[CITE[libeth]] のこれより古い版は見当たらず、詳細は不明だが、
[[Unicodeエチオピア文字]]の提案と同時期に開発されていたとみられ、
[[Unicodeエチオピア文字]]の提案にも既存フォントにどの字形があるとの記述が一部含まれている。


[103] 
[CITE[libeth]] 0.34 の[TIME[2001-07-10]]時点の [CODE[fidel.h]] では
[SRC[>>102]]:

>
[PRE[
/* define punctuation addresses */
#define SPACE         0x1360
#define WORDSPACE     0x1361
#define FULLSTOP      0x1362
#define COMMA         0x1363
#define SEMICOLON     0x1364
#define COLON         0x1365
#define PREFACECOLON  0x1366
#define SOSTNETEB     0x1367
#define PARAGRAPH     0x1368
#define SOFTSADIS     0x1360  /* I'm putting this at SPACE for now which
                                 I think creates no problems              */

/* define number addresses */
#define ONE           0x1369
#define TEN           ONE + 9
#define HUNDRED       TEN + 9
#define TENTHOUSAND   HUNDRED + 1


/* undefined extensions */
#define NUM_EXTENDED   64
#define EXTLAST  0x13bf       /* 5,055 */
#define QYAE (TENTHOUSAND + 4)   /*`qe */
#define KYAE  (QYAE + ROW + ROW) /*`ke */
#define XYAE  (KYAE + ROW + ROW) /* Xe */
#define GYAE  (XYAE + ROW + ROW) /*`ge */
#define MWAE  (QYAE + ROW)
#define BWAE  (MWAE + 1)
#define GYWAE (BWAE + 1)
#define FWAE (GYWAE + 1)
#define PWAE  (FWAE + 1)
#define CCAE  (GYAE + ROW + ROW)
#define SSAE  (CCAE + ROW + ROW)
#define CCHAE (SSAE + ROW + ROW)
#define ZZAE (CCHAE + ROW + ROW)

/* Private Use Additions */
#define PRIVATE_USE_BEGIN 0xe300    /* Change to 0xe000 later */
#define PRIVATE_USE_END   0xfdff    /* Change to 0xf8ff later */
#define NUM_SPECIAL       16
/* define glyph codes */
#define ORNAMENT          (PRIVATE_USE_END - 15)
#define FIDELLAND         (PRIVATE_USE_END - 14)
#define INVFIDELLAND      (PRIVATE_USE_END - 13)
#define AFRICA            (PRIVATE_USE_END - 12)
#define INVAFRICA         (PRIVATE_USE_END - 11)
/* define letter */
#define WWAE              (PRIVATE_USE_END - 10)  /* wWe */
/* define punctation */
#define GEMINATION        (PRIVATE_USE_END - 5)   /* stylized 0x0308    */
#define TEMHERTESLAQ      (PRIVATE_USE_END - 4)   /* stylized 0x00a1  ¡ */
#define NETEB             (PRIVATE_USE_END - 3)   /* stylized 0x002e  . */
#define LEFTQUOTE         (PRIVATE_USE_END - 2)   /* stylized 0x00ab << */
#define RIGHTQUOTE        (PRIVATE_USE_END - 1)   /* stylized 0x00bb >> */
#define EQUESTIONMARK      PRIVATE_USE_END        /* stylized 0x003f  ? */
]PRE]

]FIG]

[104] 
古い版と微妙に変更されている。特に注目されるのは [[PUA]] の範囲の注釈。
これに関係するのであろうが、 [CODE[ROADMAP]] というファイルに

>
[PRE[
libeth-0.34b0.tar.gz    System modules are overhauled for Extended Ethiopic
                        as per n1846 and the current private use range is
                        relocated to the Unicode 1.1+ private use range.
                        Rework set/get form number for Extended Ethiopic to
                        be locale aware.
]PRE]

とある。 [[PUA]] が relocate されたとあるが、注釈にメモしただけで実施まではされなかった?

[109] 
N1846 (>>108) に合わせて変更されたように書かれているので、
これらより前にはまた違った配置になっていたものか。

[105] なおこのファイルは古い版の 0.33.1 の方にも[TIME[1999-03-25]]付で入っているから、
0.33 と 0.34 は並行してメンテナンスされていたのだろう。

[113] 
これら関連ソフトウェアと [[Unicode]] 追加案の開発の詳細な過程については、更に精密な考究が必要である。


[123] 
[CITE[UniGeez]] のソースコードにも同様の定義がある。 [SRC[>>122]]

>
[PRE[
          b_qe  = 0x1380,  
          b_qu  = 0x1381,  
          b_qi  = 0x1382,  
          b_qa  = 0x1383,  
          b_qE  = 0x1384,  
          b_q   = 0x1385,  
          b_qo  = 0x1386,
//reserved        0x1387,
          mWe   = 0x1388,
          bWe   = 0x1389,
          GWe   = 0x138A,
          fWe   = 0x138B,
          pWe   = 0x138C,
//reserved        0x138D,
//reserved        0x138E,
//reserved        0x138F,
          b_ke  = 0x1390,  
          b_ku  = 0x1391,  
          b_ki  = 0x1392,  
          b_ka  = 0x1393,  
          b_kE  = 0x1394,  
          b_k   = 0x1395,  
          b_ko  = 0x1396,
//reserved        0x1397,
          mWi   = 0x1398,
          bWi   = 0x1399,
          GWi   = 0x139A,
          fWi   = 0x139B,
          pWi   = 0x139C,
//reserved        0x139D,
//reserved        0x139E,
//reserved        0x139F,
          Xe    = 0x13A0,  
          Xu    = 0x13A1,  
          Xi    = 0x13A2,  
          Xa    = 0x13A3,  
          XE    = 0x13A4,  
          X     = 0x13A5,  
          Xo    = 0x13A6,
//reserved        0x13A7,
          mWE   = 0x13A8,
          bWE   = 0x13A9,
          GWE   = 0x13AA,
          fWE   = 0x13AB,
          pWE   = 0x13AC,
//reserved        0x13AD,
//reserved        0x13AE,
//reserved        0x13AF,
          b_ge  = 0x13B0,  
          b_gu  = 0x13B1,  
          b_gi  = 0x13B2,  
          b_ga  = 0x13B3,  
          b_gE  = 0x13B4,  
          b_g   = 0x13B5,  
          b_go  = 0x13B6,
//reserved        0x13B7,
          mWu   = 0x13B8,
          bWu   = 0x13B9,
          GWu   = 0x13BA,
          fWu   = 0x13BB,
          pWu   = 0x13BC,
//reserved        0x13BD,
//reserved        0x13BE,
//reserved        0x13BF,
          b_le  = 0x13C0,  
          b_lu  = 0x13C1,  
          b_li  = 0x13C2,  
          b_la  = 0x13C3,  
          b_lE  = 0x13C4,  
          b_l   = 0x13C5,  
          b_lo  = 0x13C6,
//reserved        0x13C7,
          b_me  = 0x13C8,
          b_mu  = 0x13C9,
          b_mi  = 0x13CA,
          b_ma  = 0x13CB,
          b_mE  = 0x13CC,
          b_m   = 0x13CD,
          b_mo  = 0x13CE,
//reserved        0x13CF,
          b_re  = 0x13D0,  
          b_ru  = 0x13D1,  
          b_ri  = 0x13D2,  
          b_ra  = 0x13D3,  
          b_rE  = 0x13D4,  
          b_r   = 0x13D5,  
          b_ro  = 0x13D6,
//reserved        0x13D7,
          b_ne  = 0x13D8,
          b_nu  = 0x13D9,
          b_ni  = 0x13DA,
          b_na  = 0x13DB,
          b_nE  = 0x13DC,
          b_n   = 0x13DD,
          b_no  = 0x13DE,
//reserved        0x13DF,
		LLESSER = 0xFDFD,
	   GGREATER = 0xFEFE
]PRE]


[REFS[

- >>31 
-- [102] [CODE[libeth-0.34\include\fidel.h,v]],
2001.07.10.15.25.11
- [121] 
<ftp://ftp.geez.org/pub/UniGeez/UniGeez3.002.zip>
-- [122] 
[CODE[UniGeez with Arabic ver 3.0.0.2\dll\amharic.h]], [TIME[2001-02-03]]

]REFS]

[125] 
>>124 の変換表は、

>
[PRE[
# Unicode mapping table for ISO 8859-1 fonts with ISO 10646 Ethiopic
# [use: unicode_start unigoha-16.psf ethiopic.uni]
]PRE]

という注釈があり、 [ [CC[0x000]], [C[0x1FF]] ]
を使った[[フォント符号化]]と [[Unicode]] の対応関係を示しているものですが、

>
[PRE[
#
#  Private Use Maps will have to be reset later
#
0x1FA   U+FFFA
0x1FB   U+FFFB
0x1FC   U+FFFC
# 0x1FD U+FFFD
0x1FE   U+FFFE
0x1FF   U+FFFF
]PRE]

とあります。

[REFS[

- [124] 
<ftp://ftp.geez.org/pub/fonts/linux/ethiopic.uni>, [TIME[2005-03-11]]

]REFS]


*** 第二次追加分


- [111] 
[CITE@ja[Revision of the N1846 Proposal to add Extended Ethiopic to the BMP of the UCS - 04143-n2747-ethiopic-ext.pdf]], [TIME[2004-04-27T22:08:01.000Z]], [TIME[2025-08-29T09:55:31.136Z]] <https://www.unicode.org/L2/L2004/04143-n2747-ethiopic-ext.pdf>
-- [TIME[2004-04-23]]
- [110] [CITE@ja[n2814-ethiopic-supp - 04265-n2814r-ethiopic-supp.pdf]], [TIME[2005-07-19T22:30:27.000Z]], [TIME[2025-08-29T09:54:41.740Z]] <https://www.unicode.org/L2/L2004/04265-n2814r-ethiopic-supp.pdf>
-- [TIME[2004-06-18]]

[112] 
>>108 はその後 >>111、 >>110 と大きな変更を加えられた上で、 [[Unicode]] に追加された。


* EMUFI

[16] 
[DFN[EMUFI]] ([DFN[Ethiopic Manuscript Unicode Font Initiative]])。
[[Unicode]]
に不足分を追加した[[フォント]]のプロジェクト。


- [19] [CITE@en-US[Ethiopic Manuscript Unicode Font Initiative | Ethiopic Manuscript Unicode Font Initiative]], [TIME[2021-09-11T12:11:57.000Z]], [TIME[2025-08-27T08:43:01.867Z]] <https://emufi.geez.org/>
- [25] [CITE@en[GitHub - geezorg/emufi: Ethiopic Manuscript Unicode Font Initiative]], [TIME[2025-08-27T08:43:34.000Z]] <https://github.com/geezorg/emufi>


** PUA

[11] >>69 >>82

[114] >>25 >>10


** EVD

[6] [CITE@en[GitHub - geezorg/evd: Ethiopic Variation Database]], [TIME[2025-08-27T08:24:02.000Z]] <https://github.com/geezorg/evd>

[7] >>6 [DFN[Ethiopic Variation Database]] ([DFN[EVD]])。
[[エチオピア文字]]の[[異体字]]を [[VS]] を使って表現するもの。

[10] >>6 には3つのファイルがある。そのうちの2つは[[エチオピア文字]]に [[IVS]]
用 [[VS]] を付けたもの。1つは [[PUA]] に [[VS]] を付けたもの。

[12] >>10 の前者のうちの1つは [[PUA]] の[[グリフ名]]が示されており、
>>10 の後者も同様。つまり [[PUA]] の一連のグリフのうち、
[[エチオピア文字]]や [[PUA]] の他のグリフの異体に当たるものを
[[VS]] として表すもの。

[13] なお、このような [[VS]] の用法は [[Unicode]] の定義に沿わない独自のもの。
[SEE[ [[IVS]] ]]

** ELD

[14] 
[CITE@en[GitHub - geezorg/eld]], [TIME[2025-08-27T08:34:52.000Z]] <https://github.com/geezorg/eld>

[15] >>14 [DFN[Ethiopic Ligation Database]] ([DFN[ELD]])。
[[エチオピア文字]]の[[合字]]を [CN[ZWJ]]
を使って
[[OpenType Feature File]]
形式で一覧している。
また、
[[Microsoft Word]]
ファイルで字形例と出典を示している。




* フォント

- [27] [CITE@en[GitHub - geezorg/legally-free-geez-fonts: Legally Free Geʾez Fonts]], [TIME[2024-10-14T09:02:01.000Z]] <https://github.com/geezorg/legally-free-geez-fonts>
- [28] [CITE[A Gallery of Ethiopic Fonts]], [TIME[2024-02-28T23:13:12.000Z]], [TIME[2024-10-14T09:02:17.879Z]] <https://fonts.geez.org/>
- [3] [CITE@en[GitHub - geezorg/fonts: Archive of GFF Fonts]], [TIME[2025-08-27T08:06:23.000Z]] <https://github.com/geezorg/fonts>


* 識別子

[30] 
[[The LiveGe'ez Remote Processing Protocol]]
が各種[[文字コードの識別子]]を規定している。

- [26] [CITE[The LiveGe'ez Remote Processing Protocol]], [TIME[2002-04-01T20:56:53.000Z]], [TIME[2025-08-27T09:00:53.563Z]] <https://libeth.sourceforge.net/LiveGeez.html#AppA>
- [29] [CITE[LibEth and LiveGe'ez Parameter Values for Ethiopic Encoding Systems]], [TIME[2002-04-01T21:00:31.000Z]], [TIME[2025-08-27T09:01:09.388Z]] <https://libeth.sourceforge.net/CharacterSets.html>
- [92] 
<ftp://ftp.geez.org/pub/libeth/PerlXS/old/Zobel-0.04.tar.gz>
-- [93] 
[CODE[LiveGeez\HTML.pm]]

[33] >>31 がこれを実装。


[94] >>93

>
[PRE[
      <option value=FirstTime>Choose A Font!</option>
      <option value=Addis>Addis One</option> 
      <option value=Addis98>Addis98</option> 
      <option value=AddisWp>AddisWP</option> 
      <option value=Agaw>Agaw</option>
      <option value=AGF-Dawit>AGF - Dawit</option>
      <option value=AGF-Zemen>AGF - Zemen</option>
      <option value=AGF-Ejji-Tsihuf>AGF - Ejji Tsihuf</option>
      <option value=AGF-Rejim>AGF - Rejim</option>
      <option value=AGF-Yigezu-Bisrat>AGF - Yigezu Bisrat</option>
      <option value=ALXethiopian>ALXethiopian</option>
      <option value=AmharicKechin>Amharic  Kechin</option>
      <option value=AmharicYigezuBisrat>Amharic Yigezu Bisrat</option>
      <option value=AmharicGazetta>Amharic Gazetta</option>
      <option value=Amharic>Amharic 1</option>
      <option value=AmharicBook>Amharic Book 1</option>
      <option value=Amharic_Alt>Amharic_Alt</option>
      <option value=Amharisch>Amharisch</option>
      <option value=Brana>Brana I</option>
      <option value=Amharic-A>Amharic-A</option>
      <option value=AmharQ>AmharQ</option>
      <option value=ET-NCI>ET-NCI </option>
      <option value=ET-NEBAR>ET-NEBAR</option>
      <option value=ET-Saba>ET-Saba</option>
      <option value=ET-SAMI>ET-SAMI</option>
      <option value=Ethiopia>Ethiopia Primary</option>
      <option value=EthiopiaSlanted>Ethiopia Slanted Primary</option>
      <option value=EthiopiaAnsiP>EthiopiaAnsiP</option>
      <option value=EthioSoft>EthioSoft</option>
      <option value=Ethiopic>ETHIOPIC</option>
      <option value=Fidel>FIDEL~`SOFTWARE</option>
      <option value=Geez>Geez</option>
      <option value=GeezA>GeezA</option>
      <option value=Geez-1>Ge'ez-1</option>
      <option value=Geez-2>Ge'ez-2</option>
      <option value=Geez-3>Ge'ez-3</option>
      <option value=GeezAddis>GeezAddis</option>
      <option value=geezBasic>geezBasic</option>
      <option value=GeezBausi>GeezBausi</option>
      <option value=Geezigna>Geezigna</option>
      <option value=geezLong>geezLong</option>
      <option value=GeezNewA>GeezNewA</option>
      <option value=GeezDemo>Geez Demo</option>
      <option value=GeezNet>GeezNet</option>
      <option value=GeezSindeA>GeezSindeA</option>
      <option value=GeezThin>GeezThin</option>
      <option value=GeezTimesNew>GeezTimeNew</option>
      <option value=GeezType>GeezType</option>
      <option value=GeezEditAmharicP>Ge&#232;zEdit Amharic P</option>
      <option value=GFZemen>GF Zemen Primary</option>
      <option value=HahuLite>Hahu Lite</option>
      <option value=HahuGothic>Hahu Lite Gothic</option>
      <option value=HahuSerif>Hahu Lite Serif</option>
      <option value=HahuTimes>Hahu Lite Times</option>
      <option value=JIS>JIS</option>
      <option value=JUNET>JUNET</option>
      <option value=TfanusGeez01>TfanusGeez01</option>
      <option value=UTF7>UTF7</option>
      <option value=UTF8>UTF8</option>
      <option value=java>\\uabcd</option>
      <option value=Java.uppercase>\\uABCD</option>
      <option value=clike>\\xabcd</option>
      <option value=Clike.uppercase>\\xABCD</option>
      <option value=VG2-Agazian>VG2 Agazian</option>
      <option value=VG2-Main>VG2 Main</option>
      <option value=VG2-Title>VG2 Title</option>
      <option value=Washra>Washra  Primary</option>
      <option value=Washrasl>Washrasl  Primary</option>
      <option value=Wookianos>Wookianos Primary</option>
      <option value=Yebse>Yebse Primary</option>
]PRE]



* 変換器

- [31] [CITE@en[[[LibEth]] / Code]], [TIME[2025-08-27T08:18:32.000Z]] 
- [1] [CITE@en[refactor to use GeezLib · geezorg/DocxConverter@89243f5 · GitHub]], [TIME[2025-08-27T08:05:20.000Z]] <https://github.com/geezorg/DocxConverter/commit/89243f5c281973cfd861ab95e89f81fd48ec2653>
- [4] [CITE@en[geez-lib/src/main/java/org/geez/convert/fontsystem at master · geezorg/geez-lib · GitHub]], [TIME[2025-08-27T08:08:19.000Z]] <https://github.com/geezorg/geez-lib/tree/master/src/main/java/org/geez/convert/fontsystem>

[2] >>1 元は[[変換器]]込みの [[Java]] 実装。現在は別ライブラリー >>4 に分離され、 [[GUI]] のみ。

[5] >>4 [[変換器]]の [[Java]] 実装。 [[Unicode]] との対応付けは [CITE[ICU]] 
と [[Transform Rule]] による。
それだけで済ませられない部分は [[Java]] の独自実装。

[32] 
>>31 の
[CODE[[[libeth]]/libeth-0.34/systems]]
は >>2 より更に前の世代の実装で、 [[C言語]]。 >>2 より多くの[[文字コード]]に対応している。



* ロケール

[SEE[ [[エチオピア語]] ]]


* 関連

[SEE[ [[エチオピア文字]], [[フォント依存符号化]] ]]


* メモ