]> code.delx.au - gnu-emacs/blobdiff - man/mule.texi
(General Variables): Update the docs according to current behavior
[gnu-emacs] / man / mule.texi
index bb2b99403a7fc3160dd9b6d173e8d08abe80e33e..a175454b95f2f828877d23e4e63932355894c9f4 100644 (file)
@@ -32,6 +32,8 @@
 @cindex Tibetan
 @cindex Turkish
 @cindex Vietnamese
+@cindex Dutch
+@cindex Spanish
   Emacs supports a wide variety of international character sets,
 including European variants of the Latin alphabet, as well as Chinese,
 Cyrillic, Devanagari (Hindi and Marathi), Ethiopic, Greek, Hebrew, IPA,
@@ -40,7 +42,7 @@ have been merged from the modified version of Emacs known as MULE (for
 ``MULti-lingual Enhancement to GNU Emacs'')
 
   Emacs also supports various encodings of these characters used by
-internationalized software, such as word processors, mailers, etc.
+other internationalized software, such as word processors and mailers.
 
 @menu
 * International Intro::     Basic concepts of multibyte characters.
@@ -77,12 +79,32 @@ cases) in the @kbd{C-q} command (@pxref{Multibyte Conversion}).
 
 @kindex C-h h
 @findex view-hello-file
+@cindex undisplayable characters
+@cindex @samp{?} in display
   The command @kbd{C-h h} (@code{view-hello-file}) displays the file
 @file{etc/HELLO}, which shows how to say ``hello'' in many languages.
-This illustrates various scripts.  If the font you're using doesn't have
-characters for all those different languages, you will see some hollow
-boxes instead of characters; see @ref{Fontsets}.  On non-windowing
-displays, @samp{?} is displayed in place of the hollow box.
+This illustrates various scripts.  If some characters can't be
+displayed on your terminal, they appear as @samp{?} or as hollow boxes
+(@pxref{Undisplayable Characters}).
+
+  Keyboards, even in the countries where these character sets are used,
+generally don't have keys for all the characters in them.  So Emacs
+supports various @dfn{input methods}, typically one for each script or
+language, to make it convenient to type them.
+
+@kindex C-x RET
+  The prefix key @kbd{C-x @key{RET}} is used for commands that pertain
+to multibyte characters, coding systems, and input methods.
+
+@ignore
+@c This is commented out because it doesn't fit here, or anywhere.
+@c This manual does not discuss "character sets" as they
+@c are used in Mule, and it makes no sense to mention these commands
+@c except as part of a larger discussion of the topic.
+@c But it is not clear that topic is worth mentioning here,
+@c since that is more of an implementation concept
+@c than a user-level concept.  And when we switch to Unicode,
+@c character sets in the current sense may not even exist.
 
 @findex list-charset-chars
 @cindex characters in a certain charset
@@ -94,15 +116,7 @@ character set, and displays all the characters in that character set.
   The command @kbd{M-x describe-character-set} prompts for a character
 set name and displays information about that character set, including
 its internal representation within Emacs.
-
-  Keyboards, even in the countries where these character sets are used,
-generally don't have keys for all the characters in them.  So Emacs
-supports various @dfn{input methods}, typically one for each script or
-language, to make it convenient to type them.
-
-@kindex C-x RET
-  The prefix key @kbd{C-x @key{RET}} is used for commands that pertain
-to multibyte characters, coding systems, and input methods.
+@end ignore
 
 @node Enabling Multibyte
 @section Enabling Multibyte Characters
@@ -146,16 +160,22 @@ have basically the same effect as @samp{--unibyte}.
 @cindex unibyte operation, and Lisp files
 @cindex init file, and non-ASCII characters
 @cindex environment variables, and non-ASCII characters
