-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmule.texi
1845 lines (1677 loc) · 103 KB
/
mule.texi
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
@c =============================================================
@c = 元 翻 訳: 鈴木悦子@津田塾大学
@c = 加筆修正: 大木敦雄@大塚.筑波大学 = 1998/11/25
@c = 20.4改訂: 大木敦雄@大塚.筑波大学 = 1999/09/12
@c =============================================================
@c This is part of the Emacs manual.
@c Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node International, Major Modes, Frames, Top
@c @chapter International Character Set Support
@chapter 国際化文字集合の使い方 @emph{(2005/09/19)}
@cindex MULE
@c @cindex international scripts
@c @cindex multibyte characters
@c @cindex encoding of characters
@cindex 国際化文字
@cindex マルチバイト文字
@cindex 文字の符号化
@cindex Celtic
@cindex Chinese
@cindex Cyrillic
@cindex Czech
@cindex Devanagari
@cindex Hindi
@cindex Marathi
@cindex Ethiopic
@cindex German
@cindex Greek
@cindex Hebrew
@cindex ケルト語
@cindex 中国語
@cindex キリル文字
@cindex チェコ語
@cindex デバナーガリー
@cindex ヒンディー語
@cindex マラッタ語
@cindex エチオピア語
@cindex ドイツ語
@cindex ギリシア語
@cindex ヘブライ語
@cindex IPA
@cindex Japanese
@cindex Korean
@cindex Lao
@cindex Latin
@cindex Polish
@cindex Romanian
@cindex Slovak
@cindex Slovenian
@cindex Thai
@cindex Tibetan
@cindex Turkish
@cindex Vietnamese
@cindex Dutch
@cindex Spanish
@cindex 日本語
@cindex 韓国語
@cindex ラオ語
@cindex ラテン語
@cindex ポーランド語
@cindex ルーマニア語
@cindex スロバキア語
@cindex ロシア語
@cindex タイ語
@cindex チベット語
@cindex ベトナム語
@cindex オランダ語
@cindex スペイン語
@c Emacs supports a wide variety of international character sets,
@c including European variants of the Latin alphabet, as well as Chinese,
@c Cyrillic, Devanagari (Hindi and Marathi), Ethiopic, Greek, Hebrew, IPA,
@c Japanese, Korean, Lao, Thai, Tibetan, and Vietnamese scripts. These features
@c have been merged from the modified version of Emacs known as MULE (for
@c ``MULti-lingual Enhancement to GNU Emacs'')
Emacsでは広範囲の国際化文字集合を使えます。
ラテンアルファベットの変種であるヨーロッパの言語はもちろん、中国語、キリル文字,
デバナーガリー(ヒンディー語とマラッタ語)、エチオピア語、ヘブライ語,ギリシア語、
IPA(International Phonetic Alphabet、万国表音文字)、日本語、韓国語、
ラオ語、ロシア語、タイ語、チベット語、ベトナム語の文字を含んでいます。
これらの機能は、MULE(『MULti-lingual Enhancement to GNU Emacs』)と
して知られるEmacsの修正版から併合しました。
@c Emacs also supports various encodings of these characters used by
@c other internationalized software, such as word processors and mailers.
ワープロやメイラーのような他の国際化されたソフトにおいて使われる文字で利用される
様々なエンコードもサポートしています.
@c Emacs allows editing text with international characters by supporting
@c all the related activities:
Emacsでは様々な文字の編集を行うことができます.
@itemize @bullet
@item
@c You can visit files with non-@acronym{ASCII} characters, save non-@acronym{ASCII} text, and
@c pass non-@acronym{ASCII} text between Emacs and programs it invokes (such as
@c compilers, spell-checkers, and mailers). Setting your language
@c environment (@pxref{Language Environments}) takes care of setting up the
@c coding systems and other options for a specific language or culture.
@c Alternatively, you can specify how Emacs should encode or decode text
@c for each command; see @ref{Specify Coding}.
非@acronym{ASCII}文字のテキストファイルを開き,保存し(コンパイラやスペルチャッカ
やメイラーのような)プログラムを起動することで非@acronym{ASCII}のテキストを渡すこ
とができます.言語環境の設定(@pxref{Language Environments})は特有の言語や環境に
関する文字コードや他のオプションを設定します.
@item
@c You can display non-@acronym{ASCII} characters encoded by the various scripts.
@c This works by using appropriate fonts on X and similar graphics
@c displays (@pxref{Defining Fontsets}), and by sending special codes to
@c text-only displays (@pxref{Specify Coding}). If some characters are
@c displayed incorrectly, refer to @ref{Undisplayable Characters}, which
@c describes possible problems and explains how to solve them.
さまざまなスクリプトでエンコードされた非@acronym{ASCII}文字を表示できます.X上で
は適切なフォントやよく似たグラフィックスを用い(@pxref{Defining
Fontsets}),テキスト端末には特別なコードを送信して表示します.もしいくつかの文字
が適切に表示されない時には @ref{Undisplayable Characters}を参照ください.そこに
は,可能性のある問題点や解決方法が書いてあります.
@item
@c You can insert non-@acronym{ASCII} characters or search for them. To do that,
@c you can specify an input method (@pxref{Select Input Method}) suitable
@c for your language, or use the default input method set up when you set
@c your language environment. (Emacs input methods are part of the Leim
@c package, which must be installed for you to be able to use them.) If
@c your keyboard can produce non-@acronym{ASCII} characters, you can select an
@c appropriate keyboard coding system (@pxref{Specify Coding}), and Emacs
@c will accept those characters. Latin-1 characters can also be input by
@c using the @kbd{C-x 8} prefix, see @ref{Single-Byte Character Support,
@c C-x 8}. On X Window systems, your locale should be set to an
@c appropriate value to make sure Emacs interprets keyboard input
@c correctly; see @ref{Language Environments, locales}.
非@acronym{ASCII}文字を入力したり,検索したりできます.そのためには,その言語に
適した入力方法(@pxref{Select Input Method})にするか,自分の言語環境に合わせたデ
フォルトの入力方法を使う必要があります(Emacsの入力メソッドはLeimパッケージの機
能であり,適切にインストールしてある必要があります).キーボードが非
@acronym{ASCII}文字を入力できるのであれば,キーボードのコードを適切に選択してお
かなければなりません (@pxref{Specify Coding}).そうすれば,Emacsはこの文字を受け
付けることができます.プレフィックス@kbd{C-x 8}を使うことで,Latin-1の文字を入力
することができます.詳しくは@ref{Single-Byte Character Support, C-x 8}を参照くだ
さい.X Window システムではEmacsがキーボード入力を適切に解釈できるように言語環境
を設定する必要があります.詳細は@ref{Language Environments, locales}を参照くださ
い.
@end itemize
@c The rest of this chapter describes these issues in detail.
この章の残りでは,これらの詳細を説明します.
@menu
* International Chars:: Basic concepts of multibyte characters.
* Enabling Multibyte:: Controlling whether to use multibyte characters.
* Language Environments:: Setting things up for the language you use.
* Input Methods:: Entering text characters not on your keyboard.
* Select Input Method:: Specifying your choice of input methods.
* Multibyte Conversion:: How single-byte characters convert to multibyte.
* Coding Systems:: Character set conversion when you read and
write files, and so on.
* Recognize Coding:: How Emacs figures out which conversion to use.
* Specify Coding:: Various ways to choose which conversion to use.
* Fontsets:: Fontsets are collections of fonts
that cover the whole spectrum of characters.
* Defining Fontsets:: Defining a new fontset.
* Undisplayable Characters:: When characters don't display.
* Single-Byte Character Support::
You can pick one European character set
to use without multibyte characters.
* Charsets:: How Emacs groups its internal character codes.
@end menu
@node International Chars
@c @section Introduction to International Character Sets
@section 国際化文字集合の紹介
@c The users of these scripts have established many more-or-less standard
@c coding systems for storing files. Emacs internally uses a single
@c multibyte character encoding, so that it can intermix characters from
@c all these scripts in a single buffer or string. This encoding
@c represents each non-ASCII character as a sequence of bytes in the range
@c 0200 through 0377. Emacs translates between the multibyte character
@c encoding and various other coding systems when reading and writing
@c files, when exchanging data with subprocesses, and (in some cases) in
@c the @kbd{C-q} command (@pxref{Multibyte Conversion}).
これらの文字のユーザーは、ファイルに格納するために、
たくさんの標準的なコーディングシステムを確立してきました。
Emacsは内部的には単一のマルチバイト文字符号化を使用しているので、
1つのバッファや1つの文字列の中に、
これらのすべての文字を混ぜ合わせることができます。
この符号化では、非ASCII文字を0200から0377の範囲のバイトの
並びとして表現します。
Emacsは、ファイルを読み書きするとき、サブプロセスとデータを交換するとき、
(場合によっては)@kbd{C-q}コマンドを使うときに、
マルチバイト文字符号化と
他のさまざまなコーディングシステムのあいだで変換します
(@pxref{Multibyte Conversion})。
@kindex C-h h
@findex view-hello-file
@c The command @kbd{C-h h} (@code{view-hello-file}) displays the file
@c @file{etc/HELLO}, which shows how to say ``hello'' in many languages.
@c This illustrates various scripts.
コマンド@kbd{C-h h}(@code{view-hello-file})は、
多くの言語で『hello』と書いたファイル@file{etc/HELLO}を表示します。
これは、さまざまな字体を例示します。
@c Keyboards, even in the countries where these character sets are used,
@c generally don't have keys for all the characters in them. So Emacs
@c supports various @dfn{input methods}, typically one for each script or
@c language, to make it convenient to type them.
これらの文字集合を使っている国々であっても、
一般にキーボードには、
それらすべての文字に対するキーはありません。
ですから、Emacsではさまざまな@dfn{入力方式}(input methods)
@footnote{【訳注】GNU Emacsをインストールする時点で、
対応する版のLEIM(Library of Emacs Input Method)のソースを
GNU Emacsのソースディレクトリに展開しておくと、
自動的にインストールされる。}を使って、
便利に文字を打ち込めるようにします。
典型的には、1つの字体や1つの言語について1つの入力方式があります。
@kindex C-x RET
@c The prefix key @kbd{C-x @key{RET}} is used for commands that pertain
@c to multibyte characters, coding systems, and input methods.
プレフィックスキー@kbd{C-x @key{RET}}は、
マルチバイト文字、コーディングシステム、入力方式に関係するコマンドに使います。
@node Enabling Multibyte
@c @section Enabling Multibyte Characters
@section マルチバイト文字を使用可能にする
@c You can enable or disable multibyte character support, either for
@c Emacs as a whole, or for a single buffer. When multibyte characters are
@c disabled in a buffer, then each byte in that buffer represents a
@c character, even codes 0200 through 0377. The old features for
@c supporting the European character sets, ISO Latin-1 and ISO Latin-2,
@c work as they did in Emacs 19 and also work for the other ISO 8859
@c character sets.
Emacs全体やバッファごとにマルチバイト文字の使用可/使用不可を設定できます。
バッファでマルチバイト文字を使用不可にすると、
そのバッファ内の各バイトは1つの文字を表します。
たとえコードが0200から0377のあいだであってもそうです。
ヨーロッパの文字集合であるISO Latin-1とISO Latin-2を扱う古い機能は、
Emacs 19で動作していたように動き、
他のISO 8859文字集合に対しても動作します。
@c However, there is no need to turn off multibyte character support to
@c use ISO Latin; the Emacs multibyte character set includes all the
@c characters in these character sets, and Emacs can translate
@c automatically to and from the ISO codes.
しかし、ISO Latinを使うために、
マルチバイト文字を使用不可にする必要はありません。
Emacsのマルチバイト文字集合にはこれらの文字集合のすべての文字が含まれ、
EmacsはこれらのISOコードと相互に自動的に変換できます。
@c To edit a particular file in unibyte representation, visit it using
@c @code{find-file-literally}. @xref{Visiting}. To convert a buffer in
@c multibyte representation into a single-byte representation of the same
@c characters, the easiest way is to save the contents in a file, kill the
@c buffer, and find the file again with @code{find-file-literally}. You
@c can also use @kbd{C-x @key{RET} c}
@c (@code{universal-coding-system-argument}) and specify @samp{raw-text} as
@c the coding system with which to find or save a file. @xref{Specify
@c Coding}. Finding a file as @samp{raw-text} doesn't disable format
@c conversion, uncompression and auto mode selection as
@c @code{find-file-literally} does.
特定のファイルをユニバイト表現で編集するには、
@code{find-file-literally}を使ってファイルを訪問します。
@xref{Visiting}。
マルチバイト表現のバッファを同じ文字の1バイト表現に変換するには、
もっとも簡単な方法は、内容をファイルに保存してから、バッファを削除し、
@code{find-file-literally}でそのファイルを訪問し直します。
@kbd{C-x @key{RET} c}(@code{universal-coding-system-argument})を使って、
ファイルを探したり保存するときのコーディングシステムとして
@samp{raw-text}を指定することもできます。
@xref{Specify Coding}。
@samp{raw-text}としてファイルを探しても、
@code{find-file-literally}のようには、
書式変換、圧縮の展開、モードの自動選択を禁止しません。
@vindex enable-multibyte-characters
@vindex default-enable-multibyte-characters
@c To turn off multibyte character support by default, start Emacs with
@c the @samp{--unibyte} option (@pxref{Initial Options}), or set the
@c environment variable @samp{EMACS_UNIBYTE}. You can also customize
@c @code{enable-multibyte-characters} or, equivalently, directly set the
@c variable @code{default-enable-multibyte-characters} in your init file to
@c have basically the same effect as @samp{--unibyte}.
デフォルトでマルチバイト文字を使用不可にするには、
@samp{--unibyte}オプション(@pxref{Initial Options})を
指定してEmacsを始めるか、あるいは、
環境変数@samp{EMACS_UNIBYTE}を設定します。
@samp{--unibyte}と同等な効果を得るには、
@code{enable-multibyte-characters}をカスタマイズするか、
これと等価に、初期化ファイル内で、
変数@code{default-enable-multibyte-characters}を直接設定します。
@c Multibyte strings are not created during initialization from the
@c values of environment variables, @file{/etc/passwd} entries etc.@: that
@c contain non-ASCII 8-bit characters. However, the initialization file is
@c normally read as multibyte---like Lisp files in general---even with
@c @samp{--unibyte}. To avoid multibyte strings being generated by
@c non-ASCII characters in it, put @samp{-*-unibyte: t;-*-} in a comment on
@c the first line. Do the same for initialization files for packages like
@c Gnus.
環境変数の値、@file{/etc/passwd}の内容などの非ASCII 8ビット文字からの
初期化中にはマルチバイト文字列は作られません。
しかし、@samp{--unibyte}を指定したとしても、
一般のLispファイルのように、初期化ファイルは、通常、
マルチバイトとして読み込みます。
それらに含まれる非ASCII文字からマルチバイト文字列が生成されるのを防ぐには、
1行目の注釈に@samp{-*-unibyte: t;-*-}を入れておきます。
gnusなどのパッケージの初期化ファイルでも同じことをします。
@c The mode line indicates whether multibyte character support is enabled
@c in the current buffer. If it is, there are two or more characters (most
@c often two dashes) before the colon near the beginning of the mode line.
@c When multibyte characters are not enabled, just one dash precedes the
@c colon.
モード行には、カレントバッファでマルチバイト文字が使用可かどうか表示されます。
使用可ならば、モード行の先頭付近のコロンのまえに
2文字か数文字(ほとんどの場合ダッシュ2個)があります。
マルチバイト文字が使用不可ならば、コロンのまえにはダッシュが1個だけです。
@node Language Environments
@c @section Language Environments
@c @cindex language environments
@section 言語環境
@cindex 言語環境
@c All supported character sets are supported in Emacs buffers whenever
@c multibyte characters are enabled; there is no need to select a
@c particular language in order to display its characters in an Emacs
@c buffer. However, it is important to select a @dfn{language environment}
@c in order to set various defaults. The language environment really
@c represents a choice of preferred script (more or less) rather than a
@c choice of language.
マルチバイト文字が使用可のときはいつでも、
すべての扱える文字集合をEmacsバッファの中で使えます。
ある言語の文字を表示するために、
Emacsバッファでその言語を選択する必要はありません。
しかし、さまざまなデフォルトを設定するために@dfn{言語環境}を
選択しておくことは重要です。
言語環境は、言語の選択というより、
(多かれ少なかれ)実際には好みの文字を表します。
@c The language environment controls which coding systems to recognize
@c when reading text (@pxref{Recognize Coding}). This applies to files,
@c incoming mail, netnews, and any other text you read into Emacs. It may
@c also specify the default coding system to use when you create a file.
@c Each language environment also specifies a default input method.
言語環境は、テキストを読み込むときにどのコーディングシステムを認識するかを
制御します(@pxref{Recognize Coding})。
言語環境は、ファイル、到着メイル、ニュース、
Emacsへ読み込むその他のテキストに適用されます。
言語環境は、ファイルを作成したときに使うデフォルトの
コーディングシステムを指定することもあります。
各言語環境は、デフォルトの入力方式も指定します。
@findex set-language-environment
@c The way to select a language environment is with the command @kbd{M-x
@c set-language-environment}. It makes no difference which buffer is
@c current when you use this command, because the effects apply globally to
@c the Emacs session. The supported language environments include:
言語環境を選択するには、
コマンド@kbd{M-x set-language-environment}を使います。
このコマンドを使ったときにどのバッファが
カレントバッファであるかは関係ありません。
というのは、その効力は、そのEmacsセッションに全体に適用されるからです。
以下の言語環境を使えます。
@quotation
@c Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-Alternativnyj,
@c Cyrillic-ISO, Cyrillic-KOI8, Devanagari, English, Ethiopic, Greek,
@c Hebrew, Japanese, Korean, Lao, Latin-1, Latin-2, Latin-3, Latin-4,
@c Latin-5, Thai, Tibetan, and Vietnamese.
Chinese-BIG5、Chinese-CNS、Chinese-GB、Cyrillic-Alternativnyj、
Cyrillic-ISO、Cyrillic-KOI8、Devanagari、English、Ethiopic、Greek、
Hebrew、Japanese、Korean、Lao、Latin-1、Latin-2、Latin-3、Latin-4、
Latin-5、Thai、Tibetan、Vietnamese。
@end quotation
@c Some operating systems let you specify the language you are using by
@c setting locale environment variables. Emacs handles one common special
@c case of this: if your locale name for character types contains the
@c string @samp{8859-@var{n}}, Emacs automatically selects the
@c corresponding language environment.
いくつかのオペレーティングシステムでは、
ローケル(locale)環境変数を設定することで言語を指定できます。
Emacsは、このよくある特別な場面を扱います。
文字種を表すローケル名が文字列@samp{8859-@var{n}}を含むなら、
Emacsは自動的に対応する言語環境を選択します。
@kindex C-h L
@findex describe-language-environment
@c To display information about the effects of a certain language
@c environment @var{lang-env}, use the command @kbd{C-h L @var{lang-env}
@c @key{RET}} (@code{describe-language-environment}). This tells you which
@c languages this language environment is useful for, and lists the
@c character sets, coding systems, and input methods that go with it. It
@c also shows some sample text to illustrate scripts used in this language
@c environment. By default, this command describes the chosen language
@c environment.
ある言語環境@var{lang-env}の効果についての情報を表示するには、
コマンド@kbd{C-h L @var{lang-env} @key{RET}}
(@code{describe-language-environment})を使います。
このコマンドは、その言語環境がどの言語に役立つのか、
その言語で使われる文字集合、コーディングシステム、
入力方式の一覧を表示します。
また、その言語環境で使われる文字を例示する例文も表示します。
デフォルトでは、このコマンドは選択されている言語環境を記述します。
@vindex set-language-environment-hook
@c You can customize any language environment with the normal hook
@c @code{set-language-environment-hook}. The command
@c @code{set-language-environment} runs that hook after setting up the new
@c language environment. The hook functions can test for a specific
@c language environment by checking the variable
@c @code{current-language-environment}.
どの言語環境もノーマルフック@code{set-language-environment-hook}で
カスタマイズできます。
コマンド@code{set-language-environment}は、
新しい言語環境を設定したあとでこのフックを実行します。
フック関数では、変数@code{current-language-environment}を検査すれば、
言語環境を知ることができます。
@vindex exit-language-environment-hook
@c Before it starts to set up the new language environment,
@c @code{set-language-environment} first runs the hook
@c @code{exit-language-environment-hook}. This hook is useful for undoing
@c customizations that were made with @code{set-language-environment-hook}.
@c For instance, if you set up a special key binding in a specific language
@c environment using @code{set-language-environment-hook}, you should set
@c up @code{exit-language-environment-hook} to restore the normal binding
@c for that key.
@code{set-language-environment}は、新しい言語環境を設定し始めるまえに、
まずフック@code{exit-language-environment-hook}を実行します。
このフックは、(直前の言語環境を設定した)
@code{set-language-environment}で施したカスタマイズをもとに戻すのに便利です。
たとえば、@code{set-language-environment-hook}を使って設定した
特定の言語環境で特別なキーバインディングを定義したときには、
それをそのキーのもとのバインディングに戻すために
@code{exit-language-environment-hook}を設定するべきです。
@node Input Methods
@c @section Input Methods
@section 入力方式
@c @cindex input methods
@c An @dfn{input method} is a kind of character conversion designed
@c specifically for interactive input. In Emacs, typically each language
@c has its own input method; sometimes several languages which use the same
@c characters can share one input method. A few languages support several
@c input methods.
@dfn{入力方式}(input method)は、
対話的に入力するために特別に設計された文字変換の一種です。
Emacsでは、典型的には、各言語向けに専用の入力方式があります。
ときには、同じ文字を使ういくつかの言語で入力方式を共有します。
複数の入力方式を使う言語も少しはあります。
@c The simplest kind of input method works by mapping ASCII letters into
@c another alphabet. This is how the Greek and Russian input methods work.
入力方式のもっとも単純なものは、ASCII文字を別のアルファベットに
対応させることで動作します。
ギリシア語とロシア語の入力方式はこのように動作します。
@c A more powerful technique is composition: converting sequences of
@c characters into one letter. Many European input methods use composition
@c to produce a single non-ASCII letter from a sequence that consists of a
@c letter followed by accent characters (or vice versa). For example, some
@c methods convert the sequence @kbd{a'} into a single accented letter.
@c These input methods have no special commands of their own; all they do
@c is compose sequences of printing characters.
より強力な方法は合成で、文字の列を1つの文字に変換します。
多くのヨーロッパの入力方式は、文字のうしろにアクセント文字が続く列
(あるいはその逆順)から、1つの非ASCII文字を生成する合成を使います。
たとえば、いくつかの入力方式では、
文字の列@kbd{a'}を1つのアクセント付き文字に変換します。
これらの入力方式には、その方式に固有の特別なコマンドはありません。
印字文字の列を合成するだけです。
@c The input methods for syllabic scripts typically use mapping followed
@c by composition. The input methods for Thai and Korean work this way.
@c First, letters are mapped into symbols for particular sounds or tone
@c marks; then, sequences of these which make up a whole syllable are
@c mapped into one syllable sign.
音節文字用の入力方式では、典型的には、対応付けたあとで合成します。
タイ語と韓国語の入力方式は、この方法で動作します。
まず、文字を音声記号に対応付けます。
そして、1つの音節全体を構成するそれらの列を1つの音節記号に対応付けます。
@c Chinese and Japanese require more complex methods. In Chinese input
@c methods, first you enter the phonetic spelling of a Chinese word (in
@c input method @code{chinese-py}, among others), or a sequence of portions
@c of the character (input methods @code{chinese-4corner} and
@c @code{chinese-sw}, and others). Since one phonetic spelling typically
@c corresponds to many different Chinese characters, you must select one of
@c the alternatives using special Emacs commands. Keys such as @kbd{C-f},
@c @kbd{C-b}, @kbd{C-n}, @kbd{C-p}, and digits have special definitions in
@c this situation, used for selecting among the alternatives. @key{TAB}
@c displays a buffer showing all the possibilities.
中国語や日本語では、より複雑な方法が必要です。
中国語の入力方式では、まず、中国語の単語の発音表記を入力する
(とりわけ入力方式@code{chinese-py})か、
1文字の各部分部分の列(とりわけ入力方式@code{chinese-4corner}や
@code{chinese-sw})を入力します。
1つの発音表記は、普通、多くの異なる中国語の文字に対応しているので、
特別なEmacsコマンドを使って候補群から1つを選ぶ必要があります。
@kbd{C-f}、@kbd{C-b}、@kbd{C-n}、@kbd{C-p}と数字キーは、
この状況で候補を選ぶために使われる特別な定義になっています。
@key{TAB}は、すべての候補をバッファに表示します。
@c In Japanese input methods, first you input a whole word using
@c phonetic spelling; then, after the word is in the buffer, Emacs converts
@c it into one or more characters using a large dictionary. One phonetic
@c spelling corresponds to many differently written Japanese words, so you
@c must select one of them; use @kbd{C-n} and @kbd{C-p} to cycle through
@c the alternatives.
日本語の入力方式@footnote{【訳注】言語環境が@code{Japanese}のときに
デフォルトで使用されるLEIMに含まれているもの。
「ローマ字→ひらがな→漢字」と変換するが、あまい使いやすくはない。
WNN、かんな、SKKなどを使うには、Emacsの配布とは別の非公式パッチを
自前で当てる必要がある。
ただし、これらを用いた場合、日本語を入力できない場面もあることを
承知しておく必要がある。}
では、まず、発音表記を使って1つの単語全体を入力します。
そして、単語がバッファに入ったあとで、
Emacsは大きな辞書を使って1つ以上の文字へ変換します。
1つの発音表記は、たくさんの異なる日本語の単語に対応しているので、
その中から選ぶ必要があります。
候補を巡回するには、@kbd{C-n}や@kbd{C-p}を使います。
@c Sometimes it is useful to cut off input method processing so that the
@c characters you have just entered will not combine with subsequent
@c characters. For example, in input method @code{latin-1-postfix}, the
@c sequence @kbd{e '} combines to form an @samp{e} with an accent. What if
@c you want to enter them as separate characters?
ときには、入力方式での処理を切り離したほうが便利なことがあります。
そうすれば、入力した文字は後続の入力文字と結合されません。
たとえば、入力方式@code{latin-1-postfix}では、
キー列@kbd{e '}は結合されてアクセント付き@samp{e}になります。
これらを別々の文字として入力したいときはどうするのでしょう?
@c One way is to type the accent twice; that is a special feature for
@c entering the separate letter and accent. For example, @kbd{e ' '} gives
@c you the two characters @samp{e'}. Another way is to type another letter
@c after the @kbd{e}---something that won't combine with that---and
@c immediately delete it. For example, you could type @kbd{e e @key{DEL}
@c '} to get separate @samp{e} and @samp{'}.
1つの方法は、アクセントを2回打つことです。
これは、アルファベットとアクセントを別々に入力する特別な機能です。
たとえば、@kbd{e ' '}は、2つの文字@samp{e'}になります。
別の方法は、@kbd{e}のあとに結合されない別の文字を打ってから、
すぐにそれを消すことです。
たとえば、 @samp{e}と@samp{'}を入力するには、@kbd{e e @key{DEL}'}と打ちます。
@c Another method, more general but not quite as easy to type, is to use
@c @kbd{C-\ C-\} between two characters to stop them from combining. This
@c is the command @kbd{C-\} (@code{toggle-input-method}) used twice.
別の方法はより一般的ですが、打つのは簡単ではありません。
2つの文字のあいだで@kbd{C-\ C-\}を打って、結合を止めます。
これは、コマンド@kbd{C-\}(@code{toggle-input-method})を2回使っています。
@ifinfo
@c @xref{Select Input Method}.
@xref{Select Input Method}。
@end ifinfo
@c @kbd{C-\ C-\} is especially useful inside an incremental search,
@c because it stops waiting for more characters to combine, and starts
@c searching for what you have already entered.
@kbd{C-\ C-\}は、インクリメンタルサーチの中では特に便利です。
というのは、結合する文字を待つことを止めて、
すでに入力したものを探索し始めるからです。
@vindex input-method-verbose-flag
@vindex input-method-highlight-flag
@c The variables @code{input-method-highlight-flag} and
@c @code{input-method-verbose-flag} control how input methods explain what
@c is happening. If @code{input-method-highlight-flag} is non-@code{nil},
@c the partial sequence is highlighted in the buffer. If
@c @code{input-method-verbose-flag} is non-@code{nil}, the list of possible
@c characters to type next is displayed in the echo area (but not when you
@c are in the minibuffer).
変数@code{input-method-highlight-flag}と
@code{input-method-verbose-flag}は、
入力方式に何が進行中かをどのように表示させるかを制御します。
@code{input-method-highlight-flag}が@code{nil}以外ならば、
バッファでは(入力途中の)部分列を強調表示します。
@code{input-method-verbose-flag}が@code{nil}以外ならば、
(ミニバッファの中でなければ)
つぎに打鍵できる文字の一覧をエコー領域に表示します。
@node Select Input Method
@c @section Selecting an Input Method
@section 入力方式の選択
@table @kbd
@item C-\
@c Enable or disable use of the selected input method.
選択されている入力方式をオン/オフする。
@item C-x @key{RET} C-\ @var{method} @key{RET}
@c Select a new input method for the current buffer.
カレントバッファに対して新しい入力方式を選択する。
@item C-h I @var{method} @key{RET}
@itemx C-h C-\ @var{method} @key{RET}
@findex describe-input-method
@kindex C-h I
@kindex C-h C-\
@c Describe the input method @var{method} (@code{describe-input-method}).
@c By default, it describes the current input method (if any).
@c This description should give you the full details of how to
@c use any particular input method.
入力方式@var{method}について説明する(@code{describe-input-method})。
デフォルトでは、(あれば)現在の入力方式を説明する。
この説明で、ある入力方式の使い方の詳細がわかるはず。
@item M-x list-input-methods
@c Display a list of all the supported input methods.
使用可能なすべての入力方式の一覧を表示する。
@end table
@findex set-input-method
@vindex current-input-method
@kindex C-x RET C-\
@c To choose an input method for the current buffer, use @kbd{C-x
@c @key{RET} C-\} (@code{set-input-method}). This command reads the
@c input method name with the minibuffer; the name normally starts with the
@c language environment that it is meant to be used with. The variable
@c @code{current-input-method} records which input method is selected.
カレントバッファに対する入力方式を選ぶには、
@kbd{C-x @key{RET} C-\}(@code{set-input-method})を使います。
このコマンドは、ミニバッファで入力方式名を読みます。
その名前は、通常、一緒に使うことを意図された言語環境で始まります。
変数@code{current-input-method}は、どの入力方式を選択したかを記録します。
@findex toggle-input-method
@kindex C-\
@c Input methods use various sequences of ASCII characters to stand for
@c non-ASCII characters. Sometimes it is useful to turn off the input
@c method temporarily. To do this, type @kbd{C-\}
@c (@code{toggle-input-method}). To reenable the input method, type
@c @kbd{C-\} again.
入力方式は、非ASCII文字を入力するために、さまざまなASCII文字の列を使います。
ときには、一時的に入力方式をオフにできると便利なこともあります。
そうするには、@kbd{C-\}(@code{toggle-input-method})と打ちます。
入力方式をふたたびオンにするには、@kbd{C-\}をもう一度打ちます。
@c If you type @kbd{C-\} and you have not yet selected an input method,
@c it prompts for you to specify one. This has the same effect as using
@c @kbd{C-x @key{RET} C-\} to specify an input method.
@kbd{C-\}を打ったときに、入力方式をまだ選択していないと、
入力方式を指定するように聞いてきます。
これは、入力方式を指定するために
@kbd{C-x @key{RET} C-\}を使うのと同じ効果があります。
@vindex default-input-method
@c Selecting a language environment specifies a default input method for
@c use in various buffers. When you have a default input method, you can
@c select it in the current buffer by typing @kbd{C-\}. The variable
@c @code{default-input-method} specifies the default input method
@c (@code{nil} means there is none).
言語環境を選択すると、さまざまなバッファで使う
デフォルトの入力方式を指定します。
デフォルトの入力方式を指定してあれば、
@kbd{C-\}と打てばカレントバッファでそれを選択できます。
変数@code{default-input-method}は、デフォルトの入力方式を指定します
(@code{nil}は入力方式なしの意味)。
@findex quail-set-keyboard-layout
@c Some input methods for alphabetic scripts work by (in effect)
@c remapping the keyboard to emulate various keyboard layouts commonly used
@c for those scripts. How to do this remapping properly depends on your
@c actual keyboard layout. To specify which layout your keyboard has, use
@c the command @kbd{M-x quail-set-keyboard-layout}.
アルファベット文字に対するいくつかの入力方式は、
その文字向けに一般的に使用されるさまざまなキーボード配列を
エミュレートするようにキーボードを
(実質的に)マッピングし直すことで動作します。
マッピングし直す方法は、あなたの実際のキーボード配列に依存します。
使っているキーボード配列を指定するには、
コマンド@kbd{M-x quail-set-keyboard-layout}を使います。
@findex list-input-methods
@c To display a list of all the supported input methods, type @kbd{M-x
@c list-input-methods}. The list gives information about each input
@c method, including the string that stands for it in the mode line.
使用可能なすべての入力方式の一覧を表示するには、
@kbd{M-x list-input-methods}と打ちます。
この一覧には、モード行に表示される入力方式を表す文字列を含めて、
各入力方式についての情報が示されます。
@node Multibyte Conversion
@c @section Unibyte and Multibyte Non-ASCII characters
@section ユニバイトとマルチバイトの非ASCII文字
@c When multibyte characters are enabled, character codes 0240 (octal)
@c through 0377 (octal) are not really legitimate in the buffer. The valid
@c non-ASCII printing characters have codes that start from 0400.
マルチバイト文字が使用可のときには、
文字コード0240(8進数)から0377(8進数)の文字は、
実際にそのままではバッファ内に存在しません。
正しい非ASCII印字文字は、0400から始まるコードになります。
@c If you type a self-inserting character in the invalid range 0240
@c through 0377, Emacs assumes you intended to use one of the ISO
@c Latin-@var{n} character sets, and converts it to the Emacs code
@c representing that Latin-@var{n} character. You select @emph{which} ISO
@c Latin character set to use through your choice of language environment
0240から0377の不正な範囲の自己挿入文字を打った場合、
Emacsは、ISO Latin-@var{n}文字集合の1つを使おうとしていると仮定して、
Latin-@var{n}の文字を表すEmacsのコードに変換します。
言語環境の選択を介して、@emph{どの}ISO Latin文字集合を使うのか指定できます
@iftex
@c (see above).
(上記参照)。
@end iftex
@ifinfo
@c (@pxref{Language Environments}).
(@pxref{Language Environments})。
@end ifinfo
@c If you do not specify a choice, the default is Latin-1.
何も選んでないと、デフォルトはLatin-1です。
@c The same thing happens when you use @kbd{C-q} to enter an octal code
@c in this range.
@kbd{C-q}でこの範囲の8進コードを入力すると、同じことが起こります。
@node Coding Systems
@c @section Coding Systems
@c @cindex coding systems
@section コーディングシステム
@cindex コーディングシステム
@c Users of various languages have established many more-or-less standard
@c coding systems for representing them. Emacs does not use these coding
@c systems internally; instead, it converts from various coding systems to
@c its own system when reading data, and converts the internal coding
@c system to other coding systems when writing data. Conversion is
@c possible in reading or writing files, in sending or receiving from the
@c terminal, and in exchanging data with subprocesses.
さまざまな言語を使うユーザーは、
それらを表現するための標準的な
コーディングシステムを数多く確立してきました。
Emacsはこれらのコーディングシステムを内部的には使用しません。
そのかわり、データを読むときには、
さまざまなコーディングシステムからEmacs独自のコーディングシステムに変換し、
データを書くときには、
内部コーディングシステムから他のコーディングシステムに変換します。
ファイルの読み書き、端末とのやりとり、サブプロセスとのデータ交換において、
変換できます。
@c Emacs assigns a name to each coding system. Most coding systems are
@c used for one language, and the name of the coding system starts with the
@c language name. Some coding systems are used for several languages;
@c their names usually start with @samp{iso}. There are also special
@c coding systems @code{no-conversion}, @code{raw-text} and
@c @code{emacs-mule} which do not convert printing characters at all.
Emacsは各コーディングシステムに名前を付けています。
多くのコーディングシステムは、1つの言語で使用されるので、
コーディングシステムの名前は、言語の名前で始まります。
いくつかのコーディングシステムは、いくつもの言語で使用されます。
その場合、コーディングシステムの名前は、通常、@samp{iso}で始まります。
印字文字をまったく変換しない特別なコーディングシステム、
@code{no-conversion}、@code{raw-text}、@code{emacs-mule}もあります。
@c @cindex end-of-line conversion
@cindex 行末変換
@c In addition to converting various representations of non-ASCII
@c characters, a coding system can perform end-of-line conversion. Emacs
@c handles three different conventions for how to separate lines in a file:
@c newline, carriage-return linefeed, and just carriage-return.
非ASCII文字のさまざまな表現形の変換に加えて、
コーディングシステムは行末変換も行います。
Emacsは、ファイル内の行の区切り方として、
3つの異なる変換を扱えます。
つまり、改行、復帰改行、復帰です。
@table @kbd
@item C-h C @var{coding} @key{RET}
@c Describe coding system @var{coding}.
コーディングシステム@var{coding}を説明する。
@item C-h C @key{RET}
@c Describe the coding systems currently in use.
現在使用しているコーディングシステムを説明する。
@item M-x list-coding-systems
@c Display a list of all the supported coding systems.
使用可能なすべてのコーディングシステムの一覧を表示する。
@end table
@kindex C-h C
@findex describe-coding-system
@c The command @kbd{C-h C} (@code{describe-coding-system}) displays
@c information about particular coding systems. You can specify a coding
@c system name as argument; alternatively, with an empty argument, it
@c describes the coding systems currently selected for various purposes,
@c both in the current buffer and as the defaults, and the priority list
@c for recognizing coding systems (@pxref{Recognize Coding}).
コマンド@kbd{C-h C}(@code{describe-coding-system})は、
特定のコーディングシステムについての情報を表示します。
引数にコーディングシステム名を指定できます。
あるいは、引数が空のときには、
カレントバッファに対するものとデフォルトの両方について、
さまざまな目的のために選択されている現在のコーディングシステムと、
コーディングシステムを認識するための優先順位表を説明します。
(@pxref{Recognize Coding})。
@findex list-coding-systems
@c To display a list of all the supported coding systems, type @kbd{M-x
@c list-coding-systems}. The list gives information about each coding
@c system, including the letter that stands for it in the mode line
@c (@pxref{Mode Line}).
利用可能なすべてのコーディングシステムの一覧を表示するには、
@kbd{M-x list-coding-systems}と打ちます。
モード行に表示される文字を含めて、
各コーディングシステムについての情報の一覧を表示します(@pxref{Mode Line})。
@c @cindex end-of-line conversion
@c @cindex MS-DOS end-of-line conversion
@c @cindex Macintosh end-of-line conversion
@cindex 行末変換
@cindex MS-DOS行末変換
@cindex Macintosh行末変換
@c Each of the coding systems that appear in this list---except for
@c @code{no-conversion}, which means no conversion of any kind---specifies
@c how and whether to convert printing characters, but leaves the choice of
@c end-of-line conversion to be decided based on the contents of each file.
@c For example, if the file appears to use the sequence carriage-return
@c linefeed to separate lines, DOS end-of-line conversion will be used.
いかなる種類の変換も行わない@code{no-conversion}を除いて、
この一覧に現れる各コーディングシステムは
印字文字をどのように変換する/しないを指定します。
しかし、行末変換は、各ファイルの内容に基づいて決定されます。
たとえば、ファイルが行区切りに復帰改行を使用しているように思われるときには、
その行末変換を使います。
@c Each of the listed coding systems has three variants which specify
@c exactly what to do for end-of-line conversion:
一覧の各コーディングシステムには、
どのように行末変換するかを正確に指定する3つの変種があります。
@table @code
@item @dots{}-unix
@c Don't do any end-of-line conversion; assume the file uses
@c newline to separate lines. (This is the convention normally used
@c on Unix and GNU systems.)
行末変換を行わない。
ファイルでは、行区切りに改行を使用していると仮定する。
(これは、UNIXとGNUシステムで普通に使用される変換。)
@item @dots{}-dos
@c Assume the file uses carriage-return linefeed to separate lines, and do
@c the appropriate conversion. (This is the convention normally used on
@c Microsoft systems.@footnote{It is also specified for MIME `text/*'
@c bodies and in other network transport contexts. It is different
@c from the SGML reference syntax record-start/record-end format which
@c Emacs doesn't support directly.})
ファイルでは、行区切りに復帰改行を使用していると仮定し、適当な変換を行う。
(これは、Microsoftシステムで普通に使用される変換。
@footnote{MIMEの「text/*」の本体や、
他のネットワーク転送の場面でも指定される。
Emacsが直接には扱えない
SGMLの参照構文であるrecord-start/record-end書式とは異なる。})
@item @dots{}-mac
@c Assume the file uses carriage-return to separate lines, and do the
@c appropriate conversion. (This is the convention normally used on the
@c Macintosh system.)
ファイルでは、行区切りに復帰を使用していると仮定し、適当な変換を行う。
(これは、Machintoshシステムで普通に使用される変換。)
@end table
@c These variant coding systems are omitted from the
@c @code{list-coding-systems} display for brevity, since they are entirely
@c predictable. For example, the coding system @code{iso-latin-1} has
@c variants @code{iso-latin-1-unix}, @code{iso-latin-1-dos} and
@c @code{iso-latin-1-mac}.
これらのコーディングシステムの変種は、
完全に予想できるので@code{list-coding-systems}の表示からは
簡潔にするために除かれています。
たとえば、コーディングシステム@code{iso-latin-1}には、
@code{iso-latin-1-unix}、@code{iso-latin-1-dos}、@code{iso-latin-1-mac}
の変種があります。
@c The coding system @code{raw-text} is good for a file which is mainly
@c ASCII text, but may contain byte values above 127 which are not meant to
@c encode non-ASCII characters. With @code{raw-text}, Emacs copies those
@c byte values unchanged, and sets @code{enable-multibyte-characters} to
@c @code{nil} in the current buffer so that they will be interpreted
@c properly. @code{raw-text} handles end-of-line conversion in the usual
@c way, based on the data encountered, and has the usual three variants to
@c specify the kind of end-of-line conversion to use.
コーディングシステム@code{raw-text}は、
主にASCIIテキストのファイルに適していますが、
ファイルには、非ASCII文字の符号を意味しない127を越えるバイト値が
含まれるかもしれません。
@code{raw-text}では、
Emacsは、それらのバイトが適切に解釈されるように値を変更しないでコピーし、
カレントバッファの
@code{enable-multibyte-characters}に@code{nil}を設定します。
@code{raw-text}は、出会ったデータに基づく普通の方法で行末変換を処理し、
使用する行末変換を指定する3つの変種を持ちます。
@c In contrast, the coding system @code{no-conversion} specifies no
@c character code conversion at all---none for non-ASCII byte values and
@c none for end of line. This is useful for reading or writing binary
@c files, tar files, and other files that must be examined verbatim. It,
@c too, sets @code{enable-multibyte-characters} to @code{nil}.
対照的に、コーディングシステム@code{no-conversion}は、
非ASCIIバイト値と行末に対して、いかなる文字コード変換も指定しません。
これは、バイナリファイル、tarファイル、
そのまま処理する必要があるその他のファイルを読み書きするのに便利です。
これも、@code{enable-multibyte-characters}に@code{nil}を設定します。
@c The easiest way to edit a file with no conversion of any kind is with
@c the @kbd{M-x find-file-literally} command. This uses
@c @code{no-conversion}, and also suppresses other Emacs features that
@c might convert the file contents before you see them. @xref{Visiting}.
いかなる種類の変換もしないでファイルを編集するもっとも簡単な方法は、
@kbd{M-x find-file-literally}コマンドを使うことです。
このコマンドは、@code{no-conversion}を使い、
あなたがファイルを見るまえにファイルの内容を
変換するかもしれないEmacsのその他の機能を抑制します。
@xref{Visiting}。
@c The coding system @code{emacs-mule} means that the file contains
@c non-ASCII characters stored with the internal Emacs encoding. It
@c handles end-of-line conversion based on the data encountered, and has
@c the usual three variants to specify the kind of end-of-line conversion.
コーディングシステム@code{emacs-mule}は、
Emacs内部の符号化のままで格納された非ASCII文字を
含むファイルであることを意味します。
これは、出会ったデータに基づいて行末変換を扱い、
行末変換の種類を指定する通常の3つの変種を持ちます。
@node Recognize Coding
@c @section Recognizing Coding Systems
@section コーディングシステムの認識
@c Most of the time, Emacs can recognize which coding system to use for
@c any given file---once you have specified your preferences.
一度自分の好みを指定しておけば、ほとんどの場合、Emacsは、
与えられたファイルに対してどのコーディングシステムを使うか認識できます。
@c Some coding systems can be recognized or distinguished by which byte
@c sequences appear in the data. However, there are coding systems that
@c cannot be distinguished, not even potentially. For example, there is no
@c way to distinguish between Latin-1 and Latin-2; they use the same byte
@c values with different meanings.
いくつかのコーディングシステムは、
データ内にどのようなバイト列が現れたかで、認識したり区別できます。
しかし、区別できないコーディングシステムや
その可能性もないコーディングシステムもあります。
たとえば、Latin-1とLatin-2を区別する方法はありません。
これらは同じバイト値を異なる意味で使用しています。
@c Emacs handles this situation by means of a priority list of coding
@c systems. Whenever Emacs reads a file, if you do not specify the coding
@c system to use, Emacs checks the data against each coding system,
@c starting with the first in priority and working down the list, until it
@c finds a coding system that fits the data. Then it converts the file
@c contents assuming that they are represented in this coding system.
Emacsは、コーディングシステムの優先順位表を用いてこの事態を処理します。
使用するコーディングシステムを指定しなければ、
Emacsはファイルを読むときはいつでも、
優先順位のもっとも高いものから始めて順に下りながら、
データに合うコーディングシステムをみつけるまで
各コーディングシステムに対してデータを検査します。
そして、ファイルはそのコーディングシステムで表現されていると仮定して、
ファイルの内容を変換します。
@c The priority list of coding systems depends on the selected language
@c environment (@pxref{Language Environments}). For example, if you use
@c French, you probably want Emacs to prefer Latin-1 to Latin-2; if you use
@c Czech, you probably want Latin-2 to be preferred. This is one of the
@c reasons to specify a language environment.
コーディングシステムの優先順位表は、選択されている言語環境に依存します
(@pxref{Language Environments})。
たとえば、フランス語を使うのなら、たぶん、
EmacsにはLatin-2よりLatin-1を選んでほしいでしょう。
チェコ語を使うなら、たぶん、Latin-2のほうがよいでしょう。
これが、言語環境を指定する理由の1つです。
@findex prefer-coding-system
@c However, you can alter the priority list in detail with the command
@c @kbd{M-x prefer-coding-system}. This command reads the name of a coding
@c system from the minibuffer, and adds it to the front of the priority
@c list, so that it is preferred to all others. If you use this command
@c several times, each use adds one element to the front of the priority
@c list.
しかし、コマンド@kbd{M-x prefer-coding-system}を使って、
優先順位表の詳細を変更できます。
このコマンドはミニバッファからコーディングシステムの名前を読み、
それを優先順位表の先頭に追加して、他のすべてのものより優先するようにします。
このコマンドを数回使うと、
使用するごとに優先順位表の先頭に1つの要素が追加されます。
@c If you use a coding system that specifies the end-of-line conversion
@c type, such as @code{iso-8859-1-dos}, what that means is that Emacs