summaryrefslogtreecommitdiff
path: root/language/chinese/CJK/cjk-4.8.5/doc/CJK.txt
blob: fe1660bbc81aa6e9ee79b606e451e9d2d1a114d8 (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
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273

This is the LaTeX2e style package CJK Version 4.8.5 (16-Oct-2021)
=================================================================

It is freely distributable under the GNU Public License.


        **************************************************
        *                                                *
        * You need LaTeX 2e version 2001/06/01 or newer! *
        *                                                *
        **************************************************


Usage
-----

Use CJK.sty as a package, e.g.,

    \documentclass{article}
    \usepackage[<option>]{CJK}            .

See section `Caveats' below for the available options. Normally, you don't
need them.

Two new environments,

    \begin{CJK}[<fontencoding>]{<encoding>}{<family>}
    ...
    \end{CJK}

and

    \begin{CJK*}[<fontencoding>]{<encoding>}{<family>}
    ...
    \end{CJK*}

are defined. The parameters have the following meaning:

    <encoding>      These character sets and encodings are currently
                    implemented in CJK.enc:

                        Bg5  (For traditional Chinese. Mainly used in Taiwan.
                              Character set: Big 5.
                              Encoding: Big 5 without UDA2 and UDA3.)
                        Bg5+ (For traditional Chinese. Obsolete.
                              Character set: Big 5+.
                              Encoding: GBK.)

                        HK   (For traditional Chinese. Used in Hong Kong.
                              Character set: Big 5 + HKSCS-2004.
                              Encoding: Full Big 5.)

                        GB   (For simplified Chinese. Mainly used in
                              PR China. Also called `EUC-CN'.
                              Character set: GB 2312-1980.
                              Encoding: EUC.)
                        GBt  (For traditional Chinese. Rarely used in
                              PR China.
                              Character set: GB/T 12345-1990.
                              Encoding: EUC.)
                        GBK  (For Chinese. An extension of GB 2312.
                              Character set: GBK.
                              Encoding: GBK.)

                        JIS  (For Japanese.
                              Character set: JIS X 0208:1997.
                              Encoding: EUC.)
                        JIS2 (Japanese supplementary character set,
                              Character set: JIS X 0212-1990.
                              Encoding: EUC.)
                        SJIS (For Japanese. Used mainly on PCs. Also known
                              as `MS Kanji'.
                              Character sets:
                                1-byte characters from JIS X 0201-1997
                                (half-width katakana),
                                2-byte characters from JIS X 0208:1997.
                              Encoding: SJIS.)

                        KS   (For Korean. Also called `EUC-KR'.
                              Character set: KS X 1001:1992 = KS C 5601-1992.
                              Encoding: EUC.)

                        UTF8 (Unicode Transformation format 8, also called
                              `UTF-2' or `FSS-UTF'.
                              Character set: Unicode.
                              Encoding: UTF-8.)

                        CNS1 (Chinese National Standard Plane 1,
                              Character set: CNS 11643-1992 plane 1.
                              Encoding: EUC.)
                        CNS2
                        ...
                        CNS7 (Character set: CNS 11643-1992 plane 2 - 7.
                              Encoding: EUC.)

                        CEFX (reserved CEF character set for IRIZ.
                              Encoding: EUC.)
                        CEFY (private CEF character set.
                              Encoding: EUC.)

                    Note: The value `HK' can be also used for complete Big 5
                          support which needs user-defined areas 2 and 3
                          (UDA2 and UDA3), located in the ranges
                          0x8E40-0xA0FE and 0x8140-0x8DFE, respectively.

                          For details on HKSCS-2004 see

                            http://www.info.gov.hk/digital21/eng
                                   /hkscs/download/e_sect3_2004.pdf


                    These encodings (except Big 5, Big 5+, HK, GBK, SJIS, and
                    UTF-8) are simplified EUC (Extended Unix Code) character
                    sets without single shifts. The used character set slot
                    G1 stands for two-byte encodings with byte values taken
                    from the GR (Graphic Right) character range 0xA1-0xFE
                    (as defined in ISO 2022).

                    Note that CNS1 and CNS2 contain almost the same
                    characters in the same order as Big 5 (but in EUC).

                    For CEF and CNS character sets see CEF.txt also.

                    Big 5+ and GBK have exactly the same encoding layout
                    (but their origins differ).

                    Additionally, the following encodings *with* single
                    shifts are implemented, using some of the above defined
                    character sets:

                        EUC-JP (for Japanese.
                                Character sets:
                                  Half-width katakana (from JIS X 0201-1997),
                                  JIS X 0208:1997,
                                  JIS X 0212-1992.)

                        EUC-TW (for traditional Chinese.
                                Character sets:
                                  CNS 11643-1992 planes 1-7.)

                    EUC-JP, EUC-TW, and UTF-8 encodings can't be used in
                    preprocessed mode (see below) because it makes no sense.
                    (To be more precise, UTF-8 sequences with more than two
                    bytes can't be used.)


                    If you use this parameter it is the same as you would
                    have used \CJKenc: Writing e.g.,

                      \begin{CJK}{Bg5}{...}
                      ...

                    is identical to

                      \begin{CJK}{}{...}
                      \CJKenc{Bg5}
                      ...

                    Note: A `character set' is an ordered collection of
                          glyphs. The order of the glyphs is just for
                          defining purposes and for reference.

                          An `encoding' is an ordering scheme to access a
                          character set. LaTeX 2e also uses the term `input
                          encoding'.

                          A character set can have many encodings
                          (cf. JIS X 0208 -> EUC, SJIS).

                          An encoding can be used for many character sets
                          (cf. EUC -> KS X 1001, GB 2312, etc.).

                          Sometimes, the character set has the same name
                          as the encoding (Big 5, Big 5+, GBK).

                          For more details I suggest to read the document
                          cjk.inf from Ken Lunde; it is available from

                            ftp://ftp.ora.com/pub/examples/cjkvinfo/
                                              doc/cjk.inf

                          A really thorough reference is his latest book
                          `CJKV Information Processing' (O'Reilly).

                          Throughout this CJK documentation, `encoding'
                          refers to the valid encoding/character set
                          combinations defined just above.

    <fontencoding>  These font encodings are currently defined: `' (empty;
                    the default), `pmC' (available for Bg5, GB, GBt, JIS,
                    and KS), `dnp' (for JIS and SJIS), `wn' (for JIS), and
                    `HL' (for KS).

                    `Font encoding' means the order of characters in the
                    subfonts itselves. A change of the font encoding neither
                    alters the meaning of a CJK character nor changes the
                    character code in the selected encoding.

                    The font encoding `pmC' is defined for compatibility
                    with the pmC package (which is obsolete). It is not
                    encouraged to use this font encoding because of wasting
                    subfonts. If possible, convert your original CJK bitmap
                    fonts with hbf2gf (see hbf2gf.txt) or other tools to CJK
                    encodings.

                    `dnp' implements the character order of the Dai Nippon
                    Printing fonts and is only available for JIS and SJIS
                    encoding. `wn' (only available for JIS) is the font
                    encoding for watanabe jfonts. There exists a linking
                    package which maps the watanabe jfonts onto the dnp
                    naming scheme (thus you can use the real dnp fonts for
                    printing and the mapped jfonts for previewing). See the
                    documentation files in the `japanese' subdirectory for
                    further details.

                    `HL' allows the use of the new HLaTeX fonts (starting
                    with version 1.0); note that the definition of fonts is
                    rather different compared to HLaTeX. See the section
                    `Korean input' below for a detailed description.

                    You can change the font encoding per encoding with the
                    command \CJKfontenc; the first parameter is the
                    encoding, the second the font encoding.

    <family>        It is impossible to know in advance what fonts are
                    available at your site; look at the example FD (font
                    definition) files how to create or modify appropriate FD
                    files suiting your needs. See fonts.txt also for further
                    hints.

                    If this parameter is empty, the default value given in
                    CJK.enc is selected: `song' for all encodings except KS
                    (which defaults to `mj'). If you use this parameter it
                    is the same as you would have used \CJKfamily; all
                    encodings then use this family:

                      \begin{CJK}{...}{song}
                      ...

                    is identical to

                      \begin{CJK}{...}{}
                      \CJKfamily{song}
                      ...

                    You can change the families per encoding (and font
                    encoding) with the command \CJKencfamily; the first
                    parameter is the encoding, the second the family, the
                    optional argument is the font encoding. This overrides
                    the default value.

                    Note that \CJKfamily or a non-empty `family' parameter
                    of the CJK environment overrides any \CJKencfamily
                    commands. Say `\CJKfamily{}' to enable \CJKencfamily
                    again.


    The CJK* environment swallows unprotected spaces and newlines after a
    CJK character (the usual habit for Chinese and Japanese text), whereas
    CJK does not (for European and Korean text). You can switch between
    these two `modes' with \CJKspace (CJK* -> CJK) and \CJKnospace (CJK ->
    CJK*).

    If you use cjk-enc.el, you don't need to specify a CJK environment. This
    is done automatically. See cjk-enc.txt for details.


This is a typical example:

    \begin{CJK*}{GB}{kai}
      ...
      Chinese simplified text in GB encoding
      ...
    \end{CJK*}


How it works
------------

Asian logographs can't be represented completely with one byte per
character. (At least) two bytes are needed, and the most common encoding
schemes (UTF-8, GB, Big 5, JIS, KS, etc.) have a certain range for the first
byte (usually 0xA1-0xFE or a part of it) which signals that this and the
next byte represent an Asian logograph. This means almost all plain ASCII
characters (characters between 0x00 and 0x7E) are left undisturbed, and the
remaining character codes (0x80-0xFF) are assigned to a CJK encoding,
creating a multiple-byte encoding with 1-byte and 2-byte characters (and
even 3-byte and 4-byte characters for UTF-8).

The character 0x7F is reserved also for the CJK package. See the section
`Preprocessors' below.

