-
Notifications
You must be signed in to change notification settings - Fork 4
/
419.txt
842 lines (657 loc) · 28.4 KB
/
419.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
* 仕様書
[REFS[
- [105]
[CITE[[[The Unicode Standard]], Version 13.0 - ch13.pdf]], [TIME[2020-03-09T17:53:44.000Z]], [TIME[2020-12-24T07:34:13.381Z]] <https://www.unicode.org/versions/latest/ch13.pdf#G27804>
- [30] [CITE[[[The Unicode Standard]], Version 13.0 - ch23.pdf]], [TIME[2020-03-09T17:53:52.000Z]], [TIME[2020-12-22T08:47:43.938Z]] <https://www.unicode.org/versions/latest/ch23.pdf#G19053>
- [68]
[CITE[[[The Unicode Standard]], Version 13.0 - ch24.pdf]], [TIME[2020-03-09T17:53:54.000Z]], [TIME[2020-12-23T09:22:15.656Z]] <https://www.unicode.org/versions/latest/ch24.pdf#G11576>
- [17]
<https://www.unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt>
- [18] [CITE@en-us[[[UAX #44]]: Unicode Character Database]], [TIME[2020-03-06T22:23:11.000Z]], [TIME[2020-10-20T12:10:39.430Z]] <https://www.unicode.org/reports/tr44/#StandardizedVariants>
- [86] [CITE@en-us[UAX #44: Unicode Character Database]], [TIME[2020-03-06T22:23:11.000Z]], [TIME[2020-12-23T12:08:32.375Z]] <http://www.unicode.org/reports/tr44/#EmojiVariants>
]REFS]
* 意味
[31]
[[Unicode文字]]は、
いろいろな[[グリフ]]によって[RUBYB[表現][represent]]され得ます。
ときにテキスト処理において[[文字]]を表現するのに使う[[グリフ]]の[[集合]]を制限したり、
変更したりする必要が生じることがあります。
[SRC[>>30]]
[32]
通常それは[[リッチテキスト]]文書で[[フォント]]や[[スタイル]]を選ぶことで示します。
しかし特殊な状況では、
そうした通常の[RUBYB[見た目][appearance]]の範囲との[RUBYB[違い][variation]]を、
[[平文]]で書式付きテキストを交換するのが不可能か不便であるとしても、
同じ[[文書]]に並べて表現する必要があったりもします。
[SRC[>>30]]
[EG[
[33]
例えば[[モンゴル文字]]を使う[[言語]]では、
特定の[RUBYB[テキスト的な目的][textual purpose]]のため「[RUBYB[汎用][generic]]」の[[グリフ]]群の範囲では不適切と考えられるときに、
特定の[RUBYB[異体][variant]]のグリフ群の範囲が必要となる場合があります。
[SRC[>>30]]
]EG]
[34]
そこで[[異体選択子]]は特定の[[文字]]の表現に使う[[グリフ]]の[[集合]]に対して制限を指定する仕組みを提供するのであります。
[SRC[>>30]]
[35]
加えて、
[[異体選択子]]は、
[[CJK漢字]]や[[モンゴル文字]]におけるような、
[RUBYB[本質的][essentially]]に[RUBYB[同じ][same]][RUBYB[[[意味]]][semantics]]を持ちながら[RUBYB[実質的][substantially]]に違った[[グリフ]]の範囲を持った、
[RUBYB[[[異体]]][variant]]を指定する仕組みを提供するのであります。
[SRC[>>30]]
[36]
つまるところ、
[[異体選択子]]は、
[[Unicode]]
が過剰に[RUBYB[[[統合]]][unify]]して
1つの[[文字][Unicode文字]]として扱っているものを、
より細かく区別して扱うための救済措置的に使えるものとなっています。
[37]
[[Unicode文字]]が必ずしも一般に認識される
「[[文字]]」
の範囲と一致しない [SEE[ [[Unicode文字]] ]]
のと同じように、
[[異体選択子]]が扱うものは一般にいう「[[異体字]]」
と必ずしも同じではありません。
-*-*-
[87]
[[異体列]]は、
元の
[[Unicode文字]]の意味的範囲に含まれる[[字形]]のうちの一部分を表す、
という立て付けで規定されています。
元の
[[Unicode文字]]と同じ意味の別の[[文字]]を指すものではありません。
従って元の
[[Unicode文字]]の範囲に含まれないと思われるような、
著しく異なるものが[[異体列]]で表されることはありません。
この設計ゆえに、[[異体選択子]]に未対応だとしても、
[[基底文字]]だけを見て処理できるということになっています。
[88]
そのため、
[[異体]]の区別のためには、
元の[[Unicode文字]]と[[異体列]]との区別では意味がなく、
[[異体列]]と[[異体列]]との区別にしなければいけません。
[EG[
[89]
「令」 [VAR[c]]
について
「明朝体の令」と「楷書体の令」が[[異体選択子]] [VAR[v1]], [VAR[v2]]
で区別されるとするとき、
[VAR[c]] と <[VAR[c]], [VAR[v1]]> や
[VAR[c]] と <[VAR[c]], [VAR[v2]]>
の区別では意味がなく、
<[VAR[c]], [VAR[v1]]>
と
<[VAR[c]], [VAR[v2]]>
で区別しなければなりません。
]EG]
;; [90] かつては、[[異体字]]のために膨大な[[符号空間]]を占用されるのはけしからんから枝番形式にしろ、
という主張をする人達もいたようです。 [[Unicode]] の[[異体選択子]]は、
微小な違いを枝番形式で「節約」することにはなりますが、
微小でない違いは別の [[Unicode文字]]を追加しないといけないのですから、
「節約」にはなりません。
;; [91] [[異体字]]を枝番方式で表せば、枝番部分を無視すれば簡単に曖昧検索できて便利だ、
といわれていました。[[異体選択子]]にもそれは当てはまりますが、
既に異なる[[Unicode文字]]として区別されている (または今後追加される)、
違いの大きな[[異体字]]の同一視もしないといけないので、
検索処理の効率化にはあまり貢献しません。
[92]
[[Unicode文字]] ⊃ [[異体列]]という構造は
[[Unicode]]
のアーキテクチャ的にはそれでいいのでしょうが、
実際の運用を思うと厄介なことも少なくありません。
例えばある文字 [VAR[c]]
の[[符号点]]がほとんどの場合その一般的な字形 [VAR[v1]]
で表示されていて、
たまに使われる異体 [VAR[v2]]
と区別したいとき、
確実に区別するなら <[VAR[c]], [VAR[v1]]>, <[VAR[c]], [VAR[v2]]>
と書き分けなければなりません。
ですが、現実的にほとんどの場合 [VAR[c]] が <[VAR[c]], [VAR[v1]]>
の意味で使われているのです。普通の人が普通の入力方法で作った文書には
[VAR[c]] と書かれているのに、それが通用しなくなるのは困りものです。
* 符号点
[93]
[[異体選択子]]の[[符号点]]は3種類あります。
- [8]
[CODE[U+180B]] [CODE(charname)@en[MONGOLIAN FREE VARIATION SELECTOR ONE]]
([CODE(charname)@en[FVS1]]),
[CODE[U+180C]] [CODE(charname)@en[MONGOLIAN FREE VARIATION SELECTOR TWO]]
([CODE(charname)@en[FVS2]]),
[CODE[U+180D]] [CODE(charname)@en[MONGOLIAN FREE VARIATION SELECTOR THREE]]
([CODE(charname)@en[FVS3]])
-- [95] [[Unicode 3.0]] で導入
-- [96] [[蒙古文字]]専用
-
[26]
[CODE[U+FE00]] [CODE(charname)@en[VS1]] - [CODE[U+FE0F]]
-- [97] [[Unicode 3.2]] で導入
-- [98] [[SVS]], [[EVS]] で使われる
- [94]
[CODE[U+E0100]] - [CODE[U+E01EF]] [CODE(charname)@en[VS256]]
-- [99] [[Unicode 4.0]] で導入
-- [100] [[IVS]] で使われる
[101]
兼用でもいいはずなのに、なぜか [[VS]] の種類ごとに使い分けられています。
[102]
[[Unicode 4.0]] 追加分は[[第14面]]にあって、
[[UTF-8]] でも [[UTF-16]] でも4バイトで表されます
(それ以外の文字は、 [[UTF-8]] で3バイト、 [[UTF-16]] で2バイトです)。
[[Unicode 4.0]] 時点では [[BMP]] に押し込められるだけの空き領域があったはずですが...
[[SIP]] の[[漢字]]の [[IVS]] だと
[[UTF-8]] でも [[UTF-16]] でも1つ8バイトにもなってしまいます。
;; [103]
[[Unicode]] で[[欧米]]以外の文字を使うという時点で、
バイト数的な効率が悪いことはわかりきっているので、
いまさら気にするなということかもしれませんが...
;; [104]
それにしたって、いちばん需要が大きそうな[[漢字]]の [[IVS]]
に使う[[異体選択子]]がいちばんバイト長が大きくなる冷遇ぶりw
[REFS[
- [7] [CODE[Variation_Selector]]
の一覧 <https://chars.suikawiki.org/set/%24unicode%3AVariation_Selector>
]REFS]
* 異体列
[39]
[DFN[[RUBY[異体列][いたいれつ][variation sequence]]]]は、
1つの[[基底文字]]または
[[spacing mark]] ([CODE[[[General_Category]]=[[Mc]]]])
に、
1つの[[異体選択子文字]]を続けたものです。
これを[[基底文字]]または [[spacing mark]]
の[DFN[[RUBY[異体][いたい][variant]]]]といいます。
[SRC[>>30]]
[FIG(railroad)[ [38] [[異体列]]
= |
== [[基底文字]]
== [CODE[Mc]]
= [[異体選択子]]
]FIG]
;; [40]
[[基底文字]]が使われることが多く、
[[spacing mark]]
があまりありません [SRC[>>30]]。
そこで
[CITE[The Unicode Standard]]
は、
簡潔のため[[基底文字]]のみ記述するが
[[spacing mark]]
も同様である
[SRC[>>30]]、
というやや曖昧な規定の方法を採っています。
[107]
[[異体選択子]]は、適用対象の直後に置きます。 [SRC[>>105]]
[110]
[[自由異体選択子]]の古い実装は、
[CODE(charname)@en[ZWJ]]
を併用する時、
[[基底文字]]、 [CODE(charname)@en[ZWJ]], [[自由異体選択子]]の順としていました。
古い [CITE[The Unicode Standard]] でないドキュメントがこの順としていたためだといいます。
[SRC[>>105]]
;; [111]
[CITE[The Unicode Standard]] はこのことにわざわざ言及していますが、
古目の実装がそうしていると書いているだけで、新しい実装がどうするべきか明確にしていません。
[[SVS]] でないものは無視するべきとも書いているので、
新しい実装はこの方法を採るべきではないと暗に示しているのでしょうか。
しかし古い実装がこの方法を使っていて、
この方法を使った文書が現に存在しているのだとすると、
[[後方互換性]]のためこの方法も意図通りに解釈できるべきでしょう。
[51]
[[異体列]]の最初の[[文字]]が、
[[nonspacing combining mark]]
や[[正準分解可能文字]]になることは、ありません。
これは、
[[正規化]]文における[[異体列]]の解釈の問題を防ぐための制限です。
[SRC[>>30]]
-*-*-
[41]
[[異体列]]において[[異体選択子]]は[[基底文字]]または
[[spacing mark]]
の[RUBYB[見た目][appearance]]に影響します。
[SRC[>>30]]
[42]
この見た目の変化は、
後に続く[[文字]]、
とりわけ同じ[[基底文字]]または [[spacing mark]]
に[[適用]]される[[結合文字]]にも[RUBYB[視覚的][visual]]な影響を与えることがあります。
[SRC[>>30]]
[EG[
[43]
[[基底文字]]の[RUBYB[図形][shape]]の変化に合わせて、
[[結合マーク]]の図形や位置も変化するべきです。
[[基底文字]]の[[色]]の変化に合わせて、
[[結合マーク]]の[[色]]も変化するべきです。
[[基底文字]]の [[advance width]]
が変化すれば、
次の [[spacing文字]]の位置も変化します。
[SRC[>>30]]
]EG]
[47]
[[異体列]]には、
[[SVS]],
[[IVS]],
[[EVS]]
の3種類があります。
[SRC[>>30]]
* SVS
[48]
[DFN[[RUBY[標準化済異体列][ひょうじゅんかずみいたいれつ][standardized variation sequence]]]]
([DFN[SVS]])
は、
[[UCD]]
の
[DFN[[CODE[StandardizedVariants.txt]]]] [SRC[>>17]]
で定義されます。
[SRC[>>30]]
[24]
[CODE[StandardizedVariants.txt]]
にはコメントとして
[[SVS]]
をいくつかの種類に分けています [SRC[>>17]]。
それによると:
- [73] Mathematical
- [74] East Asian punctuation positional variants
- [75] Myanmar
- [76] Phags-pa
- [77] Manichaean
- [78] Mongolian
- [79] CJK compatibility ideographs
... があります。 (今後他の種類が増えることもあるでしょう。)
[80]
Manichaean
と
Mongolian
は、
適用される
[[shaping environment]]
が、
[CODE[isolate]],
[CODE[initial]],
[CODE[medial]],
[CODE[final]]
のうち1つ[[以上]]のみに限定されるとあります。 [SRC[>>17]]
[81]
このうち
[CODE[Mongolian]]
だけは、
専用の[[自由異体選択子]]文字を使います。
** 蒙古文字自由異体選択子
[67]
[[蒙古文字]]の[[異体]]は、
[[SVS]]
に分類されていますが、
特別な扱いを受けています。
[[蒙古文字]]用には特別な[[異体選択子]]が3つ用意されています (>>8)
[SRC[>>105]]。
この[[異体選択子]]は[[蒙古文字]]だけに使われています。
[[蒙古文字]]には他の[[異体選択子]]は使われていません。
(この原則が将来にわたって維持されるのかは不明。)
[106]
この[[蒙古文字]]の[DFN[[RUBY[自由異体選択子][じゆういたいせんたくし][free variation selector]]]]は、
機械的に決定できない[[グリフ]]形が必要な時
(例えば[RUBYB[[[外来語]]][foreign word]]を書く時)
に使います。
[SRC[>>105]]
[109]
[[利用者]]は、
[[レンダリング]]システムが自動的に正しい[[グリフ]]を選択できないときのみ、
[[自由異体選択子]]を使う[RUBYB[べき][should]]です。
[SRC[>>105]]
** 数学記号
[82]
次の2件は、
[[Unicode 3.2]]
で定義されたものの、
誤りとわかり
[[SVS]]
から削除された、
と
[CODE[StandardizedVariants.txt]]
にコメントがあります。
[SRC[>>17]]
- [CODE[#2278 FE00; with vertical stroke; # [[NEITHER LESS-THAN NOR GREATER-THAN]]]]
- [CODE[#2279 FE00; with vertical stroke; # [[NEITHER GREATER-THAN NOR LESS-THAN]]]]
** CJK互換漢字SVS
[56]
各[[CJK互換漢字]]用に1つずつ、計1002個の [[SVS]] が定義されています。
[SRC[>>30]]
[57] これは
[[CJK互換漢字]]の[[正規化]]の問題の対策として定義されました。
[[CJK互換漢字]]を相当する[[CJK統合漢字]]と区別したい時がありますが、
[[CJK互換漢字]]は[[CJK統合漢字]]に[[正準等価]]な[[写像]]を持つ故、
[[正規化]]によってその区別が失われてしまいます。
そこでかわりに
[[SVS]]
を使えるのです。
[SRC[>>30]]
[58]
[[CJK互換漢字]]用 [[SVS]] は、 [[CJK互換漢字]]の[[符号点]]と一対一対応するものです。
[[IVD]] に登録された実装依存[[グリフ]]に対応付けられた [[IVS]] とは違います。
[SRC[>>30]]
-*-*-
[59]
[[CJK互換漢字]]用の [[SVS]] は、
[[CJK互換漢字]]に[[異体選択子]]を付けたものではなく、
相当する[[CJK統合漢字]]に[[異体選択子]]を付けたものとなります。
[[CJK互換漢字]]は[[正準写像]]を持つので、
[[異体列]]に使えないのです。
[60]
[[CJK互換漢字]]の[[正準写像]]は[[CJK統合漢字]]単体であって、
[[CJK互換漢字]]用 [[SVS]] では''ありません''。
[[SVS]] に[[正準写像]]が変更されればさほど問題は生じなかったのですが、
[[正規化]]の仕様変更は認められていないのです。
それゆえ、
[[正規化]]をおそれて
[[CJK互換漢字]]を避けるなら、
[[CJK統合漢字]] + [[異体選択子]]を使うことになりますが、
それが正しく表示されるのは適切な[[フォント]]を持っている環境のみ、
正しく処理されるのは対応した環境だけです。
[[CJK互換漢字]]をそのまま使っていれば、
[[正規化]]以外はまったく支障がなかったのが、
[[SVS]] に置き換えるとまったく使い物にならなくなってしまいますw
([[フォント]]の問題は過渡期の今だけだと思いたいですが...)
[61]
それどころか同じ表現が [[CJK互換漢字]]と [[SVS]]
の2通りになって、しかも両者は[[正規化]]で同一視される対象ではありませんから、
検索などで新規に個別対応が必要となってしまいます。
むしろ面倒事は増えています。
[62]
[[正規化]]は破壊的操作なので、オリジナルデータや重要なデータには使うべきではありません。
[SEE[ [[正規化]] ]]
[[正規化]]を使わない日常の用途には [[CJK互換漢字]]の [[SVS]]
は出番がなさそうです。
* EVS
[49]
[DFN[[RUBY[絵文字異体列][えもじいたいれつ][emoji variation sequence]]]]
([DFN[EVS]])
は、
[[UTS #51]]
[DFN[[CODE[emoji-variation-sequences.txt]]]]
で定義されます
[SRC[>>30]]。
[66]
古い
[[Unicodeの版]]では
[[EVS]]
は
[[SVS]]
に含まれていました。
当時
[CODE[StandardizedVariants.txt]]
に記述されていた
[[EVS]]
は、現在の版では削除されているようです。
[44]
[[数字]],
[CODE[U+0023]] ([CODE[#]]),
[CODE[U+002A]] ([CODE[*]])
を[[基底文字]]とする[[絵文字異体列]]は、
それに対する[[結合文字]]
[CODE[U+20E3]] [CODE(charname)@en[COMBINING ENCLOSING KEYCAP]]
の[[色]]、[[サイズ]]、位置決定に影響することが想定されています。
[SRC[>>30]]
[11] [CITE[Emoji Variation Sequences]]
([TIME[2016-06-15 08:30:11 +09:00]])
<http://www.unicode.org/emoji/charts/emoji-variants.html>
* IVS
[50]
[DFN[[RUBY[表意文字的異体列][ひょういもじてきいたいれつ][ideographic variation sequence]]]]
([DFN[IVS]])
は、
[[UTS #37]]
の手続きによる登録で定義され、
[[IVD]]
に一覧化されます。
[SRC[>>30]]
[REFS[
- [19] [CITE[UTS #37: Unicode Ideographic Variation Database]]
([TIME[2011-11-08 13:41:57 +09:00]] 版)
<http://www.unicode.org/reports/tr37/>
- [21] [CITE@en-us[Ideographic Variation Database]]
([TIME[2015-05-08 11:34:52 +09:00]] 版)
<http://www.unicode.org/ivd/>
]REFS]
* 代表グリフ
[63]
ほとんどの
[[SVS]]
の[[代表グリフ]]は、
[[符号表]]に示されています。
[SRC[>>30]]
[69]
[[SVS]]
は、
[[符号表]]の[[文字]]一覧の元の[[文字]]の項に、
[[swung dash]] ([CODE[~]])
で示されています。
[SRC[>>68]]
[70]
[[SVS]]
は、
[[符号表]]の元の[[文字]]の[[ブロック]]の後に[[代表グリフ]]の一覧が付されています。
ただし
[[CJK互換漢字]]用の [[SVS]]
は、
[[CJK統合漢字]]でなく
[[CJK互換漢字]]の側に示されています。
[SRC[>>68]]
[HISTORY[
[71]
[[Unicode]] 8.0
の時代まで、
[[CJK互換漢字]]用を''除く''
[[SVS]]
[WEAK[(後の [[EVS]] を含みます。)]]
の[[字形][代表グリフ]]は
[[UCD]]
の
[DFN[[CODE[StandardizedVariants.html]]]]
に収録されていました。
[[蒙古文字]]のものも含まれ、
[[語頭形]]など複数の字形例が示されたものもありました。
[SRC[>>22]]
;; [85]
[CODE[StandardizedVariants.txt]] [SRC[>>84]]
は
[[Unicode]] 4.0 で追加されたもので、
[[Unicode 3.2]] 時代には
[[HTML]]
しかなかったようです。
[72]
[[Unicode]] 9.0
でこのファイルの内容は削除され [SRC[>>23, >>18]]、
[[Unicode]] 10.0
でファイル自体も削除されました。
[REFS[
- [83] [CITE@en-us[Standardized Variants]], [TIME[2002-03-25T23:26:56.000Z]], [TIME[2020-12-23T12:02:59.224Z]] <https://www.unicode.org/Public/3.2-Update/StandardizedVariants-3.2.0.html>
- [84] [TIME[2003-02-28T02:50:29.000Z]], [TIME[2020-12-23T12:04:29.278Z]] <https://www.unicode.org/Public/4.0-Update/StandardizedVariants-4.0.0.txt>
- [22] [CITE@en-us[Standardized Variants]]
([TIME[2015-05-26T21:39:32.000Z]], [TIME[2020-10-24T05:50:46.389Z]])
<https://unicode.org/Public/8.0.0/ucd/StandardizedVariants.html>
-
[23] [CITE@en-us[Standardized Variants]]
([TIME[2016-04-07T23:12:19.000Z]], [TIME[2020-10-24T05:50:56.522Z]])
<https://unicode.org/Public/9.0.0/ucd/StandardizedVariants.html>
]REFS]
]HISTORY]
-*-*-
[64]
[[EVS]]
の[[代表グリフ]]は、
[[絵文字表]]に示されています。
[SRC[>>30]]
[65]
[[IVS]]
の[[代表グリフ]]は、
[[IVD]] に示された登録中にあります。
[SRC[>>30]]
* 処理
[46]
[[異体列]]は、
定義されたものを除き、
[RUBYB[表示][display]]上の効果を持ちません。
[[異体選択子]]によって[RUBYB[視覚的][visual]]な[RUBYB[見た目][appearance]]は変化しません。
[SRC[>>30]]
[[適合]]する[[処理]]は、
未定義のものを
[[SVS]]
として解釈してはなりません
[SRC[>>105]]。
[108]
[[SVS]] を構成しない[[自由異体選択子]]は無視される[RUBYB[べき][should]]です。
[SRC[>>105]]
[52]
[[異体選択子]]は、
[[結合マーク]]であり[[結合クラス]] [N[0]] で、
[[default ignorable]]
です。
従って[[異体列]]に対応していない場合には、
[[異体選択子]]は[RUBYB[不可視][invisible]]で無視されるべきです。
[SRC[>>30]]
[[異体選択子]]は[RUBYB[視覚的][visual]]な[RUBYB[見た目][appearance]]を持ちません
[SRC[>>105]]。
[53]
[[異体選択子]]が[RUBYB[可視的な見た目][visible appearance]]を与えられるモードや環境があっても構いません。
例えば「隠れたものを表示する」モードで特別な[[グリフ]]で表示しても構いませんし、
[[基底文字]]に[[下波線][下線]]を引いて現在の[[フォント]]では対応できないことを示したりできます。
[SRC[>>30]]
* 標準化
[45]
[[異体選択子]]は、
[[文字符号化]]の一般の拡張機構を想定したものではありません。
[[基底文字]]や [[spacing mark]]
と[[異体選択子]]の組み合わせは、
[[Unicode Consortium]]
が定義するリストにあるものを除き、
[RUBYB[表示][display]]上の効果を持ちません。
[SRC[>>30]]
定義されていないものは、
将来の[[標準化]]のために予約されています [SRC[>>105]]。
[54]
特定の[[異体列]]の[[標準化]]や[RUBYB[対応][support]]は、
[[基底文字]]単独での表現に使うことが出来る[[グリフ]]の集合を制限することにはなりません。
[[利用者]]がある[[文字]]とその特定の異体の[RUBYB[視覚的][visual]]な区別を必要としているなら、
その区別のためには[[フォント]]を使わなければなりません。
[SRC[>>30]]
[55]
[[異体列]]が存在するからといって、
異なる[RUBYB[意味][semantics]]で同じまたは重なる[[グリフ]]の範囲の新しい[[文字]]が将来[[符号化][符号化済文字]]されることを否定するものではありません。
[SRC[>>30]]
* [CODE[<ivs>]] (朝刊太郎)
[25]
[[DTP]]
ソフトウェア
[CITE[[[朝刊太郎・改([TATE[仮称]])][朝刊太郎]]]]は、
[[ASCII文字]]を使った
[DFN[[CODE[<ivs>]]]]
タグという機能で
[[IVS]]
を文字列表現しています。
[118]
[CITE[「[[朝刊太郎]]・改(仮称)」タグの使い方]], [TIME[2019-06-11T13:06:00.000Z]], [TIME[2020-12-24T08:24:21.588Z]] <https://www.chokantaro.com/tag/tag.html#Ivs>
>
[PRE[
辻と<ivs>辻、祇園と<ivs>祇園
兵庫の芦屋市と広島の<ivs>芦田川
]PRE]
>
[PRE[
辻と<ivs=2>辻、祇園と<ivs=2>祇園
兵庫の芦屋市と広島の<ivs=2>芦田川
]PRE]
>異体字の枝番号を省略すると「0」番と判断されます。(実際の枝番号定義から逆算しやすいよう番号はゼロから指定します)
* 私用
[112]
[[Unicode]]
の[[異体列]]は標準化の対象とされ、
[[私用]]の仕組みは用意されていません。
[113]
それとは別に、
[[私用文字]]に独自に[[異体選択子]]的な機能を割り当てている[[応用]]もあります。
-*-*-
[114]
[[Apple]]
は
[CODE[U+F870]] 「transcoding hint: variant tag 16」 -
[CODE[U+F87F]] 「transcoding hint: variant tag 1」
を定義しています。
[SRC[>>15]]
[116]
[[Apple]] が [[Unicode]]
以前に使っていた各国用の[[文字コード]]にあって
[[Unicode]]
にない[[文字]]で、
他の
[[Unicode文字]]の[[異体]]とみなされるもののために、
[[Unicode文字]]の後に置いて使われています。
[117] 例えば
[[MacJapanese]]
の[[縦書き字形]]に使われています。
[REFS[
- [15] ([TIME[2018-02-19 16:28:14 +09:00]])
<ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT>
-- [115]
[TIME[2005-04-05T01:04:12.000Z]], [TIME[2020-11-13T11:39:33.292Z]] <https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT>
]REFS]
-*-*-
[FIG(quote)[
[FIGCAPTION[
[14] [CITE@en[[[Character Description Language]] - Wenlin Guide]]
([TIME[2017-04-12 00:30:51 +09:00]])
<http://guide.wenlininstitute.org/wenlin4.3/Character_Description_Language>
]FIGCAPTION]
> Wenlin Variation Sequences depend on Wenlin CDL font support: Wenlin uses a whole plane of Private-Use Area (PUA) characters (U+F0000..U+FFFFD), to define its own Private-Use Variation Selectors (PVS). Wenlin uses these PVS to define Wenlin’s own Private Variation Sequences, used to manage glyph variation in the CDL Database.
]FIG]
* 関連
[29]
[[異体選択子]]とは別に、
本来[[算用数字]]を表す[[符号位置]]の表示形を[[アラビア文字の数字]]に切り替える、
[[numeric shape selector format characters]]
があります。
[28]
[[続け字]]、[[合字]]に関係した異体グリフの選択には他の仕組みがあります。
[SEE[ [[続け字]]、[[合字]] ]]
[16] [[SAPV]]
* このウィキでの用例
[SEE[ [[Unicodeにない文字]] ]]
* 歴史
[20] [CITE@ja[プレスリリース「ISO/IEC 10646の規定に基づく漢字字形データベースへの登録」 | IPSJ/ITSCJ]]
([[一般社団法人 情報処理学会 情報規格調査会]] 著, [TIME[2015-07-27 13:35:00 +09:00]] 版)
<https://www.itscj.ipsj.or.jp/oshirase/2014/06/pr_140610_sc2.html>
[1] [CITE[ホーム]]
([TIME[2011-04-17 18:08:45 +09:00]] 版)
<http://ivstpc.jp/default.aspx>
[6] >>1 [CITE[404 Not Found]] ([TIME[2016-05-30 18:11:56 +09:00]]) <http://ivstpc.jp/>
いつの間にか消滅
[2] [CITE[人名などの異体字もデータ交換可能に、MSなどが「IVS技術促進協議会」発足 -INTERNET Watch]]
([TIME[2011-04-17 18:09:18 +09:00]] 版)
<http://internet.watch.impress.co.jp/docs/news/20101206_412176.html>
[3] [CITE@ja-JP[『Unicode IVS Add-in for Microsoft Office』を提供]]
( ([TIME[2012-11-09 12:20:42 +09:00]] 版))
<http://www.microsoft.com/japan/presspass/detail.aspx?newsid=4219>
[4] [CITE[Issue 383580 - chromium - UVS (SV or IVS) is not supported even with a UVS-capable font - An open-source project to help move the web forward. - Google Project Hosting]]
([TIME[2015-10-18 22:28:50 +09:00]] 版)
<https://code.google.com/p/chromium/issues/detail?id=383580>
[5] [CITE@ja-jp[新異体字セレクター作成計画 ‐ 未来情報産業]]
( ([[未来情報産業株式会社]] 著, [TIME[2010-12-04 23:55:56 +09:00]] 版))
<http://www.mirai-ii.co.jp/data/ivs/>
[9] [CITE@ja-jp[異体字セレクター ‐ 通信用語の基礎知識]]
([TIME[2016-07-12 11:03:45 +09:00]])
<http://www.wdic.org/w/WDIC/%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF%E3%83%BC>
[10] [CITE@ja[異体字について | 文字情報基盤整備事業]]
([TIME[2016-07-12 11:33:24 +09:00]])
<http://mojikiban.ipa.go.jp/2527.html>
[12] [CITE@ja[AbemaPrime【公式】さんのツイート: "【今夜 #アベプラ】①沖縄県東村高江で米軍大型ヘリが着陸し炎上②プレイバック総選挙!05年「郵政解散」を小泉元総理に罷免された島村元農水大臣に聞く︎③元郵便局員が語る郵政民営化の実情@8bit_HORIJUN @shigekixs▷https://t.co/NdXJ5e0onb https://t.co/F5S046u1CO"]]
([TIME[2017-10-11 19:38:28 +09:00]])
<https://twitter.com/Abema_Prime/status/918056947902922752>
[13] >>12 ③の直前に [CODE[U+FF0E]]
[FIG(quote)[
[FIGCAPTION[
[27] [CITE@ja[文字コード技術部会 | 一般社団法人 文字情報技術促進協議会]]
([TIME[2020-11-15T08:09:43.000Z]], [TIME[2020-11-15T08:10:41.559Z]])
<https://moji.or.jp/wg/code/>
]FIGCAPTION]
> 現在、文字コード技術部会では、このIVSを含む文字列のコレーションを可能にする技術的な方法について調査と検討を進めています。最終的には何らかの実現可能な方法を提案し、課題の解決につなげたいと考えています。
]FIG]