-  Multibyte strings are not created during initialization from the
-values of environment variables, @file{/etc/passwd} entries etc.@: that
-contain non-ASCII 8-bit characters.  However, Lisp files, when they are
-loaded for running, and in particular the initialization file
-@file{.emacs}, are normally read as multibyte---even with
-@samp{--unibyte}.  To avoid multibyte strings being generated by
-non-ASCII characters in Lisp files, put @samp{-*-unibyte: t;-*-} in a
-comment on the first line, or specify the coding system @samp{raw-text}
-with @kbd{C-x @key{RET} c}.  Do the same for initialization files for
-packages like Gnus.
+  With @samp{--unibyte}, multibyte strings are not created during
+initialization from the values of environment variables,
+@file{/etc/passwd} entries etc.@: that contain non-ASCII 8-bit
+characters.
+
+  Emacs normally loads Lisp files as multibyte, regardless of whether
+you used @samp{--unibyte}.  This includes the Emacs initialization
+file, @file{.emacs}, and the initialization files of Emacs packages
+such as Gnus.  However, you can specify unibyte loading for a
+particular Lisp file, by putting @samp{-*-unibyte: t;-*-} in a comment
+on the first line.  Then that file is always loaded as unibyte text,
+even if you did not start Emacs with @samp{--unibyte}.  The motivation
+for these conventions is that it is more reliable to always load any
+particular Lisp file in the same way.  However, you can load a Lisp
+file as unibyte, on any one occasion, by typing @kbd{C-x @key{RET} c
+raw-text @key{RET}} immediately before loading it.
 
   The mode line indicates whether multibyte character support is enabled
 in the current buffer.  If it is, there are two or more characters (most
@@ -195,17 +215,25 @@ Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ALT, Cyrillic-ISO,
 Cyrillic-KOI8, Czech, Devanagari, English, Ethiopic, German, Greek,
 Hebrew, IPA, Japanese, Korean, Lao, Latin-1, Latin-2, Latin-3, Latin-4,
 Latin-5, Latin-8 (Celtic), Latin-9 (updated Latin-1, with the Euro
-sign), Polish, Romanian, Slovak, Slovenian, Thai, Tibetan, Turkish, and
-Vietnamese.
+sign), Polish, Romanian, Slovak, Slovenian, Thai, Tibetan, Turkish, 
+Dutch, Spanish, and Vietnamese.
 @end quotation
 
-@cindex fonts, for displaying different languages
-  To be able to display the script(s) used by your language environment
-on a windowed display, you need to have a suitable font installed.  If
-some of the characters appear as empty boxes, download and install the
-GNU Intlfonts distribution, which includes fonts for all supported
-scripts.  @xref{Fontsets}, for more details about setting up your
-fonts.
+@cindex fonts for various scripts
+@cindex Intlfonts package, installation
+  To display the script(s) used by your language environment on a
+graphical display, you need to have a suitable font.  If some of the
+characters appear as empty boxes, you should install the GNU Intlfonts
+package, which includes fonts for all supported scripts.@footnote{If
+you run Emacs on X, you need to inform the X server about the location
+of the newly installed fonts with the following commands:
+
+@example
+ xset fp+ /usr/local/share/emacs/fonts
+ xset fp rehash
+@end example
+}
+@xref{Fontsets}, for more details about setting up your fonts.
 
 @findex set-locale-environment
 @vindex locale-language-names
@@ -213,31 +241,21 @@ fonts.
 @cindex locales
   Some operating systems let you specify the language you are using by
 setting the locale environment variables @env{LC_ALL}, @env{LC_CTYPE},
-and @env{LANG}; the first of these which is nonempty specifies your
-locale.  Emacs handles this during startup by invoking the
-@code{set-locale-environment} function, which matches your locale
-against entries in the value of the variable
+or @env{LANG}.@footnote{If more than one of these is set, the first
+one that is nonempty specifies your locale for this purpose.}  Emacs
+handles this during startup by matching your locale against entries in
+the value of the variables @code{locale-charset-language-names} and
 @code{locale-language-names} and selects the corresponding language
