summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pxcjkcat/pxcjkcat.tex
blob: e8e00fcbc7bf1f429a8ce167965ff128c126a00e (plain)
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
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
% upLaTeX 文書; 文字コードは UTF-8
\documentclass[uplatex,dvipdfmx,a4paper]{jsarticle}
\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{xcolor}
\usepackage[colorlinks,hyperfootnotes=false]{hyperref}
\usepackage{pxjahyper}
\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black,
  pdftitle={pxcjkcatパッケージ},
  pdfauthor={八登崇之}}
\usepackage{bxtexlogo}
\bxtexlogoimport{*,LaTeXTeX}
\usepackage[verb]{bxghost}
\usepackage{shortvrb}
\MakeShortVerb{\|}
\usepackage{verbatim}
\newenvironment{myverbatim}
  {\quote\small\verbatim}
  {\endverbatim\endquote}
\newcommand{\PkgVersion}{1.4}
\newcommand{\PkgDate}{2022/06/06}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{%
  $\langle$\mbox{}\nolinebreak#1\nolinebreak\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{:~}
\newcommand{\strong}{\textsf}
\newcommand{\wbr}{\linebreak[0]}
\newcommand{\Code}[1]{{\usefont{T1}{lmtt}{l}{n}#1}}
%-----------------------------------------------------------
\begin{document}
\title{\Pkg{pxcjkcat} パッケージ}
\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle

\begin{abstract}
{\upTeX}エンジンには
「ソース中の非ASCII文字の扱い」
(和文・欧文の何れとして扱うか、等)
を制御するための「和文カテゴリ(kcatcode)」
という設定がある。
本パッケージは、{\upTeX}の和文カテゴリを扱うための
{\LaTeX}の文書作成者向けのインタフェースを提供する。
\end{abstract}

\tableofcontents

%===========================================================
\section{前提知識}
\label{sec:Introduction}

%-------------------
\subsection{和文カテゴリ}
\label{ssec:cjkcategory}

{\upTeX}エンジンの「\strong{和文カテゴリ}(kcatcode)」の設定は
「ソース中の非ASCII文字の振舞」を制御するためのものである。
例えば「ア」(U+30A2)という文字は普通は(既定値では)
仮名として扱われるが、U+30A2の和文カテゴリを変更することで、
これを「和文記号扱い」「欧文扱い」などに変えることができる。

{\upTeX}の仕様では和文カテゴリの値は15~19の範囲の整数
(\strong{和文カテゴリコード})
として表される。
本パッケージでは操作を直感的にするため和文カテゴリの値に名前
(\strong{カテゴリID})を付けて扱う。
和文カテゴリの値の一覧は以下の通りである。

\begin{center}\small\begin{tabular}{ccl}
  \hline
  コード & カテゴリID & 意味 \\
  \hline
  15 & |noncjk| & 欧文扱い \\
  16 & |kanji|  & 漢字扱い \\
  17 & |kana|   & 仮名扱い \\
  18 & |cjk|    & 「その他の和文」扱い \\
  19 & |hangul| & ハングル扱い \\
  \hline
\end{tabular}\end{center}
和文カテゴリの設定による実際の「振舞」の違いには
以下のようなものがある
\footnote{なお、現在の{\upTeX}の仕様では|kanji|(16)と|kana|(17)
  の間には「振舞」の違いは存在しないようである。}。
\begin{itemize}
\item 和文カテゴリが|noncjk|(15)である文字は欧文として扱われる。
  対して、|noncjk|以外の文字は和文扱いとなる。
  \Note なお、欧文扱いとなる文字は欧文{\LaTeX}({\pdfLaTeX})と
  同じ機構で処理される。
  すなわち、{\TeX}のレベルではUTF-8のバイト列として扱われ、
  これを\Pkg{inputenc}パッケージが適切に処理することで
  初めて「文字」として認識される。
\item (u){\pLaTeX}には「行末にある文字が和文文字の場合には当該の改行は
  空白にならずに無視される」という独自の入力規則があるが、
  和文カテゴリが|hangul|(19)である和文文字が行末にある場合は
  欧文と同様に改行は空白を発生させる。
\item {\LaTeX}の|\|から始まる命令名(制御綴)の構成について
  「複数文字の名前を作れるのは英字のみ」という規則がある。
  命令名構成の規則について、和文カテゴリが
  |kanji|(16)・|kana|(17)・|hangul|(19)
  の和文文字は「英字」と同じ扱いになり、
  |cjk|(18)の和文文字は「英字以外の欧文文字」と同じ扱いになる。
\end{itemize}

ただし、{\upTeX}の仕様では、和文文字カテゴリの設定は“文字単位”ではなく
“Unicodeブロック単位”で行うようになっている(一部例外あり)。
従って、例えば「ア」(U+30A2)の和文カテゴリを変更したいという場合には、
U+30A2が属する“Katakana”(U+30A0~30FF)のブロックについて
和文カテゴリの設定を行うことになる。

本パッケージが提供する命令を利用すると
「“Katakana”の和文カテゴリを|cjk|(18)に変更する」
という設定は
\begin{quote}\small
\begin{verbatim}
\cjkcategory{kana}{cjk}
\end{verbatim}
\end{quote}
で実現できる。

%-------------------
\subsection{和文カテゴリモード}
\label{ssec:cjkcategory-mode}

\strong{和文カテゴリモード}は
全てのブロックに対する和文カテゴリの一括設定
(プリセット設定)のことである
(TODO:ちゃんと説明する)。

モード設定には以下のものがある。
何れのモードも、「CJK中核セット」(後述)のブロック群の
設定は共通で、
その他のブロックが欧文扱い(|noncjk|)であるか
和文扱い(|cjk|%
\footnote{全てのモード設定において、「CJK中核セット」\strong{以外}の
  ブロックのカテゴリは必ず|noncjk|か|cjk|の何れかになる。}%
)であるかが異なる。
\begin{itemize}
\item |forcecjk|\Means
  全てのブロックを和文扱い
  (|noncjk|以外)とする。
  和文フォントの中のUnicode値の割当がある全ての文字を
  和文文字として直接用いることができる。
\item |default|\Means
  現在のモードCCVに対応する{\upTeX}の版
  (例えばモードCCVが3ならばv1.23)
  における既定設定と一致させる。
  \Note モードCCVが2以下の場合は|forcecjk|と同一の設定になる。
\item |prefercjk|\Means
  和文扱いのブロックとして「CJK中核セット」の他に
  「Adobeの定めるCJK文字集合
  \footnote{Adobe-Japan1、Adobe-GB1、Adobe-CNS1、Adobe-Korea1の4つ。}%
  の何れかと共通部分をもつ文字ブロック」を加えて、
  残りを欧文扱いに設定する。
\item |prefercjkvar|\Means\hspace{-.25em}%
  |prefercjk|からギリシャ・キリル文字の
  ブロックを欧文扱いに変更したもの。
\item |japanese|\Means
  和文扱いのブロックとして「CJK中核セット」の他に
  「Adobe-Japan1の全角幅のグリフ
  の何れかと共通部分をもつ文字ブロック」を加えて、
  残りを欧文扱いに設定する。
\item |japanesevar|\Means
  |japanese|からギリシャ・キリル文字の
  ブロックを欧文扱いに変更したもの。
\item |prefernoncjk|\Means
  「CJK中核セット」のブロックのみを和文扱いとし、
  残りを欧文扱いにする。
\end{itemize}

\Note 各モードでの具体的な設定値については\ref{sec:Values}節を参照。

\paragraph{CJK中核セット}
「CJK中核セット」は以下の文字種が属するブロックのセットを指す。
(括弧内は、モード設定において当該のブロックに設定される
和文カテゴリの値。)
  \begin{itemize}
  \item 漢字・部首・注音字母(|kanji|)
  \item ひらがな・カタカナ(|kana|)
   \item CJK記号の一部・全角半角互換形・彝文字
    ・西夏文字・女書文字・契丹文字(|cjk|)
    \Note モードCCVが2以上の場合、|cjk12|の再分割の|cjk1b|、
      |cjk1c|は|kana|に設定される。
  \item ハングル完成形・ハングル字母(|hangul|)
\end{itemize}

%-------------------
\subsection{和文トークン状態}
\label{ssec:cjktoken}

{\upTeX}には、和文カテゴリ(kcatcode)とは別に、
非ASCII文字全体の和文・欧文扱いの設定を一斉に切り替えるための
命令が存在する
\footnote{これらの命令は本パッケージが提供するものではなく
  {\upTeX}に元から存在するものであることに注意。}。
\begin{itemize}
\item |\enablecjktoken|\Means
  和文・欧文扱いの設定を和文カテゴリの設定に従わせる。
\item |\disablecjktoken|\Means
  和文カテゴリ設定に関わらず非ASCII文字全体を欧文扱いにする。
  \Note あたかも全ブロックの和文カテゴリを|noncjk|(15)に設定したのと
  同じ状態になる。
\item |\forcecjktoken|\Means
  和文カテゴリ設定に関わらず非ASCII文字全体を和文扱いにする。
  \Note 和文カテゴリが|noncjk|(15)であるブロックは
  あたかもそれが|cjk|(18)であるように動作する。
\end{itemize}

これらの命令群により変更されるパラメタのことを本パッケージでは
「\strong{和文トークン状態}」と呼ぶことにする
\footnote{「和文トークン状態」を指す公式の用語は存在しないと思われる。}。

%===========================================================
\section{パッケージ読込}
\label{sec:Loading}

\begin{myverbatim}
\usepackage[<オプション>]{pxcjkcat}
\end{myverbatim}

オプションとして以下のものが指定できる。

\begin{itemize}
\item \strong{モードCCV指定}\Means
  \<「モードCCV」の値を指定するオプション。
  \Note モードCCVについては\ref{sec:CCV}節を参照。
  \Note モードCCVの既定値は1であり、
  これは極めて古い版と互換にすることを意味する。
  モード設定(|prefernoncjk|等)を利用する場合には、
  適切なモードCCVのオプションを指定するのが望ましい。
  \begin{itemize}
  \item |ccv1|\Means
    モードCCVを1({\upTeX} v0.11~0.28と互換)とする。
    \strong{既定値。}
  \item |ccv2|\Means
    モードCCVを2({\upTeX} v0.29~1.22と互換)とする。
  \item |ccv3|\Means
    モードCCVを3({\upTeX} v1.23と互換)とする。
  \item |ccv4|\Means
    モードCCVを4({\upTeX} v1.25以降と互換)とする。
  \item |real|または|ccv+|\Means
    モードCCVを{\upTeX}の実際のCCVと一致させる。
  \end{itemize}
\item \strong{和文カテゴリモード値}\Means
  |\cjkcategorymode|命令で有効なモード値(|prefernoncjk|等)
  をオプションとして指定可能で、
  この場合、和文カテゴリがモードに従って設定される。
  \Note 和文カテゴリモード値オプションが指定されていない場合は、
  パッケージ読込時に和文カテゴリが変更されることはない。
\item |nomode|\Means
  和文カテゴリモード値オプションの効果を打ち消す。
\end{itemize}

%===========================================================
\section{機能}
\label{sec:Function}

%-------------------
\subsection{和文カテゴリ設定に関連する機能}
\label{ssec:cjkcategory-function}

\begin{itemize}
\item |\cjkcategory{|\Meta{ブロック}|,...}{|\Meta{カテゴリ}|}|\Means
  \Meta{ブロック}で指定される文字ブロック(複数指定が可能)の
  和文カテゴリを\Meta{カテゴリ}に変更する。

  \Meta{ブロック}は以下の何れかの形式で指定する:
  \begin{itemize}
  \item ブロックID(\ref{sec:Blocks}節参照)%
    \footnote{ブロックIDによる指定は{\upTeX}の版の影響を受けない。
      例えば、{\upTeX}の版(およびモードCCV指定)が何であっても、
      |latn1|は常に“Latin-1 Supplement”の範囲(U+0080~00FF)を指す。
      実CCVが3以上の場合に|latn1|のカテゴリ設定を行った場合は、
      実際には|latnx|と|latny|の2つのブロックに対して設定が行われる。}
  \item 非ASCII文字1つ\Means
    当該の文字が属するブロックを指す。
    \Note 「文字の属するブロック」は、モードCCV設定とは無関係であり
    常に{\upTeX}の実際のブロック定義に従う。
    従ってその動作は{\upTeX}の版に依存することに注意。
  \item 符号値(整数値)\Means
    当該の符号値の文字が属するブロックを指す。
    符号値は以下の形式で指定できる\Means
    \begin{itemize}
    \item \Meta{16進表記}\Means 例えば|1F600|。
    \item |"|\Meta{16進表記}\Means 例えば|"1F600|。
      \Note 16進数字の|A|~|F|は大文字で書く。
    \item |+|\Meta{整数}\Means 例えば|+128512|は10進表記で128512、
      すなわちU+1F600を表す。
      \Note \Meta{整数}の部分には一般に任意の
      「{\LaTeXTeX}で整数を表すテキスト」が記述できる。
      例えば|+\value{mycode}|のように書くとカウンタ値を指定できる。
    \end{itemize}
    \Note 前項と同様、動作が{\upTeX}の版に依存することに注意を要する。
  \end{itemize}
  \Meta{カテゴリ}は「カテゴリID」または
  「カテゴリコード」(括弧内の整数値)で指定する。
  \begin{itemize}
  \item |noncjk|(15)\Means 欧文扱い
  \item |kanji|または|han|(16)\Means 漢字扱い
  \item |kana|(17)\Means 仮名扱い
  \item |cjk|(18)\Means \<「その他の和文」扱い
  \item |hangul|(19)\Means ハングル扱い
  \end{itemize}

  和文カテゴリの変更は局所的(グルーピングに従う)である。

  \Note モードCCVの指定は|\cjkcategory|の動作には影響を与えない。

  \Note “Basic Latin”ブロック(|latn|)のカテゴリは常に|noncjk|で
    なければならず、|noncjk|以外に変更しようとするとエラーになる。

\item |\cjkcategorymode{|\Meta{モード}|}|\Means
  全てのブロックの和文カテゴリの一括設定(モード設定)を行う。
  有効なモード設定の値は以下の通りである。
  \Note モード設定の詳細については
  \ref{ssec:cjkcategory-mode}節を参照。
  \begin{itemize}
  \item |forcecjk|
  \item |default|
  \item |prefercjk|
  \item |prefercjkvar|
  \item |japanese|
  \item |japanesevar|
  \item |prefernoncjk|
  \end{itemize}

\end{itemize}

%-------------------
\subsection{和文トークン状態に関する機能}
\label{ssec:cjktoken-function}

\Note 「和文トークン状態」については\ref{ssec:cjktoken}節を参照。

\begin{itemize}

\item |\getcjktokenmode|\Means
  現在の和文トークン状態の取得して、
  それを表す整数値を|\thecjktokenmode|に設定する。
  \begin{itemize}
  \item 0\Means |\disablecjktoken|の状態。
  \item 1\Means |\enablecjktoken|の状態。
  \item 2\Means |\forcecjktoken|の状態。
  \item 255\Means 状態取得に失敗した%
  \footnote{{\TeX} Live 2022以降で{\eTeX}拡張無しの{\upTeX}エンジンの
    場合は取得ができない。
    しかし、2014年以降の{\LaTeX}カーネルは{\eTeX}拡張を必須としている
    ので、そのようなエンジンの上で{\LaTeX}が動作している可能性は
    ほぼ考えられない。
    従って、現実的には255が返ることはないと思ってよい。}。
  \end{itemize}

\item |\setcjktokenmode{|\Meta{整数値}|}|\Means
  |\getcjktokenmode|の規則の整数値を用いて和文トークン状態を設定する。

\item |\withcjktokendisabled{|\Meta{コード}|}|\Means
  一時的に|\disablecjktoken|に変更した状態で、
  \Meta{コード}を実行する。
\item |\withcjktokenenabled{|\Meta{コード}|}|\Means
  一時的に|\enablecjktoken|に変更した状態で、
  \Meta{コード}を実行する。
\item |\withcjktokenforced{|\Meta{コード}|}|\Means
  一時的に|\forcecjktoken|に変更した状態で、
  \Meta{コード}を実行する。
\Note 以上3つの命令はどれも、
「和文トークン状態を設定して\Meta{コード}を実行した後
和文トークン状態を再設定する」
という動作を行う。
そのため新たに局所化グループに入ることはない。

\end{itemize}

%===========================================================
\section{文字分類バージョン(CCV)}
\label{sec:CCV}

\noindent \strong{注意}\Means
\ref{sec:CCV}節および\ref{sec:Blocks}に述べられている
説明は現状の仕様と食い違っている部分があり、
大幅な改訂が必要な状態である。
少なくとも1.1版以降の仕様では、
モードCCVの影響を受けるのはモード設定の定義のみであり、
ブロック分割は常に実際のエンジンのものに一致させている。

\bigskip

{\upTeX}エンジンでの文字ブロックの分割および各ブロックの
和文カテゴリの既定値は改版時に変更され、
これが互換性の問題を起こす可能性がある。
本パッケージでは、パッケージの機能を用いて設定された
和文カテゴリの値がエンジンの改版により変化することを防ぐため、
「特定のエンジンのバージョンを指定して、その動作を模倣する」
という方針をとる。

\subsection{文字分類バージョンとは何か}

\begin{itemize}
\item 文字ブロックの分割の違いを
  「\strong{文字分類バージョン}(CCV;Character Category Version)」
  と呼ぶことにする。
  現状では次のものが存在する
  \footnote{{\upTeX}のv1.24には文字ブロック分割に関してバグが存在するので、
    CCVの定義からは除外する。
    なお、実際にv1.24の{\upTeX}で本パッケージが読み込まれた場合は、
    実CCVは1と見なされる(はずである)。}。
  \begin{itemize}
  \item バージョン1: {\upTeX} v0.11~0.28と互換
  \item バージョン2: {\upTeX} v0.29~1.22と互換
  \item バージョン3: {\upTeX} v1.23と互換
  \item バージョン4: {\upTeX} v1.25以降と互換
  \end{itemize}

\item \Pkg{pxcjkcat}の読込時に、そのオプションにおいて
  「その文書が依拠するCCVの値」(これを\strong{モードCCV}と呼ぶ)
  を指定する。
  すなわち、オプション |ccv|$N$($N=\mbox{1~3}$)を指定すると、
  モードCCVが$N$になる。

\item モードCCVを使用するエンジンの実のCCVと常に一致させたい場合は、
  |ccv+| というオプションを指定すればよい。
  ただしこの場合は当然、和文カテゴリ設定がエンジンの版に
  依存することになる。

\item モードCCVの既定値は1(|ccv1|)である。
  この場合、ブロック分割の状態はUnicode%
  \footnote{エンジンの版に対応する版のUnicode。}%
  のブロック定義と完全に一致する。

\item モード設定で |default| を指定した場合は、
  和文カテゴリの設定は
  「モードCCVに対応するエンジンの版の既定値」
  に一致する。
  他のモード設定の実際の設定値も |default| を基礎にして
  決まるので、モードCCVにより多少の差異が出る。

\end{itemize}

\subsection{注意事項}

\begin{itemize}
\item Unicodeの改版による「文字ブロックの追加」については
  「当該の版のエンジンで未対応の文字ブロックの文字は
  決して使われない」
  ことを仮定すれば互換性を損なうことがないため、
  特に対策を行わない。

  従って、エンジンの改版が「文字ブロックの追加」だけを伴う場合は、
  それは新しいCCVとは見なされない。
  例えば、v1.00→v1.10の改修では幾つかのブロックが追加されたが、
  CCVは2のままである。

\item もちろん、「旧版の動作の模倣」は本パッケージの機能を用いた
  場合に限られ、{\upTeX}エンジンの和文カテゴリコード(kcatcode)の
  処理自体は何も変更されない。
  また、本パッケージの機能を用いる以外の方法
  (エンジン既定のままの場合を含む)
  で設定された和文カテゴリ値については、
  当然、エンジンの版による差異が生じうる。

\end{itemize}


%===========================================================
\section{文字ブロック}
\label{sec:Blocks}

%-------------------
\subsection{Unicodeブロックの一覧}

以下は、Unicodeが定めるブロックと直接に対応するブロックの一覧である。
この表の「ブロックID」の欄が、|\cjkcategory|命令で指定する
ブロックIDを示す。
「CCV」の欄は、そのブロックがサポートされる実CCVの
範囲の下限を表す。
\footnote{これは参考情報であり、現状の仕様ではあまり意味をもたない。}
%\footnote{ここで示すサポート範囲は「必要条件」であることに注意。
%  先述の通り、エンジンの改版でブロックが(分割変更でなく)
%  新規追加された場合には以前のCCVの値を引き継ぐ。
%  このため、サポート範囲が「2」のブロックは、
%  モードCCVが2であっても“実際には使えない”可能性がある。
%  (モードCCVが3以上なら必ず使えて、1なら必ず使えない。)
%  “実際には使えない”ブロックに設定を試みた場合は、
%  警告が出て設定が無視される。}

\begin{quote}
\renewcommand{\baselinestretch}{0.9}\small
\setlength{\parskip}{0pt}
\newcommand*\xI[1]{\makebox[4em][l]{\texttt{#1}}\ignorespaces}
\newcommand*\xV[1]{\makebox[2em][c]{#1}\hspace*{1em}\ignorespaces}
\newcommand*\xR[2]{\Code{U+}\makebox[3em][r]{\Code{#1}}%
    ~~~\makebox[3em][r]{\Code{#2}}\hspace*{1em}\ignorespaces}
\newcommand*\xN[1]{#1}
\hspace*{-1em}%header-line
\makebox[5em][l]{ブロック\mbox{}ID}\makebox[2em][c]{~~CCV}%
\makebox[10em][c]{符号値範囲}\makebox{ブロック名称}\par
%/////////////////////////////
\xI{latn}  \xV{1} \xR  {0000}  {007F} \xN{Basic Latin}\par
\xI{latn1} \xV{1} \xR  {0080}  {00FF} \xN{Latin-1 Supplement}\par
\xI{latnA} \xV{1} \xR  {0100}  {017F} \xN{Latin Extended-A}\par
\xI{latnB} \xV{1} \xR  {0180}  {024F} \xN{Latin Extended-B}\par
\xI{latn2} \xV{1} \xR  {0250}  {02AF} \xN{IPA Extensions}\par
\xI{sym01} \xV{1} \xR  {02B0}  {02FF} \xN{Spacing Modifier Letters}\par
\xI{sym02} \xV{1} \xR  {0300}  {036F} \xN{Combining Diacritical Marks}\par
\xI{grek}  \xV{1} \xR  {0370}  {03FF} \xN{Greek and Coptic}\par
\xI{cyrl}  \xV{1} \xR  {0400}  {04FF} \xN{Cyrillic}\par
\xI{cyrl1} \xV{1} \xR  {0500}  {052F} \xN{Cyrillic Supplement}\par
\xI{armn}  \xV{1} \xR  {0530}  {058F} \xN{Armenian}\par
\xI{hebr}  \xV{1} \xR  {0590}  {05FF} \xN{Hebrew}\par
\xI{arab}  \xV{1} \xR  {0600}  {06FF} \xN{Arabic}\par
\xI{syrc}  \xV{1} \xR  {0700}  {074F} \xN{Syriac}\par
\xI{arab1} \xV{1} \xR  {0750}  {077F} \xN{Arabic Supplement}\par
\xI{thaa}  \xV{1} \xR  {0780}  {07BF} \xN{Thaana}\par
\xI{nkoo}  \xV{1} \xR  {07C0}  {07FF} \xN{NKo}\par
\xI{samr}  \xV{2} \xR  {0800}  {083F} \xN{Samaritan}\par
\xI{mand}  \xV{2} \xR  {0840}  {085F} \xN{Mandaic}\par
\xI{syrc1} \xV{3} \xR  {0860}  {086F} \xN{Syriac Supplement}\par
\xI{arabA} \xV{2} \xR  {08A0}  {08FF} \xN{Arabic Extended-A}\par
\xI{deva}  \xV{1} \xR  {0900}  {097F} \xN{Devanagari}\par
\xI{beng}  \xV{1} \xR  {0980}  {09FF} \xN{Bengali}\par
\xI{guru}  \xV{1} \xR  {0A00}  {0A7F} \xN{Gurmukhi}\par
\xI{gujr}  \xV{1} \xR  {0A80}  {0AFF} \xN{Gujarati}\par
\xI{orya}  \xV{1} \xR  {0B00}  {0B7F} \xN{Oriya}\par
\xI{taml}  \xV{1} \xR  {0B80}  {0BFF} \xN{Tamil}\par
\xI{telu}  \xV{1} \xR  {0C00}  {0C7F} \xN{Telugu}\par
\xI{knda}  \xV{1} \xR  {0C80}  {0CFF} \xN{Kannada}\par
\xI{mlym}  \xV{1} \xR  {0D00}  {0D7F} \xN{Malayalam}\par
\xI{sinh}  \xV{1} \xR  {0D80}  {0DFF} \xN{Sinhala}\par
\xI{thai}  \xV{1} \xR  {0E00}  {0E7F} \xN{Thai}\par
\xI{laoo}  \xV{1} \xR  {0E80}  {0EFF} \xN{Lao}\par
\xI{tibt}  \xV{1} \xR  {0F00}  {0FFF} \xN{Tibetan}\par
\xI{mymr}  \xV{1} \xR  {1000}  {109F} \xN{Myanmar}\par
\xI{geor}  \xV{1} \xR  {10A0}  {10FF} \xN{Georgian}\par
\xI{hang1} \xV{1} \xR  {1100}  {11FF} \xN{Hangul Jamo}\par
\xI{ethi}  \xV{1} \xR  {1200}  {137F} \xN{Ethiopic}\par
\xI{ethi1} \xV{1} \xR  {1380}  {139F} \xN{Ethiopic Supplement}\par
\xI{cher}  \xV{1} \xR  {13A0}  {13FF} \xN{Cherokee}\par
\xI{cans}  \xV{1} \xR  {1400}  {167F} \xN{Unified Canadian Aboriginal Syllabics}\par
\xI{ogam}  \xV{1} \xR  {1680}  {169F} \xN{Ogham}\par
\xI{runr}  \xV{1} \xR  {16A0}  {16FF} \xN{Runic}\par
\xI{tglg}  \xV{1} \xR  {1700}  {171F} \xN{Tagalog}\par
\xI{hano}  \xV{1} \xR  {1720}  {173F} \xN{Hanunoo}\par
\xI{buhd}  \xV{1} \xR  {1740}  {175F} \xN{Buhid}\par
\xI{tagb}  \xV{1} \xR  {1760}  {177F} \xN{Tagbanwa}\par
\xI{khmr}  \xV{1} \xR  {1780}  {17FF} \xN{Khmer}\par
\xI{mong}  \xV{1} \xR  {1800}  {18AF} \xN{Mongolian}\par
\xI{cans1} \xV{2} \xR  {18B0}  {18FF} \xN{Unified Canadian Aboriginal Syllabics Extended}\par
\xI{limb}  \xV{1} \xR  {1900}  {194F} \xN{Limbu}\par
\xI{tale}  \xV{1} \xR  {1950}  {197F} \xN{Tai Le}\par
\xI{talu}  \xV{1} \xR  {1980}  {19DF} \xN{New Tai Lue}\par
\xI{khmr1} \xV{1} \xR  {19E0}  {19FF} \xN{Khmer Symbols}\par
\xI{bugi}  \xV{1} \xR  {1A00}  {1A1F} \xN{Buginese}\par
\xI{lana}  \xV{2} \xR  {1A20}  {1AAF} \xN{Tai Tham}\par
\xI{sym52} \xV{2} \xR  {1AB0}  {1AFF} \xN{Combining Diacritical Marks Extended}\par
\xI{bali}  \xV{1} \xR  {1B00}  {1B7F} \xN{Balinese}\par
\xI{sund}  \xV{2} \xR  {1B80}  {1BBF} \xN{Sundanese}\par
\xI{batk}  \xV{2} \xR  {1BC0}  {1BFF} \xN{Batak}\par
\xI{lepc}  \xV{2} \xR  {1C00}  {1C4F} \xN{Lepcha}\par
\xI{olck}  \xV{2} \xR  {1C50}  {1C7F} \xN{Ol Chiki}\par
\xI{cyrlC} \xV{2} \xR  {1C80}  {1C8F} \xN{Cyrillic Extended-C}\par
\xI{geor2} \xV{4} \xR  {1C90}  {1CBF} \xN{Georgian Extended}\par
\xI{sund1} \xV{2} \xR  {1CC0}  {1CCF} \xN{Sundanese Supplement}\par
\xI{sym38} \xV{2} \xR  {1CD0}  {1CFF} \xN{Vedic Extensions}\par
\xI{latn4} \xV{1} \xR  {1D00}  {1D7F} \xN{Phonetic Extensions}\par
\xI{latn5} \xV{1} \xR  {1D80}  {1DBF} \xN{Phonetic Extensions Supplement}\par
\xI{sym03} \xV{1} \xR  {1DC0}  {1DFF} \xN{Combining Diacritical Marks Supplement}\par
\xI{latn3} \xV{1} \xR  {1E00}  {1EFF} \xN{Latin Extended Additional}\par
\xI{grek1} \xV{1} \xR  {1F00}  {1FFF} \xN{Greek Extended}\par
\xI{sym04} \xV{1} \xR  {2000}  {206F} \xN{General Punctuation}\par
\xI{sym05} \xV{1} \xR  {2070}  {209F} \xN{Superscripts and Subscripts}\par
\xI{sym06} \xV{1} \xR  {20A0}  {20CF} \xN{Currency Symbols}\par
\xI{sym07} \xV{1} \xR  {20D0}  {20FF} \xN{Combining Diacritical Marks for Symbols}\par
\xI{sym08} \xV{1} \xR  {2100}  {214F} \xN{Letterlike Symbols}\par
\xI{sym09} \xV{1} \xR  {2150}  {218F} \xN{Number Forms}\par
\xI{sym10} \xV{1} \xR  {2190}  {21FF} \xN{Arrows}\par
\xI{sym11} \xV{1} \xR  {2200}  {22FF} \xN{Mathematical Operators}\par
\xI{sym12} \xV{1} \xR  {2300}  {23FF} \xN{Miscellaneous Technical}\par
\xI{sym13} \xV{1} \xR  {2400}  {243F} \xN{Control Pictures}\par
\xI{sym14} \xV{1} \xR  {2440}  {245F} \xN{Optical Character Recognition}\par
\xI{sym15} \xV{1} \xR  {2460}  {24FF} \xN{Enclosed Alphanumerics}\par
\xI{sym16} \xV{1} \xR  {2500}  {257F} \xN{Box Drawing}\par
\xI{sym17} \xV{1} \xR  {2580}  {259F} \xN{Block Elements}\par
\xI{sym18} \xV{1} \xR  {25A0}  {25FF} \xN{Geometric Shapes}\par
\xI{sym19} \xV{1} \xR  {2600}  {26FF} \xN{Miscellaneous Symbols}\par
\xI{sym20} \xV{1} \xR  {2700}  {27BF} \xN{Dingbats}\par
\xI{sym21} \xV{1} \xR  {27C0}  {27EF} \xN{Miscellaneous Mathematical Symbols-A}\par
\xI{sym22} \xV{1} \xR  {27F0}  {27FF} \xN{Supplemental Arrows-A}\par
\xI{brai}  \xV{1} \xR  {2800}  {28FF} \xN{Braille Patterns}\par
\xI{sym23} \xV{1} \xR  {2900}  {297F} \xN{Supplemental Arrows-B}\par
\xI{sym24} \xV{1} \xR  {2980}  {29FF} \xN{Miscellaneous Mathematical Symbols-B}\par
\xI{sym25} \xV{1} \xR  {2A00}  {2AFF} \xN{Supplemental Mathematical Operators}\par
\xI{sym26} \xV{1} \xR  {2B00}  {2BFF} \xN{Miscellaneous Symbols and Arrows}\par
\xI{glag}  \xV{1} \xR  {2C00}  {2C5F} \xN{Glagolitic}\par
\xI{latnC} \xV{1} \xR  {2C60}  {2C7F} \xN{Latin Extended-C}\par
\xI{copt}  \xV{1} \xR  {2C80}  {2CFF} \xN{Coptic}\par
\xI{geor1} \xV{1} \xR  {2D00}  {2D2F} \xN{Georgian Supplement}\par
\xI{tfng}  \xV{1} \xR  {2D30}  {2D7F} \xN{Tifinagh}\par
\xI{ethi2} \xV{1} \xR  {2D80}  {2DDF} \xN{Ethiopic Extended}\par
\xI{cyrlA} \xV{2} \xR  {2DE0}  {2DFF} \xN{Cyrillic Extended-A}\par
\xI{sym27} \xV{1} \xR  {2E00}  {2E7F} \xN{Supplemental Punctuation}\par
\xI{cjk01} \xV{1} \xR  {2E80}  {2EFF} \xN{CJK Radicals Supplement}\par
\xI{cjk02} \xV{1} \xR  {2F00}  {2FDF} \xN{Kangxi Radicals}\par
\xI{cjk03} \xV{1} \xR  {2FF0}  {2FFF} \xN{Ideographic Description Characters}\par
\xI{cjk04} \xV{1} \xR  {3000}  {303F} \xN{CJK Symbols and Punctuation}\par
\xI{hira}  \xV{1} \xR  {3040}  {309F} \xN{Hiragana}\par
\xI{kana}  \xV{1} \xR  {30A0}  {30FF} \xN{Katakana}\par
\xI{bopo}  \xV{1} \xR  {3100}  {312F} \xN{Bopomofo}\par
\xI{hang2} \xV{1} \xR  {3130}  {318F} \xN{Hangul Compatibility Jamo}\par
\xI{cjk05} \xV{1} \xR  {3190}  {319F} \xN{Kanbun}\par
\xI{bopo1} \xV{1} \xR  {31A0}  {31BF} \xN{Bopomofo Extended}\par
\xI{cjk06} \xV{1} \xR  {31C0}  {31EF} \xN{CJK Strokes}\par
\xI{kana1} \xV{1} \xR  {31F0}  {31FF} \xN{Katakana Phonetic Extensions}\par
\xI{cjk07} \xV{1} \xR  {3200}  {32FF} \xN{Enclosed CJK Letters and Months}\par
\xI{cjk08} \xV{1} \xR  {3300}  {33FF} \xN{CJK Compatibility}\par
\xI{haniA} \xV{1} \xR  {3400}  {4DBF} \xN{CJK Unified Ideographs Extension A}\par
\xI{sym28} \xV{1} \xR  {4DC0}  {4DFF} \xN{Yijing Hexagram Symbols}\par
\xI{hani}  \xV{1} \xR  {4E00}  {9FFF} \xN{CJK Unified Ideographs}\par
\xI{yiii}  \xV{1} \xR  {A000}  {A48F} \xN{Yi Syllables}\par
\xI{yiii1} \xV{1} \xR  {A490}  {A4CF} \xN{Yi Radicals}\par
\xI{lisu}  \xV{2} \xR  {A4D0}  {A4FF} \xN{Lisu}\par
\xI{vaii}  \xV{2} \xR  {A500}  {A63F} \xN{Vai}\par
\xI{cyrlB} \xV{2} \xR  {A640}  {A69F} \xN{Cyrillic Extended-B}\par
\xI{bamu}  \xV{2} \xR  {A6A0}  {A6FF} \xN{Bamum}\par
\xI{sym29} \xV{1} \xR  {A700}  {A71F} \xN{Modifier Tone Letters}\par
\xI{latnD} \xV{1} \xR  {A720}  {A7FF} \xN{Latin Extended-D}\par
\xI{sylo}  \xV{1} \xR  {A800}  {A82F} \xN{Syloti Nagri}\par
\xI{sym39} \xV{2} \xR  {A830}  {A83F} \xN{Common Indic Number Forms}\par
\xI{phag}  \xV{1} \xR  {A840}  {A87F} \xN{Phags-pa}\par
\xI{saur}  \xV{2} \xR  {A880}  {A8DF} \xN{Saurashtra}\par
\xI{deva1} \xV{2} \xR  {A8E0}  {A8FF} \xN{Devanagari Extended}\par
\xI{kali}  \xV{2} \xR  {A900}  {A92F} \xN{Kayah Li}\par
\xI{rjng}  \xV{2} \xR  {A930}  {A95F} \xN{Rejang}\par
\xI{hangA} \xV{2} \xR  {A960}  {A97F} \xN{Hangul Jamo Extended-A}\par
\xI{java}  \xV{2} \xR  {A980}  {A9DF} \xN{Javanese}\par
\xI{mymrB} \xV{2} \xR  {A9E0}  {A9FF} \xN{Myanmar Extended-B}\par
\xI{cham}  \xV{2} \xR  {AA00}  {AA5F} \xN{Cham}\par
\xI{mymrA} \xV{2} \xR  {AA60}  {AA7F} \xN{Myanmar Extended-A}\par
\xI{tavt}  \xV{2} \xR  {AA80}  {AADF} \xN{Tai Viet}\par
\xI{mtei1} \xV{2} \xR  {AAE0}  {AAFF} \xN{Meetei Mayek Extensions}\par
\xI{ethiA} \xV{2} \xR  {AB00}  {AB2F} \xN{Ethiopic Extended-A}\par
\xI{latnE} \xV{2} \xR  {AB30}  {AB6F} \xN{Latin Extended-E}\par
\xI{cher1} \xV{2} \xR  {AB70}  {ABBF} \xN{Cherokee Supplement}\par
\xI{mtei}  \xV{2} \xR  {ABC0}  {ABFF} \xN{Meetei Mayek}\par
\xI{hang}  \xV{1} \xR  {AC00}  {D7AF} \xN{Hangul Syllables}\par
\xI{hangB} \xV{2} \xR  {D7B0}  {D7FF} \xN{Hangul Jamo Extended-B}\par
\xI{spc01} \xV{1} \xR  {D800}  {DB7F} \xN{High Surrogates}\par
\xI{spc02} \xV{1} \xR  {DB80}  {DBFF} \xN{High Private Use Surrogates}\par
\xI{spc03} \xV{1} \xR  {DC00}  {DFFF} \xN{Low Surrogates}\par
\xI{spc04} \xV{1} \xR  {E000}  {F8FF} \xN{Private Use Area}\par
\xI{hani1} \xV{1} \xR  {F900}  {FAFF} \xN{CJK Compatibility Ideographs}\par
\xI{latn6} \xV{1} \xR  {FB00}  {FB4F} \xN{Alphabetic Presentation Forms}\par
\xI{arab2} \xV{1} \xR  {FB50}  {FDFF} \xN{Arabic Presentation Forms-A}\par
\xI{spc05} \xV{1} \xR  {FE00}  {FE0F} \xN{Variation Selectors}\par
\xI{cjk09} \xV{1} \xR  {FE10}  {FE1F} \xN{Vertical Forms}\par
\xI{sym30} \xV{1} \xR  {FE20}  {FE2F} \xN{Combining Half Marks}\par
\xI{cjk10} \xV{1} \xR  {FE30}  {FE4F} \xN{CJK Compatibility Forms}\par
\xI{cjk11} \xV{1} \xR  {FE50}  {FE6F} \xN{Small Form Variants}\par
\xI{arab3} \xV{1} \xR  {FE70}  {FEFF} \xN{Arabic Presentation Forms-B}\par
\xI{cjk12} \xV{1} \xR  {FF00}  {FFEF} \xN{Halfwidth and Fullwidth Forms}\par
\xI{spc06} \xV{1} \xR  {FFF0}  {FFFF} \xN{Specials}\par
\xI{linb}  \xV{1} \xR {10000} {1007F} \xN{Linear B Syllabary}\par
\xI{linb1} \xV{1} \xR {10080} {100FF} \xN{Linear B Ideograms}\par
\xI{sym31} \xV{1} \xR {10100} {1013F} \xN{Aegean Numbers}\par
\xI{grek2} \xV{1} \xR {10140} {1018F} \xN{Ancient Greek Numbers}\par
\xI{sym40} \xV{2} \xR {10190} {101CF} \xN{Ancient Symbols}\par
\xI{sym41} \xV{2} \xR {101D0} {101FF} \xN{Phaistos Disc}\par
\xI{lyci}  \xV{2} \xR {10280} {1029F} \xN{Lycian}\par
\xI{cari}  \xV{2} \xR {102A0} {102DF} \xN{Carian}\par
\xI{copt1} \xV{2} \xR {102E0} {102FF} \xN{Coptic Epact Numbers}\par
\xI{ital}  \xV{1} \xR {10300} {1032F} \xN{Old Italic}\par
\xI{goth}  \xV{1} \xR {10330} {1034F} \xN{Gothic}\par
\xI{perm}  \xV{2} \xR {10350} {1037F} \xN{Old Permic}\par
\xI{ugar}  \xV{1} \xR {10380} {1039F} \xN{Ugaritic}\par
\xI{xpeo}  \xV{1} \xR {103A0} {103DF} \xN{Old Persian}\par
\xI{dsrt}  \xV{1} \xR {10400} {1044F} \xN{Deseret}\par
\xI{shaw}  \xV{1} \xR {10450} {1047F} \xN{Shavian}\par
\xI{osma}  \xV{1} \xR {10480} {104AF} \xN{Osmanya}\par
\xI{osge}  \xV{2} \xR {104B0} {104FF} \xN{Osage}\par
\xI{elba}  \xV{2} \xR {10500} {1052F} \xN{Elbasan}\par
\xI{aghb}  \xV{2} \xR {10530} {1056F} \xN{Caucasian Albanian}\par
\xI{lina}  \xV{2} \xR {10600} {1077F} \xN{Linear A}\par
\xI{cprt}  \xV{1} \xR {10800} {1083F} \xN{Cypriot Syllabary}\par
\xI{armi}  \xV{2} \xR {10840} {1085F} \xN{Imperial Aramaic}\par
\xI{palm}  \xV{2} \xR {10860} {1087F} \xN{Palmyrene}\par
\xI{nbat}  \xV{2} \xR {10880} {108AF} \xN{Nabataean}\par
\xI{hatr}  \xV{2} \xR {108E0} {108FF} \xN{Hatran}\par
\xI{phnx}  \xV{1} \xR {10900} {1091F} \xN{Phoenician}\par
\xI{lydi}  \xV{2} \xR {10920} {1093F} \xN{Lydian}\par
\xI{mero}  \xV{2} \xR {10980} {1099F} \xN{Meroitic Hieroglyphs}\par
\xI{merc}  \xV{2} \xR {109A0} {109FF} \xN{Meroitic Cursive}\par
\xI{khar}  \xV{1} \xR {10A00} {10A5F} \xN{Kharoshthi}\par
\xI{sarb}  \xV{2} \xR {10A60} {10A7F} \xN{Old South Arabian}\par
\xI{narb}  \xV{2} \xR {10A80} {10A9F} \xN{Old North Arabian}\par
\xI{mani}  \xV{2} \xR {10AC0} {10AFF} \xN{Manichaean}\par
\xI{avst}  \xV{2} \xR {10B00} {10B3F} \xN{Avestan}\par
\xI{prti}  \xV{2} \xR {10B40} {10B5F} \xN{Inscriptional Parthian}\par
\xI{phli}  \xV{2} \xR {10B60} {10B7F} \xN{Inscriptional Pahlavi}\par
\xI{phlp}  \xV{2} \xR {10B80} {10BAF} \xN{Psalter Pahlavi}\par
\xI{orkh}  \xV{2} \xR {10C00} {10C4F} \xN{Old Turkic}\par
\xI{hung}  \xV{2} \xR {10C80} {10CFF} \xN{Old Hungarian}\par
\xI{rohg}  \xV{4} \xR {10D00} {10D3F} \xN{Hanifi Rohingya}\par
\xI{sym42} \xV{2} \xR {10E60} {10E7F} \xN{Rumi Numeral Symbols}\par
\xI{yezi}  \xV{4} \xR {10E80} {10EBF} \xN{Yezidi}\par
\xI{sogo}  \xV{4} \xR {10F00} {10F2F} \xN{Old Sogdian}\par
\xI{sogd}  \xV{4} \xR {10F30} {10F6F} \xN{Sogdian}\par
\xI{chrs}  \xV{4} \xR {10FB0} {10FDF} \xN{Chorasmian}\par
\xI{elym}  \xV{4} \xR {10FE0} {10FFF} \xN{Elymaic}\par
\xI{brah}  \xV{2} \xR {11000} {1107F} \xN{Brahmi}\par
\xI{kthi}  \xV{2} \xR {11080} {110CF} \xN{Kaithi}\par
\xI{sora}  \xV{2} \xR {110D0} {110FF} \xN{Sora Sompeng}\par
\xI{cakm}  \xV{2} \xR {11100} {1114F} \xN{Chakma}\par
\xI{mahj}  \xV{2} \xR {11150} {1117F} \xN{Mahajani}\par
\xI{shrd}  \xV{2} \xR {11180} {111DF} \xN{Sharada}\par
\xI{sinh1} \xV{2} \xR {111E0} {111FF} \xN{Sinhala Archaic Numbers}\par
\xI{khoj}  \xV{2} \xR {11200} {1124F} \xN{Khojki}\par
\xI{mult}  \xV{2} \xR {11280} {112AF} \xN{Multani}\par
\xI{sind}  \xV{2} \xR {112B0} {112FF} \xN{Khudawadi}\par
\xI{gran}  \xV{2} \xR {11300} {1137F} \xN{Grantha}\par
\xI{newa}  \xV{2} \xR {11400} {1147F} \xN{Newa}\par
\xI{tirh}  \xV{2} \xR {11480} {114DF} \xN{Tirhuta}\par
\xI{sidd}  \xV{2} \xR {11580} {115FF} \xN{Siddham}\par
\xI{modi}  \xV{2} \xR {11600} {1165F} \xN{Modi}\par
\xI{mong1} \xV{2} \xR {11660} {1167F} \xN{Mongolian Supplement}\par
\xI{takr}  \xV{2} \xR {11680} {116CF} \xN{Takri}\par
\xI{ahom}  \xV{2} \xR {11700} {1174F} \xN{Ahom}\par
\xI{dogr}  \xV{4} \xR {11800} {1184F} \xN{Dogra}\par
\xI{wara}  \xV{2} \xR {118A0} {118FF} \xN{Warang Citi}\par
\xI{diak}  \xV{4} \xR {11900} {1195F} \xN{Dives Akuru}\par
\xI{nand}  \xV{4} \xR {119A0} {119FF} \xN{Nandinagari}\par
\xI{zanb}  \xV{3} \xR {11A00} {11A4F} \xN{Zanabazar Square}\par
\xI{soyo}  \xV{3} \xR {11A50} {11AAF} \xN{Soyombo}\par
\xI{pauc}  \xV{2} \xR {11AC0} {11AFF} \xN{Pau Cin Hau}\par
\xI{bhks}  \xV{2} \xR {11C00} {11C6F} \xN{Bhaiksuki}\par
\xI{marc}  \xV{2} \xR {11C70} {11CBF} \xN{Marchen}\par
\xI{gonm}  \xV{3} \xR {11D00} {11D5F} \xN{Masaram Gondi}\par
\xI{gong}  \xV{4} \xR {11D60} {11DAF} \xN{Gunjala Gondi}\par
\xI{maka}  \xV{4} \xR {11EE0} {11EFF} \xN{Makasar}\par
\xI{lisu1} \xV{4} \xR {11FB0} {11FBF} \xN{Lisu Supplement}\par
\xI{taml1} \xV{4} \xR {11FC0} {11FFF} \xN{Tamil Supplement}\par
\xI{xsux}  \xV{1} \xR {12000} {123FF} \xN{Cuneiform}\par
\xI{xsux1} \xV{1} \xR {12400} {1247F} \xN{Cuneiform Numbers and Punctuation}\par
\xI{xsux2} \xV{2} \xR {12480} {1254F} \xN{Early Dynastic Cuneiform}\par
\xI{egyp}  \xV{2} \xR {13000} {1342F} \xN{Egyptian Hieroglyphs}\par
\xI{egyp1} \xV{4} \xR {13430} {1343F} \xN{Egyptian Hieroglyph Format Controls}\par
\xI{hluw}  \xV{2} \xR {14400} {1467F} \xN{Anatolian Hieroglyphs}\par
\xI{bamu1} \xV{2} \xR {16800} {16A3F} \xN{Bamum Supplement}\par
\xI{mroo}  \xV{2} \xR {16A40} {16A6F} \xN{Mro}\par
\xI{bass}  \xV{2} \xR {16AD0} {16AFF} \xN{Bassa Vah}\par
\xI{hmng}  \xV{2} \xR {16B00} {16B8F} \xN{Pahawh Hmong}\par
\xI{medf}  \xV{4} \xR {16E40} {16E9F} \xN{Medefaidrin}\par
\xI{plrd}  \xV{2} \xR {16F00} {16F9F} \xN{Miao}\par
\xI{cjk14} \xV{2} \xR {16FE0} {16FFF} \xN{Ideographic Symbols and Punctuation}\par
\xI{tang}  \xV{2} \xR {17000} {187FF} \xN{Tangut}\par
\xI{tang1} \xV{2} \xR {18800} {18AFF} \xN{Tangut Components}\par
\xI{kits}  \xV{4} \xR {18B00} {18CFF} \xN{Khitan Small Script}\par
\xI{tang2} \xV{4} \xR {18D00} {18D7F} \xN{Tangut Supplement}\par
\xI{kana2} \xV{2} \xR {1B000} {1B0FF} \xN{Kana Supplement}\par
\xI{kanaA} \xV{3} \xR {1B100} {1B12F} \xN{Kana Extended-A}\par
\xI{kana3} \xV{4} \xR {1B130} {1B16F} \xN{Small Kana Extension}\par
\xI{nshu}  \xV{3} \xR {1B170} {1B2FF} \xN{Nushu}\par
\xI{dupl}  \xV{2} \xR {1BC00} {1BC9F} \xN{Duployan}\par
\xI{sym53} \xV{2} \xR {1BCA0} {1BCAF} \xN{Shorthand Format Controls}\par
\xI{sym32} \xV{1} \xR {1D000} {1D0FF} \xN{Byzantine Musical Symbols}\par
\xI{sym33} \xV{1} \xR {1D100} {1D1FF} \xN{Musical Symbols}\par
\xI{sym34} \xV{1} \xR {1D200} {1D24F} \xN{Ancient Greek Musical Notation}\par
\xI{sym58} \xV{4} \xR {1D2E0} {1D2FF} \xN{Mayan Numerals}\par
\xI{sym35} \xV{1} \xR {1D300} {1D35F} \xN{Tai Xuan Jing Symbols}\par
\xI{sym36} \xV{1} \xR {1D360} {1D37F} \xN{Counting Rod Numerals}\par
\xI{sym37} \xV{1} \xR {1D400} {1D7FF} \xN{Mathematical Alphanumeric Symbols}\par
\xI{sgnw}  \xV{2} \xR {1D800} {1DAAF} \xN{Sutton SignWriting}\par
\xI{glag1} \xV{2} \xR {1E000} {1E02F} \xN{Glagolitic Supplement}\par
\xI{hmnp}  \xV{4} \xR {1E100} {1E14F} \xN{Nyiakeng Puachue Hmong}\par
\xI{wcho}  \xV{4} \xR {1E2C0} {1E2FF} \xN{Wancho}\par
\xI{mend}  \xV{2} \xR {1E800} {1E8DF} \xN{Mende Kikakui}\par
\xI{adlm}  \xV{2} \xR {1E900} {1E95F} \xN{Adlam}\par
\xI{sym59} \xV{4} \xR {1EC70} {1ECBF} \xN{Indic Siyaq Numbers}\par
\xI{sym61} \xV{4} \xR {1ED00} {1ED4F} \xN{Ottoman Siyaq Numbers}\par
\xI{sym51} \xV{2} \xR {1EE00} {1EEFF} \xN{Arabic Mathematical Alphabetic Symbols}\par
\xI{sym43} \xV{2} \xR {1F000} {1F02F} \xN{Mahjong Tiles}\par
\xI{sym44} \xV{2} \xR {1F030} {1F09F} \xN{Domino Tiles}\par
\xI{sym46} \xV{2} \xR {1F0A0} {1F0FF} \xN{Playing Cards}\par
\xI{sym45} \xV{2} \xR {1F100} {1F1FF} \xN{Enclosed Alphanumeric Supplement}\par
\xI{cjk13} \xV{2} \xR {1F200} {1F2FF} \xN{Enclosed Ideographic Supplement}\par
\xI{sym47} \xV{2} \xR {1F300} {1F5FF} \xN{Miscellaneous Symbols and Pictographs}\par
\xI{sym48} \xV{2} \xR {1F600} {1F64F} \xN{Emoticons}\par
\xI{sym54} \xV{2} \xR {1F650} {1F67F} \xN{Ornamental Dingbats}\par
\xI{sym49} \xV{2} \xR {1F680} {1F6FF} \xN{Transport and Map Symbols}\par
\xI{sym50} \xV{2} \xR {1F700} {1F77F} \xN{Alchemical Symbols}\par
\xI{sym55} \xV{2} \xR {1F780} {1F7FF} \xN{Geometric Shapes Extended}\par
\xI{sym56} \xV{2} \xR {1F800} {1F8FF} \xN{Supplemental Arrows-C}\par
\xI{sym57} \xV{2} \xR {1F900} {1F9FF} \xN{Supplemental Symbols and Pictographs}\par
\xI{sym60} \xV{4} \xR {1FA00} {1FA6F} \xN{Chess Symbols}\par
\xI{sym62} \xV{4} \xR {1FA70} {1FAFF} \xN{Symbols and Pictographs Extended-A}\par
\xI{sym63} \xV{4} \xR {1FB00} {1FBFF} \xN{Symbols for Legacy Computing}\par
\xI{haniB} \xV{1} \xR {20000} {2A6DF} \xN{CJK Unified Ideographs Extension B}\par
\xI{haniC} \xV{2} \xR {2A700} {2B73F} \xN{CJK Unified Ideographs Extension C}\par
\xI{haniD} \xV{2} \xR {2B740} {2B81F} \xN{CJK Unified Ideographs Extension D}\par
\xI{haniE} \xV{2} \xR {2B820} {2CEAF} \xN{CJK Unified Ideographs Extension E}\par
\xI{haniF} \xV{3} \xR {2CEB0} {2EBEF} \xN{CJK Unified Ideographs Extension F}\par
\xI{hani2} \xV{1} \xR {2F800} {2FA1F} \xN{CJK Compatibility Ideographs Supplement}\par
\xI{haniG} \xV{4} \xR {30000} {3134F} \xN{CJK Unified Ideographs Extension G}\par
\xI{spc07} \xV{1} \xR {E0000} {E007F} \xN{Tags}\par
\xI{spc08} \xV{1} \xR {E0100} {E01EF} \xN{Variation Selectors Supplement}\par
\xI{spc09} \xV{1} \xR {F0000} {FFFFF} \xN{Supplementary Private Use Area-A}\par
\xI{spc10} \xV{1} \xR{100000}{10FFFF} \xN{Supplementary Private Use Area-B}\par
%/////////////////////////////
\end{quote}

\paragraph{ブロックIDの命名規則\<(参考)}
\mbox{}
\begin{itemize}
\item Unicodeブロック名にスクリプト(用字系)の名前が含まれるものは、
  それに対するISO 15924のコード(4文字)を用いた。
  単一のスクリプトのブロックが複数ある場合は、
  名前が“Extended-A,B,……”のものは|A|,|B|,……を、
  それ以外のものは|1|,|2|,……
  (一部符号値順でない)を末尾に付加した。
  \begin{quote}
  “Arabic”→ |arab|; “Latin Extended-C”→ |latnC|
  \end{quote}
  なお、“Hiragana”のコードは |hira| だが“Katakana”は |kana| で
  あることに注意。
\item それ以外は、CJK関係(|cjk|)、特殊用途(|spc|)、
  それ以外(|sym|)の3種類に恣意的に分類して、
  後ろに2桁の番号を付けた(|cjk12| など)。
\end{itemize}

%-------------------
\subsection{どのブロックが使用できるか}

以下では、各モードCCVにおいてサポートされるブロックの全容に
ついて説明する。

\paragraph{モードCCVが1の場合}
CCV~1ではUnicodeブロックの再分割が存在しないので、
サポートされるブロックの全体は以下のようになる。

\begin{itemize}
\item 前掲の通常ブロックの表で「CCV」欄が1の
  ブロック全て。
\end{itemize}

\paragraph{モードCCVが2の場合}

CCV~2では |cjk12|“Halfwidth and Fullwidth Forms”のブロックが
次の3つの下位ブロックに分割されている。

\begin{quotation}
  \newcommand\xE[2]{\noindent
    \makebox[4em][l]{\texttt{#1}}\textsl{#2}\par}
  \xE{cjk1a}{Halfwidth and Fullwidth Forms/Other}
  \xE{cjk1b}{Halfwidth and Fullwidth Forms/Latin}
  \xE{cjk1c}{Halfwidth and Fullwidth Forms/Kana}
\end{quotation}

\begin{itemize}
\item |cjk1b|\Means ASCII 英数字の全角互換形。\par
  |U+FF10|~|U+FF19|,|U+FF21|~|U+FF3A|,|U+FF41|~|U+FF5A|
\item |cjk1c|\Means カタカナの半角互換形。
  句読点等の記号は含まない。\par
  |U+FF66|~|U+FF6F|,|U+FF71|~|U+FF9D|
\item |cjk1a|\Means |cjk12| から |cjk1b|、|cjk1c| を除いた残り。
\end{itemize}

従って、サポートされるブロックの全体は以下のようになる。

\begin{itemize}
\item 前掲の通常ブロックの表で「CCV」欄が2以下のブロック全て。
  \Note |cjk12| のブロックも使用可能で、これは
  “Halfwidth and Fullwidth Forms”の全体を表す。
\item |cjk12| の下位ブロック\Means
  |cjk1a|、|cjk1b|、|cjk1c| の3つ。
\end{itemize}


\paragraph{モードCCVが3の場合}

CCV~3では |latn1|“Latin-1 Supplement”のブロックが
次の2つの下位ブロックに分割されている。

\begin{quotation}
  \newcommand\xE[2]{\noindent
    \makebox[4em][l]{\texttt{#1}}\textsl{#2}\par}
  \xE{latnx}{Latin-1 Supplement/Other}
  \xE{latny}{Latin-1 Supplement/Latin}
\end{quotation}

\begin{itemize}
\item |latny|\Means ラテン文字であるもの。\par
  |U+FF10|~|U+FF19|,|U+FF21|~|U+FF3A|,|U+FF41|~|U+FF5A|
\item |latnx|\Means |latn1| から |latny| を除いた残り。
\end{itemize}

従って、サポートされるブロックの全体は以下のようになる。

\begin{itemize}
\item 前掲の通常ブロックの表にあるブロック全て。
  \Note |cjk12|、|latn1| のブロックも使用可能。
\item |cjk12| の下位ブロック\Means
  |cjk1a|、|cjk1b|、|cjk1c| の3つ。
\item |latn1| の下位ブロック\Means
  |latnx|、|latny| の2つ。
\end{itemize}

%===========================================================
\section{各モードにおける和文カテゴリの設定}
\label{sec:Values}

(やっぱりあとで書く)

\end{document}

■ 各モードでの kcatcode の値

    モード CCV が 1 の場合。

    記号    fc  pc pcv pnc JIS CID  名称
    latn    X   -   -   -       *   Basic Latin
    latn1   O   -   -   X   *   *   Latin-1 Supplement
    latnA   O   -   -   X       *   Latin Extended-A
    latnB   O   -   -   X       *   Latin Extended-B
    latn2   O   -   -   X       *   IPA Extensions
    sym01   O   -   -   X       *   Spacing Modifier Letters
    sym02   O   -   -   X       *   Combining Diacritical Marks
    grek    O   -   X   -   *   *   Greek and Coptic
    cyrl    O   -   X   -   *   *   Cyrillic
    hang1   H   -   -   -       +   Hangul Jamo
    latn3   O   -   -   X       *   Latin Extended Additional
    grek1   O   -   X   -       *   Greek Extended
    sym04   O   -   -   X   *   *   General Punctuation
    sym05   O   -   -   X       *   Superscripts and Subscripts
    sym06   O   -   -   X       *   Currency Symbols
    sym07   O   -   -   X       *   Combining Diacritical Marks for Symbols
    sym08   O   -   -   X   *   *   Letterlike Symbols
    sym09   O   -   -   X       *   Number Forms
    sym10   O   -   -   X   *   *   Arrows
    sym11   O   -   -   X   *   *   Mathematical Operators
    sym12   O   -   -   X   *   *   Miscellaneous Technical
    sym13   O   -   -   X       *   Control Pictures
    sym15   O   -   -   -       *   Enclosed Alphanumerics
    sym16   O   -   -   X   *   *   Box Drawing
    sym17   O   -   -   X       *   Block Elements
    sym18   O   -   -   X   *   *   Geometric Shapes
    sym19   O   -   -   X   *   *   Miscellaneous Symbols
    sym20   O   -   -   X       *   Dingbats
    sym23   O   -   -   X       *   Supplemental Arrows-B
    sym24   O   -   -   X       *   Miscellaneous Mathematical Symbols-B
    sym26   O   -   -   X       *   Miscellaneous Symbols and Arrows
    cjk01   I   -   -   -       *   CJK Radicals Supplement
    cjk02   I   -   -   -       *   Kangxi Radicals
    cjk03   I   -   -   -       +   Ideographic Description Characters
    cjk04   O   -   -   -   *   *   CJK Symbols and Punctuation
    hira    K   -   -   -   *   *   Hiragana
    kana    K   -   -   -   *   *   Katakana
    bopo    I   -   -   -       +   Bopomofo
    hang2   H   -   -   -       +   Hangul Compatibility Jamo
    cjk05   I   -   -   -       *   Kanbun
    bopo1   I   -   -   -       +   Bopomofo Extended
    cjk06   I   -   -   -       +   CJK Strokes
    kana1   K   -   -   -       *   Katakana Phonetic Extensions
    cjk07   O   -   -   -       *   Enclosed CJK Letters and Months
    cjk08   O   -   -   -       *   CJK Compatibility
    haniA   I   -   -   -       *   CJK Unified Ideographs Extension A
    hani    I   -   -   -   *   *   CJK Unified Ideographs
    yiii    O   -   -   -       +   Yi Syllables
    yiii1   O   -   -   -       +   Yi Radicals
    hangA   H   -   -   -           Hangul Jamo Extended-B
    hang    H   -   -   -       +   Hangul Syllables
    hangB   H   -   -   -           Hangul Jamo Extended-B
    spc04   O   -   -   X       *   Private Use Area
    hani1   I   -   -   -       *   CJK Compatibility Ideographs
    latn6   O   -   -   X       *   Alphabetic Presentation Forms
    cjk09   O   -   -   -       *   Vertical Forms
    cjk10   O   -   -   -       *   CJK Compatibility Forms
    cjk11   O   -   -   -       +   Small Form Variants
    cjk12   O   -   -   -   *   *   Halfwidth and Fullwidth Forms
    cjk13   O   -   -   -           Enclosed Ideographic Supplement
    haniB   I   -   -   -       *   CJK Unified Ideographs Extension B
    haniC   I   -   -   -           CJK Unified Ideographs Extension C
    hani2   I   -   -   -       *   CJK Compatibility Ideographs Supplement
            O   X   -   -           (その他のブロック)
    all, prc, pc1, pnc の欄はそれぞれ forcecjk, prefercjk, prefercjkvar,
    prefernoncjk モードでの kcatcode の値。値の意味: X=noncjk(15),
    I=kanji(16), K=kana(17), O=cjk(18), H=hangul(19)。JIS 欄の * はその
    ブロック内の文字に JIS X 0208 に含まれるものがあることを示す。また CID
    欄の * は Adobe-Japan1 に、+ は Adobe-GB1, Adobe-CNS1, Adobe-Korea1 に
    含まれるものがあることを示す。

    モード CCV が 2 の場合、cjk12 の再分割について以下のようになる。

    記号    fc  pc pcv pnc JIS CID
    cjk1a   O   -   -   -   *   *   cjk12 で cjk1b, cjk1c 以外
    cjk1b   K   -   -   -   *   *   ASCII 英数字の全角互換形
    cjk1c   K   -   -   -   *   *   カタカナの半角互換形(記号は含まず)

    ※ upTeX の CCV が 2 でモード CCV 指定が 1 の場合は cjk1a~cjk1c の
    設定値は cjk12 のものに従う。