Encodings like EUC-TW access additional character sets using escape
characters (0x8E and 0x8F) which signals that the next character comes
from another character set (which is `shifted' to the GR range); up to
four bytes are needed for a single character. Example:

  0x8E 0xA3 0xB7 0xCE

    0x8E is a single shift escape character; 0xA3 selects CNS plane 3, and
    0xB7CE is the character code (in GR representation) in this plane.

CJK.sty makes the character codes 0x7F and 0x81-0xFE active inside of the
CJK environment and assigns macros to the active characters which then
select the proper font and character. The real mechanism is a bit more
complex to assure robustness (it was borrowed and modified from LaTeX 2e's
inputenc.sty) and correct handling of punctuation characters.

*   emTeX users: you must activate 8bit input and output while creating the
*   LaTeX2e format file! Do this by using the switches -o and -8 (additional
*   to the iniTeX switch -i).
*
*   Example:
*
*       tex386 -i -o -8 latex.ltx


Some internals
--------------

Internally three levels (bindings, encodings, character macro sets) are
defined:

        active characters
            |
            +--------------> bindings (standard, SJIS, UTF8)
            |
        active character macros
            |
            +--------------> encodings (GB, Big 5, ...) + 
            |                font encodings (none, dnp, wn, pmC, HL)
            |
        subfont selecting macros
            |
            +--------------> character macro sets (standard, Big 5, ...)
            |
        character selecting macros

User-selectable are only the encoding and the font encoding (as explained
above); the other levels are selected by the CJK package.

These levels correspond to the following internal macros:

  \CJK@xxxxBinding (`xxxx.bdg' files):
    Possible values for `xxxx' are: standard, SJIS, UTF8, EUC-JP, and
    EUC-TW.

  \CJK@xxxxEncoding (`xxxx.enc' files):
    Possible values for `xxxx' are: standard, extended, Bg5, SJIS, KS, UTF8,
    pmCsmall, pmCbig, JISdnp, SJISdnp, KSHL, EUC-JP, and EUC-TW.

  \CJK@xxxxChr (`xxxx.chr' files):
    Possible values for `xxxx' are: standard, Bg5, KS, SJIS, UTF8, pmC,
    HLaTeX, EUC-JP, and EUC-TW.

In preprocessed mode (see below), no bindings are used.


And now a more detailed description of the various encodings. Please note
that you should never access these macros directly.

  \CJK@standardEncoding is used for EUC encodings with the first and second
  byte in the range 0xA1-0xFE (GB, GBt, JIS, JIS2, CNS, CEF).

  \CJK@extendedEncoding is used for Big 5+ and GBK encodings. The first byte
  is in the range 0x81-0xFE, the second byte in the range 0x40-0xFE (with a
  gap at 0x7F).

  \CJK@Bg5Encoding is used for Big 5 encoding with the first byte in the
  range 0xA1-0xFE and the second byte in the range 0x40-0xFE (with a gap
  from 0x7F-0xA0).

  \CJK@SJISEncoding is used for SJIS encoding; one-byte characters are in
  the range 0xA1-0xDF, two-byte characters have the first byte in the ranges
  0x81-0x9F and 0xE0-0xEF, the second byte runs from 0x40 to 0xFC except
  0x7F. Since SJIS only squeezes the JIS X 0208 character set into a new
  scheme without changing the ordering, fonts produced by hbf2gf or ttf2pk
  look the same for EUC and SJIS encoding except one-byte SJIS characters.
  For more details see below the section `SJIS encoding'.

  \CJK@KSEncoding is used for the KS X 1001 character set in EUC encoding.
  Two sets of subfonts are defined, one for Hangul syllables and elements,
  and a second for Hanja. For more details see below the section `Korean
  input'.

  \CJK@UTF8Encoding is used for Unicode in UTF-8 encoding. The first byte is
  in the range 0xC0-0xDF for two-byte values, 0xE0-0xEF for three-byte
  values, and 0xF0-0xF4 for four-byte values. The other byte(s) are in the
  range 0x80-0xBF. Note that CJK expects two hexadecimal digits as a running
  number in the font name (as defined in UTF8.enc) instead of two decimal
  digits for subfonts covering characters up to U+FFFF. Subfonts for Unicode
  values greater than 0xFFFF use four hexadecimal digits in the font name.
  Select the option `unicode yes' in the hbf2gf config file if you use
  hbf2gf to transform bitmap fonts in HBF format to PK fonts as used by
  CJK.sty . Three commands (\CJKCJKchar, \CJKhangulchar, and \CJKlatinchar)
  control the handling of intercharacter glue: \CJKCJKchar (the default)
  selects CJK style (using \CJKglue), \CJKhangulchar selects hangul style
  (using \CJKtolerance), and \CJKlatinchar selects none of them. This
  encoding does not work in preprocessed mode.

  \CJK@pmCsmallEncoding and \CJK@pmCbigEncoding can be activated with
  \pmCsmall (this is the default) and \pmCbig inside the CJK environment.
  Note that the original pmC fonts have two character sizes per font (the
  bigger ones with an offset of -128); Bg5pmC encoded fonts cannot contain
  big characters. The names of the fonts in the FD files reflect the
  modifications added by Marc Leisher <mleisher@nmsu.edu> to the original
  poor man's Chinese (pmC) package written by Thomas Ridgeway
  <ridgeway@blackbox.hacc.washington.edu>.

  \CJK@JISdnpEncoding is the JIS X 0208 character set in EUC encoding with
  dnp fonts. The main difference (besides the offsets) is the composition of
  real font names; a dnp font name consists of name stem + subfont name +
  designsize: an example is dmjkata10. Note that the wadalab PS fonts omit
  the designsize part in the font names, thus it is sufficient (and even
  better) to use the `CJK' size functions in FD files instead of the `DNP'
  ones. \CJK@JISwnEncoding is similar to JISdnp encoding but uses Watanabe
  jfonts; \CJK@SJISdnpEncoding maps SJIS onto dnp encoded fonts.

  \CJK@KSHLEncoding finally uses the new fonts of the HLaTeX package for
  Korean; three internal encodings are necessary to represent it. See the
  next section for details.

  \CJK@EUC-TWEncoding and \CJK@EUC-JPEncoding are quite similar to
  \CJK@standardEncoding but implement single shift access additionally. They
  can't be used in preprocessed mode.


Korean input
------------

There is already a package which handles Hangul and Hanja (but no other
CJK character sets): HLaTeX.

To use KS encoding, say

    \begin{CJK}{KS}{}
    ...
    \end{CJK}       .

These font switches are available inside the environment:

    hangul fonts from former hlatex (in the han font packages):

    *   \mj  MyoungJo   (default)
        \gt  Gothic
        \gs  BootGulssi
        \gr  Graphic
        \dr  Dinaru

    hangul fonts from former jhtex (in the han1 font packages):

    *   \hgt Hangul Gothic
    *   \hmj Hangul MyoungJo (MunHwaBu fonts)
    *   \hpg Hangul Pilgi
        \hol Hangul Outline (MyoungJo)


If a font is marked with a star, real bold series are available. All other
bold fonts are defined using poor man's boldface (see below the section
`Poor man's boldface').

See the file INSTALL how to get these fonts. Both `han' and `han1' packages
contain bitmap fonts only (in PK format).

Note that the font switches are abbreviations for \CJKencfamily and not for
\CJKfamily.


For characters with the first byte in the ranges 0xA1-0xAF (except 0xA4) and
0xC9-0xFD (graphic characters, hanja, archaic hangul, etc.) fonts with the
encoding C60 are used. C61 is assigned to hangul fonts (for hangul elements
with the first byte 0xA4 and hangul characters in the range 0xB0-0xC8). This
enables the use of many hangul fonts and perhaps only one or two different
hanja fonts. If you want to use C60 encoding for hangul characters also say
\CJKhanja. The opposite command is \CJKhangul (of course this works only if
you have hangul characters in the C60 font).

Archaic hangul elements (KS X 1001 0xA4D5-0xA4FE) and the character
KS X 1001 0xA4D4 are only accessible if \CJKhanja is active.

You should convert your KS X 1001 hanja fonts using hbf2gf (or ttf2pk) as
described above.


To use HLaTeX fonts, say

  \begin{CJK}[HL]{KS}{}
  ...
  \end{CJK}         .

All HLaTeX fonts are PS fonts; these font switches are available inside the
environment (as defined in HLaTeX 1.0; this differs from older versions):

        \bm     Bom
    *   \dn     Dinaru
    *   \gr     Graphic
  +     \gs     Gungseo
  + *   \gt     Gothic
        \jgt    Jamo Gothic
        \jmj    Jamo Myoungjo
        \jnv    Jamo Novel
        \jsr    Jamo Sora
  + *   \mj     Myoungjo
    *   \pg     Pilgi
        \pga    Pilgia
        \ph     Pen Heulim
        \pn     Pen
  +     \sh     Shinmun Myoungjo
  +     \tz     Typewriter
        \vd     Vada
        \yt     Yetgul

If a font is marked with an asterisk, real bold series are available. All
other fonts are defined using poor man's boldface (see below). Only fonts
marked with a plus sign are available for hanja too; the other font families
are mapped to these six hanja families. For backwards compatibility, \ol and
\sm are defined also; both are now equivalent to \mj.

UN Koaung-Hi <koaunghi@kornet.net>, the author of HLaTeX, defines three
groups of fonts: hangul, hanja, and symbols. The CJK package needs three
internal encodings (C63 for hanja, C64 for symbols, and C65 for hangul) to
represent the font encoding scheme of HLaTeX.

HLaTeX options:

The option `hardbold' has been integrated into the FD files---I consider the
fact whether you have bold series available or not as a fundamental local
font setup decision which should be coded into the FD files and not into the
document. As a consequence you have to change your FD files to emulate the
`softbold' option with CJK's poor man's boldface. Example:

    \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJK * wgtb}{}