-environment if a match is found.  But if your locale also matches an
-entry in the variable @code{locale-charset-language-names}, this entry
-is preferred if its character set disagrees.  For example, suppose the
-locale @samp{en_GB.ISO8859-15} matches @code{"Latin-1"} in
-@code{locale-language-names} and @code{"Latin-9"} in
-@code{locale-charset-language-names}; since these two language
-environments' character sets disagree, Emacs uses @code{"Latin-9"}.
-
-  If all goes well, the @code{set-locale-environment} function selects
-the language environment, since language is part of locale.  It also
-adjusts the display table and terminal coding system, the locale coding
-system, and the preferred coding system as needed for the locale.
-
-  Since the @code{set-locale-environment} function is automatically
-invoked during startup, you normally do not need to invoke it yourself.
-However, if you modify the @env{LC_ALL}, @env{LC_CTYPE}, or @env{LANG}
-environment variables, you may want to invoke the
-@code{set-locale-environment} function afterwards.
+environment if a match is found.  (The former variable overrides the
+latter.)  It also adjusts the display table and terminal coding
+system, the locale coding system, and the preferred coding system as
+needed for the locale.
+
+  If you modify the @env{LC_ALL}, @env{LC_CTYPE}, or @env{LANG}
+environment variables while running Emacs, you may want to invoke the
+@code{set-locale-environment} function afterwards to readjust the
+language environment from the new locale.
 
-@findex set-locale-environment
 @vindex locale-preferred-coding-systems
   The @code{set-locale-environment} function normally uses the preferred
 coding system established by the language environment to decode system
@@ -248,10 +266,10 @@ matches @code{japanese-shift-jis} in
 @code{locale-preferred-coding-systems}, Emacs uses that encoding even
 though it might normally use @code{japanese-iso-8bit}.
 
-  The environment chosen from the locale when Emacs starts is
-overidden by any explicit use of the command
-@code{set-language-environment} or customization of
-@code{current-language-environment} in your init file.
+  You can override the language environment chosen at startup with
+explicit use of the command @code{set-language-environment}, or with
+customization of @code{current-language-environment} in your init
+file.
 
 @kindex C-h L
 @findex describe-language-environment
@@ -270,7 +288,10 @@ environment.
 @code{set-language-environment} runs that hook after setting up the new
 language environment.  The hook functions can test for a specific
 language environment by checking the variable
-@code{current-language-environment}.
+@code{current-language-environment}.  This hook is where you should
+put non-default settings for specific language environment, such as
+coding systems for keyboard input and terminal output, the default
+input method, etc.
 
 @vindex exit-language-environment-hook
   Before it starts to set up the new language environment,
@@ -292,8 +313,10 @@ has its own input method; sometimes several languages which use the same
 characters can share one input method.  A few languages support several
 input methods.
 
-  The simplest kind of input method works by mapping ASCII letters into
-another alphabet.  This is how the Greek and Russian input methods work.
+  The simplest kind of input method works by mapping ASCII letters
+into another alphabet; this allows you to type characters which your
+keyboard doesn't support directly.  This is how the Greek and Russian
+input methods work.
 
   A more powerful technique is composition: converting sequences of
 characters into one letter.  Many European input methods use composition
@@ -347,6 +370,7 @@ is the command @kbd{C-\} (@code{toggle-input-method}) used twice.
 @xref{Select Input Method}.
 @end ifinfo
 
+@cindex incremental search, input method interference
   @kbd{C-\ C-\} is especially useful inside an incremental search,
 because it stops waiting for more characters to combine, and starts
 searching for what you have already entered.
@@ -362,8 +386,10 @@ characters to type next is displayed in the echo area (but not when you
 are in the minibuffer).
 
 @cindex Leim package
-Input methods are implemented in the separate Leim package, which must
-be installed with Emacs.
+  Input methods are implemented in the separate Leim package: they are
+available only if the system administrator used Leim when building
+Emacs.  If Emacs was built without Leim, you will find that no input
+methods are defined.
 
 @node Select Input Method
 @section Selecting an Input Method
@@ -410,6 +436,10 @@ method temporarily.  To do this, type @kbd{C-\}
 it prompts for you to specify one.  This has the same effect as using
 @kbd{C-x @key{RET} C-\} to specify an input method.
 
+  When invoked with a numeric argument, as in @kbd{C-u C-\},
+@code{toggle-input-method} always prompts you for an input method,
+suggesting the most recently selected one as the default.
+
 @vindex default-input-method
   Selecting a language environment specifies a default input method for
 use in various buffers.  When you have a default input method, you can
@@ -417,6 +447,26 @@ select it in the current buffer by typing @kbd{C-\}.  The variable
 @code{default-input-method} specifies the default input method
 (@code{nil} means there is none).
 
+  In some language environments, which support several different input
+methods, you might want to use an input method different from the
+default chosen by @code{set-language-environment}.  You can instruct
+Emacs to select a different default input method for a certain
+language environment if you by using
+@code{set-language-environment-hook} (@pxref{Language Environments,
+set-language-environment-hook}).  For example:
+
+@lisp
+(defun my-chinese-setup ()
+  "Set up my private Chinese environment."
+  (if (equal current-language-environment "Chinese-GB")
+      (setq default-input-method "chinese-tonepy")))
+(add-hook 'set-language-environment-hook 'my-chinese-setup)
+@end lisp
+
+@noindent
+This sets the default input method to be @code{chinese-tonepy}
+whenever you choose a Chinese-GB language environment.
+
 @findex quail-set-keyboard-layout
   Some input methods for alphabetic scripts work by (in effect)
 remapping the keyboard to emulate various keyboard layouts commonly used
@@ -436,11 +486,12 @@ method, including the string that stands for it in the mode line.
 through 0377 (octal) are not really legitimate in the buffer.  The valid
 non-ASCII printing characters have codes that start from 0400.
 
-  If you type a self-inserting character in the range 0240
-through 0377, Emacs assumes you intended to use one of the ISO
-Latin-@var{n} character sets, and converts it to the Emacs code
-representing that Latin-@var{n} character.  You select @emph{which} ISO
-Latin character set to use through your choice of language environment
+  If you type a self-inserting character in the range 0240 through
+0377, or if you use @kbd{C-q} to insert one, Emacs assumes you
+intended to use one of the ISO Latin-@var{n} character sets, and
+converts it to the Emacs code representing that Latin-@var{n}
+character.  You select @emph{which} ISO Latin character set to use
+through your choice of language environment
 @iftex
 (see above).
 @end iftex
@@ -449,13 +500,12 @@ Latin character set to use through your choice of language environment
 @end ifinfo
 If you do not specify a choice, the default is Latin-1.
 
-  The same thing happens when you use @kbd{C-q} to enter an octal code
-in this range.  If you enter a code in the range 0200 through 0237,
-which forms the @code{eight-bit-control} character set, it is inserted
+  If you insert a character in the range 0200 through 0237, which
+forms the @code{eight-bit-control} character set, it is inserted
 literally.  You should normally avoid doing this since buffers
 containing such characters have to be written out in either the
-@code{emacs-mule} or @code{raw-text} coding system, which is usually not
-what you want.
+@code{emacs-mule} or @code{raw-text} coding system, which is usually
+not what you want.
 
 @node Coding Systems
 @section Coding Systems
@@ -481,7 +531,6 @@ coding systems @code{no-conversion}, @code{raw-text} and
 MS-DOS software.  To use any of these systems, you need to create it
 with @kbd{M-x codepage-setup}.  @xref{MS-DOS and MULE}.
 
-@cindex end-of-line conversion
   In addition to converting various representations of non-ASCII
 characters, a coding system can perform end-of-line conversion.  Emacs
 handles three different conventions for how to separate lines in a file:
@@ -535,7 +584,7 @@ on Unix and GNU systems.)
 @item @dots{}-dos
 Assume the file uses carriage-return linefeed to separate lines, and do
 the appropriate conversion.  (This is the convention normally used on
-Microsoft systems.@footnote{It is also specified for MIME `text/*'
+Microsoft systems.@footnote{It is also specified for MIME @samp{text/*}
 bodies and in other network transport contexts.  It is different
 from the SGML reference syntax record-start/record-end format which
 Emacs doesn't support directly.})
@@ -639,30 +688,34 @@ the contents of the file: if it sees only carriage-returns, or only
 carriage-return linefeed sequences, then it chooses the end-of-line
 conversion accordingly.  You can inhibit the automatic use of
 end-of-line conversion by setting the variable @code{inhibit-eol-conversion}
-to non-@code{nil}.
+to non-@code{nil}.  If you do that, DOS-style files will be displayed
+with the @samp{^M} characters visible in the buffer; some people
+prefer this to the more subtle @samp{(DOS)} end-of-line type
+indication near the left edge of the mode line (@pxref{Mode Line,
+eol-mnemonic}).
 
 @vindex inhibit-iso-escape-detection
 @cindex escape sequences in files
   By default, the automatic detection of coding system is sensitive to
 escape sequences.  If Emacs sees a sequence of characters that begin
-with an @key{ESC} character, and the sequence is valid as an ISO-2022
-code, the code is determined as one of ISO-2022 encoding, and the file
-is decoded by the corresponding coding system
-(e.g. @code{iso-2022-7bit}).
+with an escape character, and the sequence is valid as an ISO-2022
+code, that tells Emacs to use one of the ISO-2022 encodings to decode
+the file.
 
-  However, there may be cases that you want to read escape sequences in
-a file as is.  In such a case, you can set th variable
+  However, there may be cases that you want to read escape sequences
+in a file as is.  In such a case, you can set the variable
 @code{inhibit-iso-escape-detection} to non-@code{nil}.  Then the code
-detection will ignore any escape sequences, and so no file is detected
-as being encoded in some of ISO-2022 encoding.  The result is that all
-escape sequences become visible in a buffer.
+detection ignores any escape sequences, and never uses an ISO-2022
+encoding.  The result is that all escape sequences become visible in
+the buffer.
 
   The default value of @code{inhibit-iso-escape-detection} is
-@code{nil}, and it is strongly recommended not to change it.  That's
-because many Emacs Lisp source files that contain non-ASCII characters
-are encoded in the coding system @code{iso-2022-7bit} in the Emacs
-distribution, and they won't be decoded correctly when you visit those
-files if you suppress the escape sequence detection.
+@code{nil}.  We recommend that you not change it permanently, only for
+one specific operation.  That's because many Emacs Lisp source files
+that contain non-ASCII characters are encoded in the coding system
+@code{iso-2022-7bit} in the Emacs distribution, and they won't be
+decoded correctly when you visit those files if you suppress the
+escape sequence detection.
 
 @vindex coding
   You can specify the coding system for a particular file using the
@@ -693,33 +746,34 @@ a different coding system, you can specify a different coding system for
 the buffer using @code{set-buffer-file-coding-system} (@pxref{Specify
 Coding}).
 
-  While editing a file, you will sometimes insert characters which
-cannot be encoded with the coding system stored in
-@code{buffer-file-coding-system}.  For example, suppose you start with
-an ASCII file and insert a few Latin-1 characters into it.  Or you could
-edit a text file in Polish encoded in @code{iso-8859-2} and add to it
-translations of several Polish words into Russian.  When you save the
-buffer, Emacs can no longer use the previous value of the buffer's
-coding system, because the characters you added cannot be encoded by
-that coding system.
+  You can insert any possible character into any Emacs buffer, but
+most coding systems can only handle some of the possible characters.
+This means that you can insert characters that cannot be encoded with
+the coding system that will be used to save the buffer.  For example,
+you could start with an ASCII file and insert a few Latin-1 characters
+into it, or you could edit a text file in Polish encoded in
+@code{iso-8859-2} and add to it translations of several Polish words
+into Russian.  When you save the buffer, Emacs cannot use the current
+value of @code{buffer-file-coding-system}, because the characters you
+added cannot be encoded by that coding system.
 
   When that happens, Emacs tries the most-preferred coding system (set
 by @kbd{M-x prefer-coding-system} or @kbd{M-x
-set-language-environment}), and if that coding system can safely encode
-all of the characters in the buffer, Emacs uses it, and stores its value
-in @code{buffer-file-coding-system}.  Otherwise, Emacs pops up a window
-with a list of coding systems suitable for encoding the buffer, and
-prompts you to choose one of those coding systems.
-
-  If you insert characters which cannot be encoded by the buffer's
-coding system while editing a mail message, Emacs behaves a bit
-differently.  It additionally checks whether the most-preferred coding
-system is recommended for use in MIME messages; if it isn't, Emacs tells
-you that the most-preferred coding system is not recommended and prompts
-you for another coding system.  This is so you won't inadvertently send
-a message encoded in a way that your recipient's mail software will have
-difficulty decoding.  (If you do want to use the most-preferred coding
-system, you can type its name to Emacs prompt anyway.)
+set-language-environment}), and if that coding system can safely
+encode all of the characters in the buffer, Emacs uses it, and stores
+its value in @code{buffer-file-coding-system}.  Otherwise, Emacs
+displays a list of coding systems suitable for encoding the buffer's
+contents, and asks to choose one of those coding systems.
+
+  If you insert the unsuitable characters in a mail message, Emacs
+behaves a bit differently.  It additionally checks whether the
+most-preferred coding system is recommended for use in MIME messages;
+if it isn't, Emacs tells you that the most-preferred coding system is
+not recommended and prompts you for another coding system.  This is so
+you won't inadvertently send a message encoded in a way that your
+recipient's mail software will have difficulty decoding.  (If you do
+want to use the most-preferred coding system, you can type its name to
+Emacs prompt anyway.)
 
 @vindex sendmail-coding-system
   When you send a message with Mail mode (@pxref{Sending Mail}), Emacs has
@@ -843,7 +897,9 @@ your locale specification (@pxref{Language Environments}).
 
 @kindex C-x RET k
 @findex set-keyboard-coding-system
+@vindex keyboard-coding-system
   The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system})
+or the Custom option @code{keyboard-coding-system}
 specifies the coding system for keyboard input.  Character-code
 translation of keyboard input is useful for terminals with keys that
 send non-ASCII graphic characters---for example, some terminals designed
@@ -884,6 +940,7 @@ corresponding buffer.
 current language environment.
 
 @vindex file-name-coding-system
+@cindex file names with non-ASCII characters
   The variable @code{file-name-coding-system} specifies a coding system
 to use for encoding file names.  If you set the variable to a coding
 system name (as a Lisp symbol or a string), Emacs encodes file names
@@ -907,23 +964,24 @@ name, or it may get an error.  If such a problem happens, use @kbd{C-x
 C-w} to specify a new file name for that buffer.
 
 @vindex locale-coding-system
-  The variable @code{locale-coding-system} specifies a coding system to
-use when encoding and decoding system strings such as system error
-messages and @code{format-time-string} formats and time stamps.  This
-coding system should be compatible with the underlying system's coding
-system, which is normally specified by the first environment variable in
-the list @env{LC_ALL}, @env{LC_CTYPE}, @env{LANG} whose value is
-nonempty.
+  The variable @code{locale-coding-system} specifies a coding system
+to use when encoding and decoding system strings such as system error
+messages and @code{format-time-string} formats and time stamps.  You
+should choose a coding system that is compatible with the underlying
+system's text representation, which is normally specified by one of
+the environment variables @env{LC_ALL}, @env{LC_CTYPE}, and
+@env{LANG}.  (The first one whose value is nonempty is the one that
+determines the text representation.)
 
 @node Fontsets
 @section Fontsets
 @cindex fontsets
 
-  A font for X Windows typically defines shapes for one alphabet or
-script.  Therefore, displaying the entire range of scripts that Emacs
-supports requires a collection of many fonts.  In Emacs, such a
-collection is called a @dfn{fontset}.  A fontset is defined by a list of
-fonts, each assigned to handle a range of character codes. 
+  A font for X typically defines shapes for one alphabet or script.
+Therefore, displaying the entire range of scripts that Emacs supports
+requires a collection of many fonts.  In Emacs, such a collection is
+called a @dfn{fontset}.  A fontset is defined by a list of fonts, each
+assigned to handle a range of character codes.
 
   Each fontset has a name, like a font.  The available X fonts are
 defined by the X server; fontsets, however, are defined within Emacs
@@ -932,7 +990,7 @@ specifying its name, anywhere that you could use a single font.  Of
 course, Emacs fontsets can use only the fonts that the X server
 supports; if certain characters appear on the screen as hollow boxes,
 this means that the fontset in use for them has no font for those
-characters.@footnote{The installation instructions have information on
+characters.@footnote{The Emacs installation instructions have information on
 additional font support.}
 
   Emacs creates two fontsets automatically: the @dfn{standard fontset}
@@ -1090,23 +1148,28 @@ call this function explicitly to create a fontset.
 @node Undisplayable Characters
 @section Undisplayable Characters
 
-Your terminal may not be able to display some non-@sc{ascii} characters.
-Most non-windowing terminals can only use a single character set,
-specified by the variable @code{default-terminal-coding-system}
-(@pxref{Specify Coding}) and characters which can't be encoded in it are
-displayed as @samp{?} by default.  Windowing terminals may not have the
-necessary font available to display a given character and display a
-hollow box instead.  You can change the default behavior.
-
-If you use Latin-1 characters but your terminal can't display Latin-1,
-you can arrange to display mnemonic @sc{ascii} sequences instead, e.g.@:
-@samp{"o} for o-umlaut.  Load the library @file{iso-ascii} to do this.
-
-If your terminal can display Latin-1, you can display characters from
-other European character sets using a mixture of equivalent Latin-1
-characters and @sc{ascii} mnemonics.  Use the Custom option
-@code{latin1-display} to enable this.  The mnemonic @sc{ascii} sequences
-mostly correspond to those of the prefix input methods.
+  Your terminal may be unable to display some non-@sc{ascii}
+characters.  Most non-windowing terminals can only use a single
+character set (use the variable @code{default-terminal-coding-system}
+(@pxref{Specify Coding}) to tell Emacs which one); characters which
+can't be encoded in that coding system are displayed as @samp{?} by
+default.
+
+  Windowing terminals can display a broader range of characters, but
+you may not have fonts installed for all of them; characters that have
+no font appear as a hollow box.
+
+  If you use Latin-1 characters but your terminal can't display
+Latin-1, you can arrange to display mnemonic @sc{ascii} sequences
+instead, e.g.@: @samp{"o} for o-umlaut.  Load the library
+@file{iso-ascii} to do this.
+
+@vindex latin1-display
+  If your terminal can display Latin-1, you can display characters
+from other European character sets using a mixture of equivalent
+Latin-1 characters and @sc{ascii} mnemonics.  Use the Custom option
+@code{latin1-display} to enable this.  The mnemonic @sc{ascii}
+sequences mostly correspond to those of the prefix input methods.
 
 @node Single-Byte Character Support
 @section Single-byte Character Set Support
@@ -1115,7 +1178,6 @@ mostly correspond to those of the prefix input methods.
 @cindex accented characters
 @cindex ISO Latin character sets
 @cindex Unibyte operation
-@vindex enable-multibyte-characters
   The ISO 8859 Latin-@var{n} character sets define character codes in
 the range 160 to 255 to handle the accented letters and punctuation
 needed by various European languages (and some non-European ones).
@@ -1151,7 +1213,7 @@ them yet.
 @cindex 8-bit display
   Normally non-ISO-8859 characters (between characters 128 and 159
 inclusive) are displayed as octal escapes.  You can change this for
-non-standard `extended' versions of ISO-8859 character sets by using the
+non-standard ``extended'' versions of ISO-8859 character sets by using the
 function @code{standard-display-8bit} in the @code{disp-table} library.
 
   There are several ways you can input single-byte non-ASCII
@@ -1161,22 +1223,18 @@ characters:
 @cindex 8-bit input
 @item
 If your keyboard can generate character codes 128 and up, representing
-non-ASCII characters, you can execute the following expression to enable
-Emacs to understand them:
-
-@example
-(set-input-mode (car (current-input-mode))
-                (nth 1 (current-input-mode))
-                0)
-@end example
-
-It is not necessary to do this under a window system which can
-distinguish 8-bit characters and Meta keys.  If you do this on a normal
-terminal, you will probably need to use @kbd{ESC} to type Meta
-characters.@footnote{In some cases, such as the Linux console and
-@code{xterm}, you can arrange for Meta to be converted to @kbd{ESC} and
-still be able type 8-bit characters present directly on the keyboard or
-using @kbd{Compose} or @kbd{AltGr} keys.}  @xref{User Input}.
+non-ASCII you can type those character codes directly.
+
+On a windowing terminal, you should not need to do anything special to
+use these keys; they should simply work.  On a text-only terminal, you
+should use the command @code{M-x set-keyboard-coding-system} or the
+Custom option @code{keyboard-coding-system} to specify which coding
+system your keyboard uses (@pxref{Specify Coding}).  Enabling this
+feature will probably require you to use @kbd{ESC} to type Meta
+characters; however, on a Linux console or in @code{xterm}, you can
+arrange for Meta to be converted to @kbd{ESC} and still be able type
+8-bit characters present directly on the keyboard or using
+@kbd{Compose} or @kbd{AltGr} keys.  @xref{User Input}.
 
 @item
 You can use an input method for the selected language environment.
@@ -1198,7 +1256,7 @@ and in any other context where a key sequence is allowed.
 library is loaded, the @key{ALT} modifier key, if you have one, serves
 the same purpose as @kbd{C-x 8}; use @key{ALT} together with an accent
 character to modify the following letter.  In addition, if you have keys
-for the Latin-1 ``dead accent characters'', they too are defined to
+for the Latin-1 ``dead accent characters,'' they too are defined to
 compose with the following character, once @code{iso-transl} is loaded.
 Use @kbd{C-x 8 C-h} to list the available translations as mnemonic
 command names.
@@ -1208,9 +1266,9 @@ command names.
 @cindex ISO Accents mode
 @findex iso-accents-mode
 @cindex Latin-1, Latin-2 and Latin-3 input mode
-For Latin-1, Latin-2 and Latin-3, @kbd{M-x iso-accents-mode} installs a
-minor mode which provides a facility like the @code{latin-1-prefix}
-input method but independent of the Leim package.  This mode is
-buffer-local.  It can be customized for various languages with @kbd{M-x
-iso-accents-customize}.
+For Latin-1, Latin-2 and Latin-3, @kbd{M-x iso-accents-mode} installs
+a minor mode which works much like the @code{latin-1-prefix} input
+method does not depend on having the input methods installed.  This
+mode is buffer-local.  It can be customized for various languages with
+@kbd{M-x iso-accents-customize}.
 @end itemize