should be changed to

    \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJKb * wgt}{\CJKbold} .

and similar font definitions too.

[Well, it is not really necessary to modify the FD files to emulate the
 `softbold' option: just insert the appropriate \DeclareFontShape and/or
 \DeclareFontFamily commands in the preamble of your document.]
 
Finally a warning: Please bear in mind that CJK does not emulate the
behaviour of HLaTeX, it only supports its fonts.


Big 5 encoding
--------------

See below the section `Preprocessors' for the preferred input method using
bg5conv.

The characters `\', `{', and `}' are used as second bytes in the Big 5
encoding. This collides with TeX. If you write Big 5 text mixed with other
encodings (and you don't want/can't use Mule, Emacs or bg5conv), you should
use the Bg5text environment which changes the category codes of these
characters. The command prefix is now the forward slash `/', and the
grouping characters are `(' and `)', respectively.

An example:

            \begin{CJK}{Bg5}{song}
            \begin{Bg5text}
            ...
            /begin(center)
            ...
            /end(center)
            ...
            /end(Bg5text)
            \end{CJK}

To get the `/', `(', and `)' characters, write `//', `/(', and `/)' inside
the Bg5text environment.

This environment is ugly, and some commands like \newcommand don't work in
it. Starting with CJK version 3.0 it is also possible to use different
encodings in preprocessed mode, thus this environment is almost obsolete.

Instead of using the Bg5text environment you can protect the offending
second bytes with a backslash, i.e., `\{', `\}', `\\' (using a non-Chinese
editor). This doesn't increase the readability of the Chinese text, but for
short texts it is perhaps more comfortable. Alas, it doesn't work in page
header commands because the macros `\{', etc., are not expanded.

Be careful not to use any commands inside the Bg5text environment which
write something into an external file (commands like \chapter, etc.).
 
If it is not possible to avoid Big 5 character codes with `\', `{', or `}'
outside of the Bg5text environment (e.g., having Big 5 text in a \chapter or
\section command), you can replace them with the \CJKchar macro manually:

    \section{This is a problematic Big 5 character: \CJKchar{169}{92}}

The parameters are the first and second byte of the Big 5 character code.
You can also use hexadecimal or octal notation. See commands.txt for a full
description of \CJKchar.

An environment `HKtext' similar to `Bg5text' is defined for the `HK'
encoding; the same restrictions as explained above hold.


SJIS encoding
-------------

See below the section `Preprocessors' for the preferred input method using
sjisconv.

Shift-JIS encoding is widely used on PCs for Japanese. A special feature is
the simultaneous use of one-byte and two-byte encoded characters which arose
because of backwards compatibility. The two-byte encoded character set is
completely identical to the JIS X 0208 character set, even the ordering is
the same. Thus there is no need for special two-byte SJIS FD files; the font
definition files for JIS X 0208 are used.

The situation is different for one-byte SJIS characters, the so called
`half-width' Katakana (encoding C49) from JIS X 0201. Usually you should use
full-width Katakana fonts too to get a typographically correct output. The
exception is a typewriter font which should really have only the half width
of normal Kanji or Katakana to represent screen snapshots or similar things.
The use of C49 encoding can be controlled with the \CJKhwkatakana and
\CJKnohwkatakana macros (see commands.txt for more information).

Fonts in C49 encoding scheme must have the character glyphs at the code
points 0xA1-0xDF.

An environment `SJIStext' similar to `Bg5text' is defined; the same
restrictions as explained in the previous section hold.


Big 5+ and GBK encodings
------------------------

See below the section `Preprocessors' for the preferred input method using
extconv.

These relatively new encodings are used in some older MS Windows versions in
Taiwan (Big 5+) and Mainland China (GBK). Both encodings implement the whole
CJK character repertory of Unicode in the Basic Multilingual Plane
(U+4E00-U+9FFF, approx. 21000 characters) and a few other characters but
still try to be backwards compatible. All code points of Big 5 are identical
to the code points in Big 5+, and the same holds for GB 2312-1980 and GBK.
Note that the default CJK font encodings for Big 5+ and Big 5 are *not*
compatible. The same is true for GBK and GB2312.

Two new environments, `Bg5+text' and `GBKtext' similar to `Bg5text' are
defined also; the same restrictions as above hold.
 

CJK captions
------------

To use the supplied caption files you need the koma-script package. The main
reason why I choose these style files instead of the standard classes is the
fact that the author of koma-script is willing to support CJK. On the other
hand, the philosophy of the LaTeX 2e maintainers is not to add new features
to the standard classes.

The koma-script style files are maintained by Markus Kohm
(Markus.Kohm@gmx.de); they are available at the CTAN hosts.


If you say \CJKcaption{<caption>} inside of a CJK environment, the file
<caption>.cpx is loaded (.cpx is a preprocessed version of .cap)

Example:

    \documentclass{scrartcl}%   this is a KOMA-script class
    \usepackage{CJK}

    \begin{document}
    \begin{CJK*}{GB}{kai}
    \CJKcaption{GB}%            loading GB.cpx

    \chapter{blablabla}%        is formatted in Chinese

    ...

    \end{CJK*}    
    \end{document}


Note that for Korean three caption files are available: hanja.cap for
captions using hanja (this corresponds to HLaTeX's `hanja' option) and
two caption files (hangul.cap and hangul2.cap) using hangul.

For GBK encoding use the GB.cap file. Similarly, use Big5.cap for Big 5+
encoding.

In case you want to edit a CAP file, you must create its corresponding
CPX file too. After editing, preprocess the file with

  bg5conv < xxx.cap > xxx.cpx

(for caption files in SJIS encoding use sjisconv instead), then change
the file name identification strings in the CPX file accordingly.

In UTF-8 encoding, the following caption files are available.

    ja        Japanese
    ko-Hang   Korean using Hangul
    ko-Hang2  another version using Hangul
    ko-Hani   Korean using Hanja
    zh-Hans   Chinese simplified
    zh-Hant   Chinese traditional

Since those files are identical to its encoding-specific counterparts,
only CPX versions are provided.


Underlining and other font effects
----------------------------------

Full support for Donald Arseneau's ulem.sty package (beginning with version
2000-05-26) is available by using CJKulem.sty (which loads ulem.sty
automatically). No changes to ulem's interface.

Even more font effects specific to CJK scripts can be found in CJKfntef.sty;
usage examples can be found in the file CJKfntef.tex .

A word of caution: Don't use \CJKfamily{...} or similar commands within the
argument to \uline and friends.


Poor man's boldface
-------------------

Most CJK fonts available in the public domain do not have bold series. To
emulate boldface by printing the character three times with slight
horizontal offsets some special features are used:

    CJK uses \CJKsymbol internally instead of \symbol to access CJK
    characters (after the correct font has been selected). This macro
    honours the \ifCJK@bold@ flag; if set it emulates boldface. The default
    value of the horizontal offset is 0.015em; to change it you should
    redefine \CJKboldshift, the macro which holds this shift.

    \ifCJK@bold@ can be set and unset globally with the commands \CJKbold
    and \CJKnormal. These commands are intended to be used with
    \DeclareFontShape as follows:

        \DeclareFontShape{C00}{CNS}{m}{n}{<-> CJK * csso12}{}
        \DeclareFontShape{C00}{CNS}{bx}{n}{<-> CJKb * csso12}{\CJKbold}

    It should be never necessary to use \CJKnormal since \selectfont has
    been modified to always reset \ifCJK@bold@ and to call the
    loading-settings (i.e., the sixth parameter) of \DeclareFontShape if
    a CJK size function is in use.

    Additionally, new size functions (CJKb, sCJKb, CJKfixedb, sCJKfixedb,
    and others; see fonts.txt for details) have been introduced which are
    completely identical to its counterparts without the final `b'. The only
    reason to use them is, as shown in the above example, to make the fifth
    parameter of \DeclareFontShape for bold series different from the one
    for medium series (LaTeX 2e uses this parameter as a macro name to
    execute loading-settings, thus they must not be equal).


Embedding non-CJK words into CJK text
-------------------------------------

To enable line breaking you should separate non-CJK words and CJK characters
with horizontal space. But the ordinary space dimensions inserted by TeX
based on the current non-CJK font often looks bad because the surrounding
CJK characters are printed almost side by side (the non-stretched value of
\CJKglue is 0pt). Especially in extreme cases which happen in underfull
\hbox commands the default space distorts the CJK text too much.

If you say \CJKtilde, the active `~' character doesn't produce an
unbreakable space; instead, the following definition is used:

    \def~{\hspace{0.25em plus 0.125em minus 0.08em}}        .

This defines a space which has a normal width of a quarter (CJK) space. See
the file japanese/shibuaki.txt for some further details.

Here an example:

        ThisIsChineseText~test~ThisIsChineseText

                         ^^^^^^

Simply use tilde characters instead of spaces at the border between CJK and
non-CJK characters.

In BibTeX entries, you have to use `{~}' instead of `~'.

The original definition of `~' is available as \nbs (non-breakable space, a
shorthand for the LaTeX command \nobreakspace). To return to the standard
`~' macro definition say \standardtilde.

Note that the opposite is not true: To embed CJK words into non-CJK text an
ordinary space is optimal.

If you use Mule or Emacs 20 please consider the use of cjktilde.el in
utils/lisp. This small package defines a minor mode (cjk-tilde-mode) which
exchanges the space key with the tilde key. It is convenient to bind this
mode to a key, e.g., C-insert.

For AUC TeX you can also use cjkspace.el which is similar (but not
identical) to cjktilde.el .


Preprocessors
-------------

Using the `XXXtext' environments like `Bg5text' is a mess. Thus three
preprocessors are provided to overcome the restrictions of the XXXtext
environments: bg5conv and sjisconv Big 5 and SJIS encoding, and extconv for
GBK and Big 5+ encoding characters. Compile them with

  cc -O -s -o bg5conv bg5conv.c
  cc -O -s -o sjisconv sjisconv.c
  cc -O -s -o extconv extconv.c

and move the binaries to a location in your path, e.g., /usr/local/bin in
a Unix system. [`cc' is the C compiler.]

See the batch files bg5latex[.bat], etc., for examples how to use them.

Each Big 5, Big 5+, or GBK character (and each two-byte encoded SJIS
character) `XY' is converted into the form `^^7fX^^7fZZZ^^7f'; ZZZ is the
decimal equivalent of Y, and ^^7f is a character with the hex value 0x7F.
The use of bg5conv/sjisconv/extconv is completely transparent; no changes to
your documents are necessary.

It is possible to mix preprocessed and non-preprocessed data; simply use
\CJKenc to change the encoding; you can use \CJKinput and \CJKinclude to
load preprocessed data (see commands.txt for a detailed description).

If you use traditional Chinese characters within Mule or Emacs 20, it is not
necessary to call bg5conv after the use of *cjk-coding* output encoding (but
it is necessary if you write out the file in Big 5 encoding).

Note 1: The OS/2 script files bg5latex.cmd, etc., need REXX which you
        probably have to install first.

Note 2: With extconv, you can also preprocess encodings like GB or SJIS.
        This has the advantage that such data is robust against any changes
        of the uc/lccodes in the range 0xA1-0xFE. Only three encodings can't
        be preprocessed: UTF8, EUC-TW, and EUC-JP.
        

Customization
-------------

In case you want to add encodings, font encodings, and related things, or if
you must change or customize some CJK settings, you should use a
configuration file called `CJK.cfg' which is loaded (if it exists) by
CJK.sty just before the final \endinput command.


Caveats
-------

    o   You can of course use CJK environments inside of a CJK environment,
        but it is possible that you must increase the so called `save size'
        of TeX (with emTeX you can adjust this with -ms=...; web2c users
        can control it with the `save_size' parameter in texmf.cnf).

        The CJK package has optional arguments which control the scope of
        CJK environments:

            lowercase       If you want to use \lowercase with encodings
                            inside CJK environments. You need less save size
                            using the `encapsulated' option if `lowercase'
                            is not set. You must use bg5conv (sjisconv) or
                            cjk-enc.el to use Big 5 (SJIS) characters with
                            this option.

                            Use this with caution! All \lccode values in the
                            range 0x80-0xFF are set to zero, thus disabling
                            TeX's hyphenation mechanism for words which
                            contain characters of this range in the *input
                            encoding* (e.g., Latin-1 encoded words with
                            accents). This is due to an unfortunate mangling
                            of the input and output encoding mechanism in
                            TeX itself.

            global          \lccode (if `lowercase' set), \uccode, \catcode
                            and the activation of the characters 0x81-0xFE
                            are globally modified (\lccode and \uccode reset
                            to 0). This is the most economical mode
                            concerning save size, but you can't have CJK
                            environments inside of CJK environments or other
                            environments which manipulate the character
                            range 0x81-0xFE.

                            All CJK font selection commands are globally too!

                            Packages which change some of the above values
                            only once (e.g., in the preamble) also don't
                            work after the first use of a CJK environment.

                            cjk-enc.el automatically selects this option.

            local           \lccode (if `lowercase' set) and \uccode
                            together with bindings are modified globally.
                            This is the default. You can stack CJK
                            environments.

            active          If activated, bindings are local additionally.
                            You need this option if you want to mix
                            preprocessed text with non-preprocessed text in
                            nested CJK environments. This can happen if you
                            merge texts in various encodings.

            encapsulated    If you want to access e.g., T1 fonts directly
                            (i.e., without the macros defined in t1enc.def)
                            or if you want to use a non-CJK LaTeX 2e input
                            encoding outside of the CJK environment (e.g.,
                            `latin1' for Western European, `latin2' for
                            Eastern European), you must use this option.
                            This also ensures that \uppercase and \lowercase
                            (together with \MakeUppercase and
                            \MakeLowercase) work correctly. All values
                            mentioned above are local, so you can stack
                            environments. This option probably causes an
                            overflow of the save size.

                            Note: All macro packages which access T1 fonts
                            with the macros defined in t1enc.def work in CJK
                            environments! E.g., the command `"s' of
                            german.sty works with \MakeUppercase too.


        Say
    
            \usepackage[<option>]{CJK}

        to activate <option>.

    o   There is another way to overcome the problem of stacked
        environments. CJK implements four CJK attribute switches: \CJKenc,
        \CJKfontenc, \CJKencfamily, and \CJKfamily; see commands.txt for a
        detailed description. If you need two different encodings/families
        at the same output line, you must use these macros.

        An example for \CJKfamily:

            \begin{CJK}{GB}{song}
            ... Text in GB song ...  \CJKenc{GBt}
            ... Text in GBt song ... \CJKfamily{kai}
            ... Text in GBt kai ...
            \end{CJK}

        An example for \CJKencfamily:

            \CJKencfamily{Bg5}{fs}%     fangsong
            \CJKencfamily{GB}{kai}

            \begin{CJK*}{}{}
            \CJKenc{Bg5} ... Text in Big 5 fangsong ...
            \CJKenc{GB}  ... Text in GB kai ...
            \end{CJK*}

        Contrary to \begin{CJK}{...}{...} it is not necessary to start a new
        line in your TeX document file after \CJKenc.

    o   A similar command to \CJKchar is \Unicode{<byte1>}{<byte2>} to
        access Unicode characters (real Unicode values, not UTF-8 encoded
        Unicode) directly; the parameters are the first (high) and second
        (low) byte of the Unicode. \Unicode works only in UTF-8 encoding; in
        all other encodings you must use \CJKchar[UTF8]{<byte1>}{<byte2>}
        instead.

        For Unicode characters greater than U+FFFF, put the first two bytes
        into the first argument, and the third byte into the second
        argument. Examples are \Unicode{"25E}{"9A} and
        \CJKchar[UTF8]{"25E}{"9A} to represent U+25E9A.

    o   CJK disables \MakeUppercase (preserving the command as
        \CJKuppercase) if you select Big 5 or SJIS encoding without using
        bg5conv or sjisconv. This usually affects the headers of the LaTeX
        2e standard classes only.

    o   Because CJK.sty and MULEenc.sty insert glue between CJK (and Thai)
        characters, it is possible to get unwanted line breaks in verbatim
        environments if lines are too long. To avoid this, use the command
        \CJKverbatim in combination with the `verbatim' package. It installs
        a hook which disables \CJKglue and \Thaiglue in verbatim
        environments.


Possible errors
---------------

    o   If you write Chinese (or Japanese) text, don't forget to suppress
        the linefeed character with a trailing `%' in the CJK environment,
        otherwise you get unwanted spaces in the output. On the other side,
        say `\ ' or something similar inside the CJK* environment to get a
        space after a CJK character.

    o   To suppress a line break before a CJK character, say \CJKkern. This
        command prevents the insertion of \CJKglue before the CJK character.

        You may wonder about the strange name: a small kern (2 sp) between
        two CJK characters signals that the first one is a punctuation
        character.

    o   If you get the error message: `\CJK... undefined' or other `...
        undefined ...' messages and you can't find an error, try inserting
        \newpage, \clearpage, or \cleardoublepage (the latter for two-column
        printing) before saying \end{CJK} or \end{CJK*}. This can happen if
        LaTeX 2e writes headers, footers, or index entries (both \index and
        \printindex) of a page containing CJK characters after closing the
        CJK environment.

        In case of footnotes with CJK characters which are split across
        pages, you have to close the CJK environment on the page on which
        the particular footnote ends (probably preceded by a \newpage
        command).

        A similar error message from CJKutf8.sty (with the same solution) is

          Package inputenc Error:
            Unicode char \u 8: XXX not set up for use with LaTeX

    o   A similar message to the one mentioned in the last item can be
        caused by using the \EveryShipout command from everyshi.sty; here
        the reason is exactly the opposite, namely the possible use of a
        non-CJK font within an implicit CJK environment. For example, if
        you have

          \EveryShipout{
            \fontfamily{phv}%
            \selectfont
            ...
          }

        it can happen that LaTeX tries to use family `phv' for a `CXX'
        encoding. The solution is to specify the encoding in \EveryShipout
        also:

          \EveryShipout{
            \fontfamily{phv}%
            \fontencoding{T1}%
            \selectfont
            ...
          }

    o   Some file editors insert a Byte Order Mark (BOM, U+FEFF) even if
        they emit UTF-8. This sequence consists of the three bytes 0xEF
        0xBB 0xBF, always to be found at the very beginning of a file,
        and which should be ignored.

        Unfortunately, there is no way to handle them automatically in the
        CJK package so that they don't produce output or warnings (or even
        error messages) -- it would be necessary to add a hack to the LaTeX
        kernel itself. In other words, these three bytes must be removed
        before LaTeX is called.

    o   If you get overfull \hbox'es caused by CJK characters, try to
        increase \CJKglue. It defines the glue between CJK characters; the
        default definition is

            \newcommand{\CJKglue}{\hskip 0pt plus 0.08\baselineskip}  .

        \CJKglue is inserted by CJK.sty between CJK characters (except
        punctuation characters as defined in the punctuation tables; see
        CJK.enc for the lists). You should separate non-CJK text from CJK
        characters with spaces to enable hyphenation, or you write
        \CJKtilde and then use `~' instead of spaces to embed non-CJK text
        into CJK characters.

    o   If you get overfull \hbox'es caused by Hangul syllables, try to
        increase \CJKtolerance. The default definition is

            \newcommand{\CJKtolerance}{400}  .

        Alternatively, try to increase \emergencystretch (which is a TeX
        primitive), setting it to a reasonable value.

    o   The default definition of \CJKglue can cause problems with CJK
        characters within a `tabular' environment since the environment sets
        \baselineskip to zero, effectively disabling inter-character glue. 
        If you need stretching (for example by using \makebox with the `s'
        position argument), you must redefine \CJKglue, before entering the
        `tabular' environment, to something like this:

          \def\CJKglue{\hskip 0pt plus 1pt}

    o   It is not possible to start a new encoding inside of a verbatim
        environment which has not been loaded before (CJK.sty emits an
        \input ... command which causes the encoding file to be printed
        verbatim instead of being executed). In this case, write a proper
        \CJKenc{...} command before opening the verbatim environment.

        Example:

            \CJKenc{JIS} % this loads standard.enc and standard.chr

            \begin{verbatim}
            ...
            first time JIS characters appear
            ...
            \end{verbatim}


        cjk-enc.el does this automatically for you.

    o   If you get an error message which looks like this:


          ! Undefined control sequence.
          try@size@range ...extract@rangefontinfo font@info
                                                            <-*>@nil <@nnil


        then you are using an unknown family for a CJK encoding.

        Reason: If you declare an NFSS font encoding in the standard way the
        corresponding FD file for the default font is loaded. For the CJK
        package this would be almost 30 files which is inacceptable. To
        avoid this overhead NFSS is faked with some rudimentary definitions
        just enough to pass the NFSS tests. Of course this has a
        disadvantage: An unknown CJK family causes the above error instead
        of switching to the fallback family usually defined with
        \DeclareFontSubstitution. Nevertheless, replacing an undefined
        series or shape works correctly.

        The CJK package's default family value is `song' for all encodings
        except KS; to avoid the error just described in cases you start an
        environment with an empty family parameter the files `XXXsong.fd'
        for all encodings `XXX' (except for KS) are already provided.

    o   It is neither possible to use a CJK character in a \cite command of
        standard LaTeX, nor is it possible to use the `alpha' citation
        style. This is a limitation of LaTeX and not of the CJK package.

    o   Sometimes it is necessary to define or redefine a command or
        environment globally in the preamble, using CJK characters. Example:

          \newtheorem{Them}{some Chinese characters}[section]

        This won't work directly because of the Chinese characters,
        producing an error. The next idea is to use a CJK environment in the
        preamble:

          \begin{CJK}{...}{...}
          \newtheorem{Them}{some Chinese characters}}[section]
          \end{CJK}

        Don't be surprised that this also fails! Most commands like
        \newtheorem expand to \def which define a macro locally only;
        consequently, the just defined command is undefined again after
        leaving the CJK environment.

        The correct solution is to use a globally defined macro:

          \begin{CJK}{...}{...}
          \gdef\ChineseTheorem{some Chinese characters}
          \end{CJK}

          \newtheorem{Them}{\ChineseTheorem}[section]

        In case you still have problems caused by premature expansion, add
        \protect, e.g.

          \newcites{Them}{\protect\ChineseTheorem}

    o   The \makelabels command of letter.sty needs special treatment if you
        have an address with CJK characters because it uses the
        \AtEndDocument hook to write out its data. Since \AtEndDocument is
        called by \end{document} after all environments have been closed
        already, a CJK environment must be explicitly inserted into the AUX
        file. Example:

          \documentclass{letter}

          \usepackage{CJK}

          \makeatletter
          \AtBeginDocument{%
            \if@filesw
              \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}%
            \fi}
          \makelabels
          \AtEndDocument{%
            \if@filesw
              \immediate\write\@mainaux{\string\end{CJK*}}%
            \fi}
          \makeatother


          \begin{CJK*}{...}{...}
          \address{An address\\
                   with some CJK characters}
          \signature{...}
          \end{CJK*}


          \begin{document}

          \begin{CJK*}{...}{...}

          \begin{letter}{Another address\\
                         with some CJK characters}
          \opening{...}

          Your letter text

          \closing{...}
          \end{letter}

          \end{CJK*}

          \end{document}

    o   A similar solution is needed if you use \bibliography and your
        bibliographic database contains author names with CJK characters.

          \makeatletter
          \AtBeginDocument{%
            \if@filesw
              \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}%
              \immediate\write\@mainaux{\string\makeatletter}%
            \fi}
          \AtEndDocument{%
            \if@filesw
              \immediate\write\@mainaux{\string\end{CJK*}}%
            \fi}
          \makeatother

    o   The `beamer' class, if used with the CJKutf8 package, should open
        and close the document's `CJK' environment with the \AtBeginDocument
        and \AtEndDocument hooks, respectively:

          \AtBeginDocument{%
            \begin{CJK*}{UTF8}{...}}
          \AtEndDocument{%
            \end{CJK*}}

    o   If you get strange error messages while using the hyperref package,
        add the `CJKbookmarks' option:

          \usepackage[CJKbookmarks]{hyperref}

    o   Some versions of fourier.sty cause the following error message:

          ! Undefined control sequence.
          \<->futr8t ->\SetFourierSpace

        A simple solution is to insert the line

          \providecommand{\SetFourierSpace}{}

        right before loading fourier.sty .

    o   Combining the `slovak', `esperanto', or `kurmanji' option of Babel
        (tested 2010/01/04) with the CJK package fails as soon as you try to
        open a CJK environment.  This error is a Babel bug not related to
        CJK: After loading one of these language modules, the ^^xx notation
        fails due to an incorrect \catcode value of the `^' character (even
        outside of those language environments).

        A workaround is to insert the line

          \catcode`\^ 7\relax

        right before a starting a CJK environment.


Author
------

Werner Lemberg <wl@gnu.org>

Please report any errors or suggestions to cjk-list@nongnu.org.


---End of CJK.txt---