\documentclass[letterpaper,english]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{ÔÚLinuxÏÂÊ¹ÓÃµ¤ÂóÓï/ÆäËû¹ú¼ÊÓïÑÔ HOWTO}
\author{×÷Õß: Niels Kristian Bech Jensen {\ttfamily nkbj@sslug.dk}\\ 
ÒëÕß: Ôø»Ûº­ {\ttfamily azurlachesis@msn.com}}
\date{v2.6, 9 March 2000}
\abstract{Õâ·ÝÎÄ¼þÐðÊöÈçºÎÎª Linux ¼° Linux Ïà¹ØÓ¦ÓÃ³ÌÊ½µ¤ÂóÓï»¯, °üÀ¨¼üÅÌÉèÖÃ, ×ÖÐÍ, Ö½ÕÅ´óÐ¡µÈ. Ï£ÍûÆäËûÎ÷Å·ÓïÏµµÄ Linux Ê¹ÓÃÕßÒ²ÄÜ´ÓÕâ·ÝÎÄ¼þÖÐ»ñÒæ.}


\begin{document}
\maketitle
\tableofcontents

\section{µ¼ÑÔ}

¼¸ºõËùÓÐÅ·ÖÞµÄ×÷ÒµÏµÍ³Ê¹ÓÃÕß¶¼»áÓöµ½ÒÔÏÂÁ½¸öÎÊÌâ: 
µÚÒ», ÈçºÎÈÃµçÄÔÖªµÀÄãÊ¹ÓÃµÄÊÇ·ÇÃÀÏµµÄ¼üÅÌ; 
µÚ¶þ, ÈçºÎÈÃµçÄÔÏÔÊ¾ÌØÊâ×ÖÔª. 
¸üÔã¸âµÄÊÇ, ÓÐÐ©Ó¦ÓÃ³ÌÊ½»áÒòÎªÄã²»ÊÇÃÀ¹úÈË¶øÒªÇóÄã×öÌØÊâÉè¶¨, »òÊÇ¸ü¸Ä»·¾³±äÊý.

ÔÚ Linux Àï, Äã¿ÉÒÔÓÃÖ¸Áî{\ttfamily loadkeys} ºÍ {\ttfamily xmodmap} À´¸Ä±ä¼üÅÌÉè¶¨.
{\ttfamily loadkeys} Ö¸ÁîÖ»¸ü¸Ä´¿ Linux »·¾³ÏÂµÄ¼üÅÌ, 
¶ø {\ttfamily xmodmap} ÔÚ Linux ºÍ X11 Ö®¼ä½»»»×ÖÔªµÄ³ÌÐò²»ÍêÕûÊ±, »á×öÊÊµ±µÄµ÷Õû.

ÎªÁËÒªÕýÈ·ÏÔÊ¾×ÖÔª, Äã±ØÐè¸æËßÓ¦ÓÃ³ÌÊ½ÄãÊ¹ÓÃµÄÊÇ ISO-8859-1 ( Òà¼´Latin-1) µÄ¹ú¼Ê×ÖÔª¼¯.
¶ÔÄ³Ð©³£ÓÃµÄÓ¦ÓÃ³ÌÊ½À´Ëµ, ÕâÊÇ±ØÒªµÄ²½Öè.

Õâ·Ý HOWTO ÎÄ¼þÄ¿µÄÔÚì¶¸æËßµ¤ÂóÓïÊ¹ÓÃÕßÈçºÎ¶ÁÐ´µ¤ÂóÓï.
Èç¹ûÔÚÔÄ¶ÁÕâ·ÝÎÄ¼þáá, Äã»¹ÊÇÅöµ½ÎÊÌâ, Çë²Î¿¼µÂÓï HOWTO, Linux ¼üÅÌºÍ¿ØÖÆÌ¨ HOWTO , »òÊÇ ISO 8859-1 National Character Set FAQ.
±¾ÎÄ¼þÖÐÐí¶àµÄÌáÊ¾ËµÃ÷¶¼ÊÇ³ö×ÔÕâÈý·ÝÎÄ¼þµÄÄÚÈÝ. 
Çë²Î¼û \ref{docs} {(ÆäËûÏà¹ØÎÄ¼þ)} À´Á¬½áµ½ÕâÐ©ÎÄ¼þ.
Í¬Ê±, ÇëÄã¼ÄÐÅ¸øÎÒ, ²¢ÐðÊöÄãÅöµ½µÄÎÊÌâ.

×îááÒ»¸öÎÊÌâÊÇ: Ðí¶àÓ¦ÓÃ³ÌÊ½µÄ´íÎóÑ¶Ï¢, Ñ¡µ¥ºÍËµÃ÷ÎÄ¼þ¶¼ÊÇÓ¢ÎÄµÄ.
ÓÐÒ»¸ö GNU ¼Æ»®ÕýÔÚÖøÊÖ½â¾öÕâ¸öÎÊÌâ.
Äã¿ÉÒÔ´ÓÄãÏ²°®µÄ GNU Ó³ÉäÕ¾ÖÐÏÂÔØ {\ttfamily ABOUT-NLS} »òÊÇ {\ttfamily gettext-0.10.tar.gz} °ü¹üÒÔÁË½â´Ë¼Æ»®.
Õâ¸ö¼Æ»®ÐèÒª×ÔÔ¸Õß²ÎÓë·­Òë¹¤×÷. 
Èç¹ûÄãÏëÒªÎª¼Æ»®ÖÐµÄµ¤ÂóÓï²¿·Ý³öÁ¦, Çë¼ÄÐÅµ½ {\ttfamily da-request@li.org} ²¢ÔÚÄÚÈÝÐ´ÉÏ "subscribe".
{\ttfamily gettext} ÖÐµÄËµÃ÷ÎÄ¼þ»á¸æËßÄãÈçºÎÔÚÄãµÄ³ÌÊ½ÖÐÊ¹ÓÃ·­Òë.






\section{Éè¶¨¼üÅÌ}


\subsection{ÔØÈë¼üÅÌ±í (keytable)\label{loadkbd}}

Äã¿ÉÊ¹ÓÃÁ½¸ö¹¤¾ßÀ´Éè¶¨ÄãµÄ¼üÅÌ. ÔÚ´¿ Linux »·¾³ÏÂ, Äã¿ÉÒÔÓÃ{\ttfamily loadkeys} , ¶øÔÚ X11 ÏÂÔòÓÃ {\ttfamily xmodmap}.

ÓûÊ¹ÓÃ {\ttfamily loadkeys} Ö¸Áî, Äã¿ÉÒÔÖ´ÐÐ:

\begin{verbatim}
loadkeys /usr/lib/kbd/keytables/dk.map 
\end{verbatim}

»ò
\begin{verbatim}
loadkeys /usr/lib/kbd/keytables/dk-latin1.map
\end{verbatim}


ÕâÁ½¸ö¼üÅÌ¶ÔÓ¦±í (keymap) µÄ²îÒìÔÚì¶,  {\ttfamily dk-latin1.map} ¿ÉÒÔÊ¹ÓÃËÀ¼ü, ¶ø {\ttfamily dk.map} ²»ÐÐ.
ËÀ¼üÔÚ \ref{deadkeys} {(ËÀ¼üºÍÖØÒô×ÖÔª)} ÖÐ»á½âÊÍµ½.
{\ttfamily loadkeys} ºÍ keymap ¶¼ÊÇ Linux ÀïÍ¨ÐÐµÄ {\ttfamily kbd-0.??.tar.gz} ( ?? ´ú±í²»Í¬°æ±¾) °ü¹üÖÐµÄÒ»²¿·Ý.

{\ttfamily loadkeys} Í¨³£ÊÇÔÚÏµÍ³Æô¶¯Ê±, ´Ó {\ttfamily /etc/rc.d/} Ä¿Â¼ÏÂµÄÄ³Ò»¸öÃüÁî¸å (script) Ö´ÐÐµÄ.
²»Í¬µÄÏµÍ³ºÍ°æ±¾×÷·¨¸÷²»ÏàÍ¬.

(×¢, ¸ø·Çµ¤ÂóÓï¶ÁÕß: ÆäËûÓïÏµµÄÖ§Ô®Ò²ÊÇÒÔÀàËÆ·½·¨Éè¶¨µÄ, ÀýÈçÎ÷°àÑÀÓï¼üÅÌÊÇÓÃ {\ttfamily es.map} .)

XFree86 ´Ó 3.1.2 ÒÔÉÏµÄ°æ±¾ (°üÀ¨3.1.2) Í¨³£¶¼Ê¹ÓÃ´¿ Linux »·¾³ÏÂµÄ keymap, µ«ÔÚ X11 ÏÂÄã¿ÉÒÔÓÃ {\ttfamily xmodmap} À´¸Ä±ä¼üÅÌÉè¶¨.
Èç¹ûÔÚÄãµÄ home Ä¿Â¼ÏÂÓÐÒ»¸ö½Ð {\ttfamily .Xmodmap} µÄµµ°¸, X11 ¾Í»áÔÚÆô¶¯Ê±×Ô¶¯ÌæÄãÖ´ÐÐÕâ¸öÖ¸Áî.

ÈôÊ¹ÓÃ°æ±¾ 3.2 ÒÔÉÏµÄ XFree86, ÔÚÄãµÄ {\ttfamily /etc/XF86Config} (»ò {\ttfamily /etc/X11/XF86Config}) µµ°¸ÖÐ, Ó¦ÓÐÒ»¸ö{\ttfamily Keyboard} Çø¿éÈçÏÂÁÐ
( Èç¹ûÑ¡ÔñÊ¹ÓÃµ¤ÂóÓïµÄ keytable, Ò»¸ö½Ð  {\ttfamily XF86Setup}  µÄ³ÌÊ½Ó¦¸Ã»á×Ô¶¯ÌæÄã×öºÃÕâ¼þÊÂ) :

\begin{verbatim}
Section "Keyboard"
   Protocol        "Standard"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "dk"
   XkbVariant      "nodeadkeys"
EndSection
\end{verbatim}


Ä¿Ç°Ö»ÓÐ{\ttfamily "nodeadkeys"} ÊÇ¿ÉÓÃµÄ¼üÅÌ±äÊý, µ«ÄãÈÔ¿ÉÒÔÉè¶¨ËÀ¼ü. 
Çë²Î¼û \ref{deadkeys} {(ËÀ¼üºÍÖØÒô×ÖÔª)} ÒÔµÃµ½¸ü¶à×ÊÑ¶.






\subsection{ÔÚ X11 ÏÂÊ¹ÓÃ AltGr ¼ü}

ÈôÊ¹ÓÃ°æ±¾ 3.1.2 ÒÔÉÏµÄ XFree86 (°üÀ¨ 3.1.2), ÄãÓ¦¸ÃÐÞ¸Äµµ°¸ {\ttfamily /etc/XF86Config} (»ò {\ttfamily /etc/X11/XF86Config}) ²¢È·¶¨ÒÔÏÂÕâÐÐ

\begin{verbatim}
RightAlt    ModeShift
\end{verbatim}


³öÏÖÔÚ {\ttfamily Keyboard} Çø¿éÖÐ. 
Í¨³£, ÄãÖ»ÐèÒªÔÚÊÊµ±µÄµØ·½ÒÆÈ¥×¢½â·ûºÅ¼´¿É.
ÔÚ°æ±¾ 3.1.2 µÄ XFree86 ÖÐ, Äã¿ÉÓÃ {\ttfamily AltGr} ×÷Îª {\ttfamily RightAlt} µÄ±ð¼ü.

Èç¹ûÄãÓÐÑ¡Ôñµ¤ÂóÓïµÄ¼üÅÌÖ§Ô®, {\ttfamily AltGr} ¼üÔÚ°æ±¾ 3.2 ÒÔÉÏµÄ XFree86 Ó¦»áÈçÔ¤ÆÚµØ·¢»Ó×÷ÓÃ.






\subsubsection{ÔÚ Metro-X ÏÂÊ¹ÓÃ $\{$, {[}, {]}  ºÍ $\}$ }

ÔÚ Metro-X ËÅ·þÆ÷ÏÂ, Äã½«ÎÞ·¨ÊäÈë ``$\{$'' {\ttfamily ($<$AltGr$>$$<$7$>$)},
``{[}'' {\ttfamily ($<$AltGr$>$$<$8$>$)}, ``{]}''
{\ttfamily ($<$AltGr$>$$<$9$>$)} ºÍ ``$\}$'' {\ttfamily ($<$AltGr$>$$<$0$>$)} µÈ×ÖÔª.
Õâ¸ö bug »áÔÚ 3.1.5 ºÍ 3.1.8 µÄËÅ·þÆ÷°æ±¾ÖÐ³öÏÖ.

ÒªÐÞÕýÕâ¸ö bug, Äã±ØÐëÐÞ¸ÄµµÃû½Ð×÷ {\ttfamily /usr/X11R6/lib/X11/xkb/symbols/dk} µÄµµ°¸²¢°ÑÒÔÏÂ¾ä×Ó: 

\begin{verbatim}
key <AE07> {    [               7,           slash      ]       };
key <AE08> {    [               8,       parenleft      ]       };
key <AE09> {    [               9,      parenright      ]       };
key <AE10> {    [               0,           equal      ]       };
\end{verbatim}

¸Ä³É
\begin{verbatim}
key <AE07> {    [               7,           slash      ],
                [       braceleft,        NoSymbol      ]       };
key <AE08> {    [               8,       parenleft      ],
                [     bracketleft,        NoSymbol      ]       };
key <AE09> {    [               9,      parenright      ],
                [    bracketright,        NoSymbol      ]       };
key <AE10> {    [               0,           equal      ],
                [      braceright,        NoSymbol      ]       };
\end{verbatim}





\subsection{ËÀ¼üºÍÖØÒô×ÖÔª\label{deadkeys}}

ËùÎ½ËÀ¼ü, ¾ÍÊÇÔÚ°´ÏÂÖ®áá, »¹±ØÐëÔÙ°´ÆäËû¼ü²ÅÄÜ¹»×÷ÓÃµÄ¼ü.
ÄãÈç¹ûÊÇÔÚ´¿ Linux »·¾³ÏÂÊ¹ÓÃ  {\ttfamily dk-latin1.map} keymap, ÄÇò¦»¯·ûºÅ (tilde, Òë×¢: ÀýÈçÎ÷°àÑÀÓï×ÖÄ¸ÉÏµÄ¡«) ºÍ±äÒô (umlaut, Òë×¢: ×ÖÄ¸ÉÏ¼ÓÁ½µã) ¶¼ÊÇËÀ¼ü.
ÁíÍâ, ÔÚÎ¢ÈíÊÓ´°×÷ÒµÏµÍ³ÏÂ, ¼üÅÌÔ¤ÉèÒ²ÊÇÈç´Ë.






\subsubsection{ÒÆ³ýËÀ¼ü¹¦ÄÜ}

\begin{itemize}
\item ÔÚ´¿ Linux Óë XFree86 v3.1.2 »·¾³ÏÂÒÆ³ýËÀ¼ü¹¦ÄÜ

ÔÚ´¿ Linux »·¾³ÏÂ, ÊäÈë
\begin{verbatim}
loadkeys dk.map
\end{verbatim}

\item ÔÚ°æ±¾ 3.2 ÒÔÉÏµÄ XFree86 ÖÐÒÆ³ýËÀ¼ü¹¦ÄÜ

ÔÚµµ°¸ {\ttfamily /etc/XF86Config} (»ò {\ttfamily /etc/X11/XF86Config}) ÖÐ, ÔÚ {\ttfamily Keyboard} Çø¿éÖÐ¼ÓÈë¾ä×Ó: 
\begin{verbatim}
XkbVariant      "nodeadkeys"
\end{verbatim}
\end{itemize}





\subsubsection{Æô¶¯ËÀ¼ü¹¦ÄÜ}

\begin{itemize}
\item ÔÚ´¿ Linux »·¾³ÏÂÆô¶¯ËÀ¼ü¹¦ÄÜ.

ÔÚ´¿ Linux »·¾³ÏÂÊäÈë
\begin{verbatim}
loadkeys dk-latin1.map
\end{verbatim}

\item ÔÚ X11R6 ÏÂÆô¶¯ËÀ¼ü¹¦ÄÜ.

Ê×ÏÈ, È·ÈÏÄãÅÜµÄÊÇ°æ±¾ 3.1.2 ÒÔÉÏµÄ XFree86. Èç¹ûÄãµÄ°æ±¾µÍì¶ 3.1.2, Äã±ØÐëÏÂÔØ²¢°²×°ËùÓÐºÍ×îÐÂ°æ±¾Ïà¹ØµÄµµ°¸.
ÔÚ X11R6 Ó¦ÓÃ³ÌÊ½ÖÐ, ÒªÊ¹ÓÃÅÅ×Ö (compose) »òËÀ¼ü, ¾Í±ØÐë½«³ÌÊ½ºÍÖØÒô×ÖÔª (8-bit) Ö§Ô®Ò»Æð±àÒë.
{\ttfamily GNU emacs} v. 19.30 (»ò¸ü¸ßµÄ°æ±¾) ÊÇÒ»¸öÀý×Ó.

È»¶ø, Ä³Ð© X11 Ó¦ÓÃ³ÌÊ½ÒÀÈ»²»Ö§Ô®ÕâÖÖÊäÈë·¨. 
Ãæ¶ÔÕâ¸öÎÊÌâ, Äã¿ÉÒÔÑ¡ÔñÐÞ¸ÄÄãµÄ³ÌÊ½, »òÊÇ¼ÄÒ»·âÐÞ´ÇÎÂºÍµÄ bug ±¨¸æ¸ø³ÌÊ½×÷Õß.
ááÕßÊÇ±È½ÏÓÐÐ§µÄ½â¾öÖ®µÀ.
Çë²Î¼û \ref{programming} {(ÔÚ X11ÏÂ±àÐ´³ÌÊ½µÄÒ»Ð©Ð¡¼¼ÇÉ)} ÒÔ»ñµÃÏà¹Ø×ÊÑ¶.

½ÓÏÂÀ´, ÄãÐèÒª½«Ò»¸ö¼ü¶ÔÓ¦µ½ {\ttfamily Multi\_key} ({\ttfamily Compose}.) 
ÈôÄãÊ¹ÓÃ°æ±¾ 3.1.2 µÄ XFree86, {\ttfamily Scroll Lock} ¼üºÜ¿ÉÄÜÒÑ¾­±»¶ÔÓ¦ÁË(Äã¿ÉÒÔÓÃ {\ttfamily xev} Õâ¸ö³ÌÊ½ÐÞ¸ÄÉè¶¨).
Èç¹ûÒª¶ÔÓ¦ÓÒ±ßµÄ {\ttfamily Control} ¼ü, 
ÄãÖ»ÐèÒªÔÚ XFree86 µÄ configuration file (Í¨³£ÊÇ {\ttfamily /etc/XF86Config} »ò {\ttfamily /etc/X11/XF86Config}) ÖÐµÄ {\ttfamily Keyboard} Çø¿éÀïÈ¥µôÈô¸É×¢½â·ûºÅ¼´¿É.
ÈôÄãÏëÊ¹ÓÃÆäËûµÄ¼ü, »òÕßÄãÊÇÓÃ°æ±¾ 3.1.2 ÒÔÉÏµÄ XFree86 ¶øÇÒÄãÏë¸Ä±äÔ¤Éè, Äã¿ÉÒÔÔÚµµ°¸ {\ttfamily \~{}/.Xmodmap} ÖÐ¼ÓÈë:
\begin{verbatim}
keycode 78 = Multi_key
\end{verbatim}

ÉÏÃæÕâÒ»ÐÐ¡õÀý×öµÄÊÇ¶¨Òå {\ttfamily Scroll Lock} ¼üÎª {\ttfamily Compose} ¼ü.
ÔÚ°æ±¾ 3.2 ÒÔÉÏµÄ XFree86 ÖÐ, Ô¤ÉèµÄ {\ttfamily Compose} ¼üÊÇ {\ttfamily $<$Shift$>$$<$AltGr$>$}.

°æ±¾ 3.2 ÒÔÉÏµÄ XFree86 ²¢²»Ö§Ô®ÔÚ±ê×¼µ¤Âó¼üÅÌÊ¹ÓÃËÀ¼ü.
ÒªÆô¶¯ËÀ¼ü, ÔÚµµ°¸ {\ttfamily /usr/X11R6/lib/X11/xkb/symbols/dk} µÄ {\ttfamily xkb\_symbols "basic"} Çø¿éÖÐÐÞ¸ÄÕâ¼¸ÐÐ:
\begin{verbatim}
key <AE12> {    [           acute,           grave      ],      
                [             bar,     dead_ogonek      ]       };
key <AD12> {    [       diaeresis,     asciicircum      ],      
                [      asciitilde,     dead_macron      ]       };
\end{verbatim}

°ÑËü¸Ä³É
\begin{verbatim}
key <AE12> {    [      dead_acute,      dead_grave      ],      
                [             bar,     dead_ogonek      ]       };
key <AD12> {    [  dead_diaeresis, dead_circumflex      ],      
                [      dead_tilde,     dead_macron      ]       };
\end{verbatim}


½ÓÏÂÀ´, ÒÆ³ýµµ°¸ {\ttfamily /etc/XF86Config} (»ò {\ttfamily /etc/X11/XF86Config}) ÖÐ {\ttfamily Keyboard} Çø¿éÀïµÄÕâÒ»ÐÐ: 
\begin{verbatim}
XkbVariant      "nodeadkeys"
\end{verbatim}


(×¢, ¸ø·Çµ¤ÂóÓï¶ÁÕß: ÔÚ {\ttfamily /usr/X11R6/lib/X11/xkb/symbols} ÖÐÓÐ¸÷ÖÖÓïÏµ keymap µÄµµ°¸.)

¿ÉÄÜµÄ×ÖÔª¶ÔÓ¦±íÁÐì¶µµ°¸ {\ttfamily /usr/X11R6/lib/X11/locale/iso8859-1/Compose} ÖÐ.
Õâ¸öµµ°¸ÀïÓÐÒ»Ð©Äã»òÐí»áÏëÐÞÕýµÄ bug:
\begin{itemize}
\item ÏÂÃæÕâÒ»ÐÐ
\begin{verbatim}
<dead_tilde> <space>                    : "~"   tilde
\end{verbatim}

Ó¦±»¸ÄÎª
\begin{verbatim}
<dead_tilde> <space>                    : "~"   asciitilde
\end{verbatim}

\item ÔÚÄ³Ð©µØ·½, {\ttfamily asciicircum} ±»ÎóÆ´Îª {\ttfamily asciicirum}
\end{itemize}


×îáá, È·¶¨ÄãµÄ shell (»òÕß»¹ÓÐÓ¦ÓÃ³ÌÊ½) ÒÑ¾­Èç \ref{apps} {(ÌØ¶¨Ó¦ÓÃ³ÌÊ½ÖÐµÄ¹ú¼Ê×ÖÔª¼¯)} ÖÐËùÐðÊöµÄ,
×öºÃ ISO-8859-1 ÏàÈÝÐÔµÄÉè¶¨.
\end{itemize}





\subsection{Ê¹ÓÃ \$ (Ç®·ûºÅ), \o{} (oslash) ºÍ \O{} (Oslash) ×ÖÔª}


\subsubsection{\$ (the dollar sign)}

µ¤Âó keymap ÖÐÓÐ¸ö bug »áÊ¹Ç®·ûºÅµÄ¶ÔÓ¦¼ü×éºÏÎª {\ttfamily $<$Shift$>$$<$4$>$}, ¶ø²»ÊÇ {\ttfamily $<$AltGr$>$$<$4$>$}.
ÈôÄãÓÐÕâ¸öÎÊÌâ, Çë²é¿´ÄãÔÚÆô¶¯ÏµÍ³Ê±ÔØÈëµÄÊÇÄÄ¸ö keymap.
ÕâÏîÉè¶¨Î»ì¶ {\ttfamily /etc/rc.d/} Ä¿Â¼ÏÂ, »òÕßÄãÒ²¿ÉÒÔÔÚÆô¶¯ÏµÍ³Ê±×¢ÒâÒ»ÏÂ.
ÔÚÎÒµÄµçÄÔÉÏ, ÎÒµÄ keymap ÊÇ½Ð {\ttfamily /usr/lib/kbd/keytables/dk-latin1.map}. 
Äã¿ÉÒÔ¸Ä keymap µµ°¸ÖÐµÄ
\begin{verbatim}
keycode   5 = four             dollar           dollar          
\end{verbatim}

ÕâÒ»ÐÐ¸Ä³É
\begin{verbatim}
keycode   5 = four             currency         dollar
\end{verbatim}

È»ááÈç \ref{loadkbd} {(ÔØÈë keytable)} ËùÊö, (ÖØÐÂ)ÔØÈë keytable.

»õ±Ò·ûºÅ (dansk: ``soltegn'') ÔÚµ¤Âó¼üÅÌÉÏµÄÔ¤ÉèÊÇ {\ttfamily $<$Shift$>$$<$4$>$}.

ÒÔÉÏµÄ·½·¨ÔÚ X11 ºÍ Linux »·¾³ÏÂÓ¦¸Ã¶¼ÄÜÍ¨ÐÐ.




\subsubsection{\o{} (oslash) ºÍ \O{} (Oslash)}

ÔÚÄ³Ð©±È½Ï¾ÉµÄÏµÍ³Àï, ``\o{}'' and ``\O{}'' ÒÔ·Ö (cent) »òÔ² (yen)µÄÐÎÌ¬³öÏÖ.
ÔÚÄãµÄ keymap µµ°¸ÖÐ, ¿ÉÒÔÕÒµ½ keycode 40 µÄÕâÒ»ÐÐ¾ä×Ó: 
\begin{verbatim}
keycode  40 = cent              yen
\end{verbatim}

Äã¿ÉÒÔ°ÑËü¸ÄÎª
\begin{verbatim}
keycode  40 = +oslash           +Ooblique
\end{verbatim}


´Ë bug ÒÑÔÚ {\ttfamily kbd-0.88.tar.gz} ÒÔÉÏµÄ°æ±¾ÖÐÐÞÕý.

ÎªÁËÈÃ {\ttfamily Caps Lock} Õý³£ÔË×÷, ÄÇ¸ö + ·ûºÅÊÇ±ØÒªµÄ. 
ÔÚ {\ttfamily kbd-0.90.tar.gz} »ò¸üÐÂµÄ°æ±¾ÖÐ, ``Oslash'' ³£ÓÃÀ´µ±×÷ ``Ooblique'' µÄ±ðÃû.

Äã¿ÉÒÔÔÚ\nameurl{http://www.ibbnet.nl/~anne/keyboard.html}{ÕâÀï}µÃµ½¸ü¶à×ÊÑ¶.




\section{Éè¶¨ÏÔÊ¾ºÍÓ¦ÓÃ³ÌÊ½}

´ó²¿·ÝµÄÓ¦ÓÃ³ÌÊ½±ØÐë±»±àÒëÎª ``8-bit-clean'' ²ÅÄÜ³É¹¦Ê¹ÓÃÅ·ÖÞµÄ×ÖÔª, ÓÐÐ©ÉõÖÁ»¹ÐèÒª¶îÍâµÄÒ»Ð©ÐÞ¸Ä.






\subsection{ÔÚ¿ØÖÆÌ¨ÖÐÔØÈë ISO-8859-1 ×ÖÐÍ}

ÔÚ shell ÌáÊ¾×ÖÔªááÖ´ÐÐÒÔÏÂÖ¸Áî:
\begin{verbatim}
setfont lat1u-16.psf
\end{verbatim}


ÔÚ Red Hat Linux 5.2 »ò¸üÐÂµÄ°æ±¾ÏÂ, Äã¿ÉÒÔÔÚµµ°¸ {\ttfamily /etc/sysconfig/i18n} ÖÐ¼ÓÈëÏÂÁÐ¾ä×Ó:
\begin{verbatim}
SYSFONT=lat1u-16.psf
SYSTERM=linux
\end{verbatim}

ÓÉì¶ Red Hat Linux 5.2 µÄ {\ttfamily ncurses} °ü¹üÖÐÓÐ bug, ÄãµÃ°Ñµµ°¸ {\ttfamily /etc/profile.d/lang.sh} ÖÐµÄ ``linux-lat'' ¸ÄÎª ``linux''.
Red Hat Linux 6.0 ÔòÃ»ÓÐ´ËÎÊÌâ.




\subsection{Å·Ôª·ûºÅ}

µ¤Âó×ÖÔª¼¯ÀïÐÂÔöÁËÒ»¸ö·ûºÅ: Å·Ôª·ûºÅ (Å·ÖÞ»õ±ÒÁªÃËµÄÐÂ±ÒÖµ).
ÐÂµÄ×ÖÔª¼¯½Ð×÷ ISO-8859-15, Ò²¾ÍÊÇ latin0 (»ò latin9) ÒÔÈ¡´úÔ­ÏÈµÄ ISO-8859-1 (latin1).
ÎªÈ¡µÃ latin0 Ö§Ô®, Äã±ØÐëÊ¹ÓÃ \nameurl{ftp://ftp.freshmeat.net/pub/euro-patch/}{EURO} °ü¹ü.
Õâ¸ö°ü¹üÖÐ°üº¬×ÖÐÍºÍ keymap.




\subsection{Linux »·¾³ÏÂ¿ÉÏÔÊ¾µÄ×ÖÔª}

ÔÚ×ÖÔªÌáÊ¾ÊäÈë {\ttfamily dumpkeys -l $|$ less} ¼´¿ÉÖªµÀÄÄÐ©×ÖÔªÊÇ¿ÉÓÃµÄ.
Äã¿ÉÒÔÒÀ \ref{loadkbd} {(ÔØÈë keytable)} ÖÐËùÊöµÄ½«Ëü¶ÔÓ¦µ½ÄãµÄ¼üÅÌ.




\subsection{ÌØ¶¨Ó¦ÓÃ³ÌÊ½ÖÐµÄ¹ú¼Ê×ÖÔª¼¯\label{apps}}

Ä³Ð©Ó¦ÓÃ³ÌÊ½ÐèÒªÌØÊâµÄÉè¶¨. ±¾½ÚÖ¼ÔÚÐðÊöÉè¶¨µÄ·½·¨.

\begin{description}
\item[{\ttfamily bash}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.inputrc} ÖÐ¼ÓÈë:
\begin{verbatim}
set meta-flag on
set convert-meta off
set output-meta on
\end{verbatim}




\item[{\ttfamily elm}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.elm/elmrc} ÖÐ¼ÓÈëÒÔÏÂ¶¨Òå:
\begin{verbatim}
charset = iso-8859-1
displaycharset = iso-8859-1
textencoding = 8bit
\end{verbatim}


Ä³Ð©°æ±¾ {\ttfamily elm} ²»½ÓÊÜÕâÑùµÄÉè¶¨. ÈôÊ¹ÓÃ{\ttfamily metamail}, Ôò¿ÉÒÔÔÚ {\ttfamily elm} ÖÐµÃµ½²¿·ÝµÄ {\bfseries MIME} Ö§Ô®.



\item[{\ttfamily emacs}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.emacs} »òÕû¸öÏµÍ³µÄ³õÊ¼Éè¶¨µµ (Í¨³£ÊÇ {\ttfamily /usr/lib/emacs/site-lisp/default.el} »ò {\ttfamily /usr/share/emacs/site-lisp/default.el})
ÖÐ¼ÓÈëÒÔÏÂÐÐÁÐ:
\begin{verbatim}
(standard-display-european t)
(set-input-mode (car (current-input-mode))
        (nth 1 (current-input-mode))
        0) 
\end{verbatim}


ÈôÄãÊ¹ÓÃ GNU emacs v19.30 ÒÔÉÏµÄ°æ±¾, »òÊÇ XFree86 v3.1.2 ÒÔÉÏµÄ°æ±¾, ÔÚ GNU emacs ÀïÄãÓ¦¸Ã¿ÉÒÔÊ¹ÓÃËÀ¼ü (¶ÔÎÒ¶øÑÔ, Á½Õß¶¼Ã»ÎÊÌâ);
Òò´ËÄã½«²»ÐèÒªÌØµØÈ¥ÕÒÏñÊÇÓÐ ``electric keys'' Éè¶¨µÄ elisp °ü¹ü.
Èç¹ûÄãÏëÒªÔÚ emacs ÖÐÊ¹ÓÃÅ·ÖÞ¼üÅÌÉè¶¨, È´²»´òËãÉý¼¶, Äã×îºÃ´Ó \nameurl{ftp://sunsite.auc.dk/pub/emacs/auctex/ftp/auctex/}{SunSite DK} ÏÂÔØ {\ttfamily remap} °ü¹ü.
³ý´ËÖ®Íâ, {\ttfamily iso-acc.elc} ¼° {\ttfamily iso-trans.elc} ÕâÁ½¸ö°üº¬ emacs µÄ°ü¹üÒ²ÓÐÀàËÆµÄ¹¦ÄÜ, Ö»ÊÇÃ»ÓÐÄÇ÷áÇ¿´ó.



\item[{\ttfamily groff}:] \mbox{}

ÈôÄãÏëÒª ISO-8859-1 µÄÎÄ×ÖÊä³ö, Ö´ÐÐÖ¸Áî
\begin{verbatim}
groff -Tlatin1 <your_groff_input_file>
\end{verbatim}


Çë×¢Òâ: ÒªÈÃ latin1 µÄ×ÖÔªÔÚ {\ttfamily man} (²»ÒªÒÆ³ý {\ttfamily -mandoc} µÄ switch) ³É¹¦ÔË×÷, ±ØÐëÔÚ {\ttfamily /etc/man.config} ÖÐÖ´ÐÐÕâÏî±ä¸ü.





\item[{\ttfamily ispell} --- µ¤ÂóÓïÆ´×Ö¼ì²é:] \mbox{}

Ê×ÏÈ, È·¶¨Äã°²×°µÄÊÇ°æ±¾ 3.1.20 ¶ø²»ÊÇ 4.0 µÄ {\ttfamily ispell}.
ááÕß²»µ«¹ýÊ±, ¶øÇÒÉè¼ÆºÜÔã¸â.
Äã¿ÉÒÔ´Ó \nameurl{ftp://sunsite.auc.dk/pub/gnu/}{the GNU archive}
ÏÂÔØ {\ttfamily ispell}, ²¢´Ó\nameurl{http://www.sslug.dk/ispell/idanish/dansk.html}{SSLUG} È¡µÃµ¤ÂóÓï×Öµä. 
ÒÀÕÕµµ°¸ÖÐµÄ±àÒëÖ¸Ê¾È¥×ö, ¾ÍÓ¦¸Ã²»»áÓÐÎÊÌâ.
(¾¯¸æ: ÔÚÎª±àÒë×÷±äÊý¶¨ÒåÊ±, Èç¹ûÄãµÄ Linux ÊÇ Sys V typs OS, Äã±ØÐë¶¨Òå {\ttfamily USG} Õâ¸ö±äÊýÒÔ¸æÖª ispell.)

Îª {\ttfamily ispell} °²×°ºÃ×Öµäáá, Äã¿ÉÒÔÖ´ÐÐÒÔÏÂÖ¸ÁîÀ´×öÒ»¸öµ¤ÂóÓïµµ°¸µÄÆ´×Ö¼ì²é:
\begin{verbatim}
ispell -d danish -T latin1 -w "¡õ¡õ¡õ" <ÄãµÄµ¤ÂóÓïÎÄ×Öµµ> 
\end{verbatim}


(×¢, ¸ø·Çµ¤ÂóÓï¶ÁÕß: Äã¿ÉÒÔÔÚ {\ttfamily ispell} µÄ×ÊÔ´µµ°¸ {\ttfamily Where} ÖÐÕÒµ½´ó²¿·ÝÎ÷·½ÓïÎÄµÄ×Öµä.)



\item[{\ttfamily joe}:] \mbox{}

Ö´ÐÐÖ¸Áî
\begin{verbatim}
joe -asis
\end{verbatim}

»òÔÚµµ°¸ {\ttfamily \~{}/.joerc} ÖÐ¼ÓÈë:
\begin{verbatim}
-asis
\end{verbatim}


Á¬×ÖºÅ ( - ) Ò»¶¨Òª·ÅÔÚµÚÒ»ÐÐÀï! 



\item[{\ttfamily kermit}:] \mbox{}

ÎÒÄÜ×öµ½×îºÃµÄµØ²½ÊÇ, ÔÚµµ°¸ {\ttfamily \~{}/.kermrc} ÖÐ¼ÓÈë:
\begin{verbatim}
set terminal bytesize 8
set command bytesize 8
set file bytesize 8
set language danish
set file character-set latin1-iso
set transfer character-set latin1-iso
set terminal character-set latin1-iso
\end{verbatim}


ÎÒ¾õµÃÓ¦¸Ã²»Ö»ÒªÉè¶¨ÕâÐ©±äÊý, µ«ÎÒ²»ÖªµÀ»¹ÓÐÄÄÐ©.
Èç¹ûÄãµÄÔ¶¶ËÏµÍ³ÊÇÒÔ DOS »ò OS/2 ×ö¸ù¾ÝµÄ, Äã±ØÐë×öÒÔÉÏµÄÉè¶¨.





\item[{\ttfamily less}:] \mbox{}

Éè¶¨»·¾³±äÊý:
\begin{verbatim}
LESSCHARSET=latin1
\end{verbatim}

Èç¹ûÄãµÄÏµÍ³Ö§Ô®ÇøÓò»¯×ÊÁÏ¿â (locale), ¾Í²»ÐèÒª×öÕâÏî¸ü¸Ä, Ö»ÐèÒªÉè¶¨ {\ttfamily LANG}, {\ttfamily LC\_CTYPE} »ò {\ttfamily LC\_ALL} 
(Çë²Î¼û \ref{locale} {(ÔÚ libc 5.4.x ÒÔÉÏ°æ±¾ÖÐÖ§Ô®ÇøÓò»¯×ÊÁÏ¿â (locale))}.)



\item[{\ttfamily ls}:] \mbox{}

Ö´ÐÐÖ¸Áî
\begin{verbatim}
ls -N
\end{verbatim}

»òÊÇ
\begin{verbatim}
ls --8bit
\end{verbatim}




\item[{\ttfamily lynx}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.lynxrc} ÖÐ¼ÓÈë¶¨Òå:
\begin{verbatim}
character_set=ISO Latin 1
\end{verbatim}


ÄãÒ²¿ÉÒÔÔÚ {\ttfamily lynx} µÄ {\ttfamily Options} Ñ¡µ¥ÖÐ×ö³öÍ¬Ñù½á¹ûµÄÉè¶¨. 
¼üÈë `o' ²¢Éè¶¨Ïà¹ØÑ¡Ïî. 



\item[{\ttfamily man}:] \mbox{}

Çë²Î¼û±¾½ÚÖÐµÄ {\ttfamily groff} ²¿·Ö.



\item[{\ttfamily metamail}:] \mbox{}

Éè¶¨»·¾³±äÊý:
\begin{verbatim}
MM_CHARSET=ISO-8859-1
\end{verbatim}




\item[{\ttfamily nn}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.nn/init} ÖÐ¼ÓÈë:
\begin{verbatim}
set data-bits 8
\end{verbatim}




\item[{\ttfamily pine}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.pinerc} ÖÐ¼ÓÈë¶¨Òå:
\begin{verbatim}
character-set=ISO-8859-1
\end{verbatim}


ÄãÒ²¿ÉÒÔÔÚ {\ttfamily pine} µÄ {\ttfamily Setup}, {\ttfamily Config} Ñ¡µ¥Ñ¡ÏîÖÐ×ö³öÏàÍ¬½á¹ûµÄÉè¶¨.
ÁíÍâ, ÄãÒ²¿ÉÒÔ·ÅÐÄµØÔÚÑ¡µ¥ÖÐÑ¡Ôñ {\ttfamily enable-8bit-esmtp-negotiation} ºÍ {\ttfamily enable-8bit-nntp-posting} (for news).



\item[{\ttfamily rlogin}:] \mbox{}

Ö´ÐÐÖ¸Áî
\begin{verbatim}
rlogin -8 foo.bar.dk
\end{verbatim}




\item[{\ttfamily sendmail}:] \mbox{}

ÔÚµµ°¸ {\ttfamily /etc/sendmail.cf} ÖÐ¼ÓÈë (»òÈ¥µô×¢½â·ûºÅ):
\begin{verbatim}
O SevenBitInput=False
O EightBitMode=pass8
O DefaultCharSet=iso-8859-1
\end{verbatim}




\item[{\ttfamily tcsh}:] \mbox{}

ÔÚµµ°¸ {\ttfamily /etc/csh.login} »ò {\ttfamily \~{}/.tcshrc} ÖÐ¼ÓÈë:
\begin{verbatim}
setenv LANG C
\end{verbatim}


ÊÂÊµÉÏ, ÄãÖ»ÐèÒª¶¨Òå {\ttfamily LANG} »ò {\ttfamily LC\_CTYPE} ÕâÁ½¸ö»·¾³±äÊýµÄÆäÖÐÒ»¸ö. 
±äÊýµÄÖµÎÞ¹Ø½ôÒª. ÇëÔÄ¶Á {\ttfamily tcsh} man page ÒÔ»ñµÃ¸ü¶à×ÊÑ¶.



\item[{\ttfamily telnet}:] \mbox{}

ÔÚµµ°¸ {\ttfamily \~{}/.telnetrc} ÖÐ, Îª"Ã¿Ò»¸ö"ÄãÏëÒªÊ¹ÓÃ {\ttfamily telnet} µÇÈëµÄ host ¼ÓÈëÒÔÏÂ¾ä×Ó:
\begin{verbatim}
<hostname> set outbinary true
\end{verbatim}


ÀýÈç:
\begin{verbatim}
localhost set outbinary true
foo.bar.dk set outbinary true
\end{verbatim}


\label{latex}

\item[\TeX{}/\LaTeX{}:] \mbox{}

ÔÚÊ¹ÓÃ \TeX{}/\LaTeX{} Ê±,»áÅöµ½¸öÎÊÌâÊÇ: ÄãÏ£ÍûÄÜÔÚ \LaTeX{} ÖÐÊ¹ÓÃÌØÊâ×ÖÔª, ÓÖ²»Ï£Íû \LaTeX{} 
ÔÚÃ¿¸öÕÂ½ÚµÄ¿ªÍ·¼ÓÈëÏñ "Chapter'' Ö®ÀàµÄÓ¢ÎÄ×Ö, Ò²²»ÏëÒªÊ¹ÓÃÓ¢ÎÄµÄÎÄ×ÖÅÅ°æ.

ÔÚ \LaTeXe{} ÏÂ, Äã»ãÈëµÄµµ°¸µÄ header Ó¦¸Ã»á¿´ÆðÀ´ÏñÕâÑù:
\begin{verbatim}
\documentclass[letterpaper,english]{article}

\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[danish]{babel}
\end{verbatim}


µÚÒ»¸ö {\ttfamily usepackage} µÄ¾ä×ÓÈ·±£ \LaTeX{} »áÕýÈ·½â¶ÁÅ·ÖÞ×ÖÔª, Òò´Ë, Äã²»±ØÌØµØÊ¹ÓÃ escape ×ÖÔªÀ´ÊäÈëÅ·ÖÞ×ÖÔª.
µÚ¶þ¸ö {\ttfamily usepackage} µÄ¾ä×Ó²¢·Ç±ØÒª, µ«ÈôÒªÊ¹ÓÃÐÂµÄ EC ×ÖÐÍ (ÒÔÇ°±»³Æ×÷ DC ×ÖÐÍ), Ôò½¨Òé¼ÓÈë.
µÚÈý¸ö {\ttfamily usepackage} µÄ¾ä×Ó¶¨ÒåÈô¸Éµ¤ÂóÓïµÄÎÄ×ÖÅÅ°æ.

ËùÓÐÖ÷ÒªµÄ Linux °æ±¾¶¼°üº¬ {\bfseries teTeX} °ü¹ü.
ÈôÒªÉè¶¨ teTex, Äã±ØÐëÖ´ÐÐÃüÁî¸å (script) {\ttfamily texconfig}. 
ÔÚ´ËÄã¿ÉÑ¡Ôñµ¤ÂóÓïµÄÁ¬×Ö·ûºÅ (dansk: ``orddeling''), Îª {\ttfamily dvips} ºÍ {\ttfamily xdvi} Éè¶¨ A4 Ö½ÕÅ´óÐ¡µÈµÈ.

ËùÓÐ¹»ÐÂµÄ Linux °æ±¾¶¼°üº¬ \LaTeXe{}, µ«ÔÚ±È½ÏÀÏ¾ÉµÄÏµÍ³Àï, ÄãÊ¹ÓÃµÄ¿ÉÄÜÊÇ \LaTeX{} 2.09. 
Èç¹ûÊÇÕâÑùµÄ»°, Äã¿ÉÒÔÓÃ 
\begin{verbatim}
\documentstyle[a4,isolatin]{article}
\end{verbatim}

À´Ö§Ô® ISO-8859-1 ×ÖÔªºÍÅ·ÖÞÖ½ÕÅ´óÐ¡¹æ¸ñ. 
µ«ÎÒ½¨ÒéÄã×îºÃÒªÇóÏµÍ³ administrator Éý¼¶µ½ \LaTeXe{}.

Äã¿ÉÒÔ´ÓÈÎÒ» \nameurl{ftp://sunsite.auc.dk/pub/tex/ctan/}{CTAN servers}
ÍøÕ¾ÏÂÔØ {\ttfamily isolatin.sty}.

Ä³Ð©ÈËÆ«ºÃÊ¹ÓÃÌØÊâÄ£Ê½ÏÂµÄ emacs, ÒòÎª¿ÉÒÔ½«"ÌØÊâ"×ÖÄ¸×ª±ä³É \TeX{} escape Âë.
Õâ¸ö·½·¨ÒÑ¾­²»ÊÊÓÃÁË.



\item[{\ttfamily tin}:] \mbox{}

ÔÚÄãµÄµµ°¸ {\ttfamily \~{}/.tin/headers} ÖÐ¼ÓÈë:
\begin{verbatim}
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
\end{verbatim}


Èç´ËÒ»À´, Äã¾Í¿ÉÒÔÔÚÑ¶Ï¢ÖÐÊ¹ÓÃµ¤Âó×ÖÔª.

\end{description}





\section{ÆäËûÎÊÌâ}


\subsection{Ê±Çø}

µ¤ÂóµÄÊ±ÇøÊôì¶ÖÐÅ·Ê±Çø (CET »ò MET), (ÔÚ¶¬ÌìÊ±) ÏàµÈì¶¸ñÁÖÍþÖÎ±ê×¼Ê±¿Ì+1 (GMT+1.)
ÔÚ Linux ÏµÍ³ÏÂÉè¶¨Ê±ÇøµÄ·½Ê½ÊÇ½¨Á¢Ò»¸ö½Ý¾¶,
Á¬½á {\ttfamily /usr/lib/zoneinfo/localtime} ºÍÎ»ì¶ {\ttfamily /usr/lib/zoneinfo/} Ä¿Â¼ÏÂ·ûºÏÄãµÄÊ±Çø»ò¹ú¼ÒµÄµµ°¸Ãû.
ÈôÄãÊÇµ¤ÂóÈË, Äã¿ÉÒÔÖ´ÐÐÒÔÏÂÖ¸Áî:
\begin{verbatim}
ln -sf /usr/lib/zoneinfo/MET /etc/localtime
\end{verbatim}

»ò
\begin{verbatim}
ln -sf /usr/lib/zoneinfo/Europe/Copenhagen /etc/localtime
\end{verbatim}


Èç´ËÒ»À´, ÔÚÏÄÌìµÄÊ±ºò, ÏµÍ³½«»á×Ô¶¯Éè¶¨ÈÕ¹â½ÚÔ¼Ê±¼ä (GMT+2.)

ÈôÐèÒª½«ÏµÍ³Ê±¼äÓë CMOS Ê±ÖÓÍ¬²½, ÄãÐèÒÔ root Éí·ÝÖ´ÐÐÖ¸Áî {\ttfamily clock}. 
ÈôÄãµÄ CMOS Ê±ÖÓÊÇÉè¶¨Îª GMT (ÓÖÃû UTC --- the standard on proper Unix systems), ÇëÖ´ÐÐ
\begin{verbatim}
clock -u -s
\end{verbatim}

¶øÈôÄãµÄ CMOS Ê±ÖÓÊÇÉèÎª±¾µØÊ±¼ä, ÔòÖ´ÐÐ
\begin{verbatim}
clock -s
\end{verbatim}





\subsection{A4 Ö½ÕÅ´óÐ¡}

\begin{itemize}
\item {\ttfamily ghostscript}:
¼ÓÈëÃüÁîÁÐÑ¡Ïî {\ttfamily -sPAPERSIZE=a4}.
\item {\ttfamily ghostview}: ¶¨ÒåÒÔÏÂ Xresource:
\begin{verbatim}
Ghostview.pageMedia:  A4
\end{verbatim}

\item {\ttfamily \TeX{}/\LaTeX{}}, {\ttfamily dvips}, {\ttfamily xdvi}: Çë²Î¼û \ref{latex} {(ÌØ¶¨Ó¦ÓÃ³ÌÊ½ÖÐµÄ¹ú¼Ê×ÖÔª¼¯)} ÖÐ \TeX{}/\LaTeX{} µÄ²¿·Ö.
\end{itemize}





\subsection{ÆäËû×÷ÒµÆ½Ì¨µÄÎÄ×Öµµ¸ñÊ½}

Äã¿ÉÒÔÊ¹ÓÃ {\ttfamily recode} °ü¹ü½« ISO-8859-1 ¸ñÊ½µÄÎÄ×Öµµ×ªÒëÎªÆäËû¸ñÊ½, ÀýÈçÊ¹ÓÃ codepage 850 µÄ DOS ÎÄ×Öµµ.
Ê¹ÓÃÏÂÁÐÖ¸Áî
\begin{verbatim}
recode cp850:latin1 foo.txt
\end{verbatim}

¾Í¿ÉÒÔ½«Ò»¸öÃûÎª {\ttfamily foo.txt} µÄµµ°¸×ªÎªÊÊµ±µÄ UNIX µµ.

ÓûÈ¡µÃ {\ttfamily recode}, Äã¿ÉÒÔ´Ó \nameurl{ftp://sunsite.auc.dk/pub/gnu/}{the GNU archive} 
µÄÈÎÒ»Ó³ÉäÕ¾ÖÐÏÂÔØ {\ttfamily recode-3.4.tar.gz}.




\section{ÔÚ libc 5.4.x ÒÔÉÏ°æ±¾ÖÐÖ§Ô®ÇøÓò»¯×ÊÁÏ¿â (locale)\label{locale}}

{\ttfamily libc 5.4.x} °æ±¾ÒÑ¾­¾ß±¸ locale Ö§Ô®. 
Èç¹ûÄãµÄÏµÍ³Ö§Ô® locale, Äã¾Í²»ÐèÒªÏñ \ref{apps} {(ÌØ¶¨Ó¦ÓÃ³ÌÊ½ÖÐµÄ¹ú¼Ê×ÖÔª¼¯)} ÄÇÑùÕë¶ÔÃ¿¸ö³ÌÊ½×öÉè¶¨.
ÓûÔÚ Debian ÖÐÈ¡µÃ´ËÖ§Ô®, Äã±ØÐë°²×° {\ttfamily wg15-locale} °ü¹ü. 
¾ß±¸ {\ttfamily GNU libc 2} ({\ttfamily libc 6.x}) µÄÏµÍ³ÔòÔ¤ÉèÖ§Ô® locale (Ïê¼û±¾½ÚÄÚ¹Øì¶ Red Hat Linux 5.0 °æ±¾µÄ×ÊÑ¶.)

ÈôÄãµÄÏµÍ³²»Ö§Ô® locale, Äã¿ÉÒÔÊ¹ÓÃÒÔÏÂ·½·¨È¡µÃÖ§Ô®:
\begin{enumerate}
\item È·¶¨ÄãÊ¹ÓÃ×îÐÂµÄ {\ttfamily libc 5.4.x} library. ÈôÃ»ÓÐ, Äã¿ÉÒÔ´Ó \nameurl{ftp://ftp.yggdrasil.com/private/hjl/}{Yggdrasil Computing} È¡µÃ.
\item È·¶¨ÄãÒÑ°²×° {\ttfamily localedef}. Õâ¸ö³ÌÊ½ÊÇ¸úÖø library Ò»Æð°²×°µÄ.
\item È¡µÃ locale À´Ô´µµ. ¿É´Ó DKUUG È¡µÃ. Äã±ØÐëÍ¬Ê±ÓµÓÐ
\nameurl{ftp://dkuug.dk/i18n/WG15-collection/locales/}{locale}
ºÍ \nameurl{ftp://dkuug.dk/i18n/WG15-collection/charmaps/}{charmap}
À´Ô´µµ.
\item ½« locale À´Ô´µµ·ÅÈë {\ttfamily /usr/share/i18n/locales/}, ²¢½« charmap À´Ô´µµ·ÅÈë {\ttfamily /usr/share/i18n/charmaps/}.
\item Ö´ÐÐ {\ttfamily localedef} ÒÔ½¨Á¢ locale ×ÊÁÏµµ:
\begin{verbatim}
localedef -ci da_DK -f ISO_8859-1:1987 da_DK
\end{verbatim}

(×¢, ¸ø·Çµ¤ÂóÓï¶ÁÕß: ÆäËûÓïÑÔµÄ locale Ò²¿ÉÒÔÍ¬Ñù·½Ê½½¨Á¢. ËùÓÐ locale ºÍ charmap À´Ô´µµ¶¼ÔÚ DKUUG ÍøÕ¾ÉÏ.)
\end{enumerate}


Äã¿ÉÉè¶¨ÏÂÁÐÁ½¸ö»·¾³±äÊýÖÐµÄÆäÖÐÒ»¸öÒÔÈ¡µÃµ¤ÂóÓï locale Ö§Ô®:
\begin{verbatim}
LANG=da_DK
\end{verbatim}

»ò
\begin{verbatim}
LC_ALL=da_DK
\end{verbatim}


Èç¹û {\ttfamily da\_DK} ÐÐ²»Í¬, ÇëÊÔÊÔ {\ttfamily da\_DK.ISO\_8859-1}.

ÕâÁ½¸ö»·¾³±äÊý¶¼»áÉè¶¨ËùÓÐµÄ locale Ä¿Â¼. 
ÈôÒªÉèÁ¢Ò»¸öµ¥¶ÀµÄ locale Ä¿Â¼, Çë½«Ä¿Â¼ÃûÉèÎª»·¾³±äÊý.
locale Ä¿Â¼ÈçÏÂ:
\begin{verbatim}
Locale category         Application
---------------         -----------
LC_COLLATE              ×Ö´®Ð£¶Ô (ÅÅÐò)
LC_CTYPE                ×ÖÔª·ÖÀà¼°×ª»»
LC_MESSAGES             yes »ò no µÄÑ¶Ï¢·­Òë
LC_MONETARY             »õ±Ò·ûºÅ¸ñÊ½
LC_NUMERIC              ·ÇÊý×Ö·ûºÅ¸ñÊ½ 
LC_TIME         ÈÕÆÚÓëÊ±¼ä¸ñÊ½
LC_ALL                  ÒÔÉÏËùÓÐµÄÉè¶¨ (½«»á¸²Ð´ÒÔÉÏËùÓÐµÄÉè¶¨)
LANG                    Éè¶¨ËùÓÐÄ¿Â¼, µ«¿É±»ÒÔÉÏÈÎÒ»µ¥¶ÀµÄÄ¿Â¼¸²Ð´µô
\end{verbatim}


ÔÚ Red Hat Linux 5.2 ÏÂ, Äã¿ÉÒÔÔÚµµ°¸  {\ttfamily /etc/sysconfig/i18n} ÖÐÉè¶¨»·¾³±äÊý LANG ÒÔ¼°/»ò LC\_ALL:
\begin{verbatim}
LC_ALL=da_DK
\end{verbatim}


Ä³Ð©³ÌÊ½, ÏñÊÇ {\ttfamily bash} ºÍ {\ttfamily GNU emacs} ÈÔÐèÒªÈç\ref{apps} {(ÌØ¶¨Ó¦ÓÃ³ÌÊ½ÖÐµÄ¹ú¼Ê×ÖÔª¼¯)} ÖÐËùÊöµÄÌØÊâÉè¶¨³ÌÐò,
µ«´ó²¿·ÝµÄ³ÌÊ½¾Í²»ÐèÒª½øÒ»²½µÄÐÞ¸Ä. 
ÔÚ¾­¹ýÒÔÉÏ²½Öèáá, Ô­ÏÈ²»½ÓÊÜ 8-bit ×ÖÔªµÄ³ÌÊ½, ÖîÈç {\ttfamily nvi}, Ó¦¸Ã¾Í¿ÉÒÔÓÃÁË.

¾ß±¸ {\ttfamily GNU libc 2} µÄ°æ±¾ÍùÍùÖ§Ô® locale, µ«Çë×¢Òâ: ËäÈ» Red Hat Linux 5.0 
¾ß±¸ {\ttfamily GNU libc 2}, µ«ËüÈ´²»Ö§Ô® locale. 
Äã±ØÐë×Ô¼ºÖ´ÐÐ {\ttfamily localedef} ÒÔ½¨Á¢ locale ×ÊÁÏµµ. 
ÒÔÏÂÖ¸Áî½«»á½¨Á¢µ¤ÂóÓï locale ×ÊÁÏµµ:
\begin{verbatim}
localedef -c -i da_DK -f ISO-8859-1 da_DK
\end{verbatim}


{\ttfamily glibc-2.0.7-4.i386.rpm} µÄ library ÖÐÒÑ°üº¬ locale ×ÊÁÏµµ, ²»ÐèÒª¶îÍâµÄÉè¶¨.




\section{ÔÚ X11ÏÂ±àÐ´³ÌÊ½µÄÒ»Ð©Ð¡¼¼ÇÉ\label{programming}}

ÏÔÊ¾ 8-bit ×ÖÔªÊÇºÜÈÝÒ×µÄ. ·½·¨ÓëÊ¹ÓÃ 7-bit ASCII ÏàÍ¬.
È»¶ø, ÒªÈÃÓ¦ÓÃ³ÌÊ½½ÓÊÜÌØÊâ×ÖÔªÊäÈë¾ÍÃ»ÓÐÄÇ÷á¼òµ¥ÁË.

ÈôÄãÊ¹ÓÃÏñ Xt toolkit ÕâÑùµÄ³ÌÊ½, »òÊÇÀàËÆ Motif µÄ½çÃæ¹¤¾ß¼¯, 
ÄãÖ»ÐèÒªÔÚÄãµÄ³ÌÊ½ÖÐ¼ÓÈëÒ»ÐÐ¾ä×Ó.
ÔÚÄã"µÚÒ»´Î"Ê¹ÓÃ XtÊ±, Ê¹ÓÃ {\ttfamily XtSetLanguageProc} ÈçÏÂ:
\begin{verbatim}
    int main (int argc, char** argv)
    {
        ...
        XtSetLanguageProc (NULL, NULL, NULL);
        top = XtAppInitialize ( ... );
        ...
    }
\end{verbatim}


ÕâÑù, ÄãµÄ³ÌÊ½»á×Ô¶¯ÔÚ {\ttfamily /usr/X11R6/lib/X11/locale/} Ä¿Â¼ÏÂÒÀ¾Ý {\ttfamily Compose} table À´¶ÔÕÕ {\ttfamily LC\_CTYPE} ±äÊý,
²¢½â¶ÁËÀ¼üµÈ. 
Õâ¸ö·½·¨Ó¦ÄÜÍ¨ÐÐËùÓÐÎ÷Å·¹æ¸ñ¼üÅÌ.
ËæÖø XFree86 ¶àÓïÏµÖ§Ô®¹¦ÄÜµÄ½ø²½, ÄãµÄ³ÌÊ½½«ÂýÂýÄÜ¹»ÔÚ¶«Å·ºÍÖÐÅ·Í¨ÓÃ.

Xt, Xlib, ºÍ Motif (°üÀ¨ v1.2 ÒÔÉÏµÄ°æ±¾) ¶¼Ö§Ô®ÕâÖÖÊäÈë·¨. 
¸ù¾ÝÎÒËùµÃµ½µÄÏûÏ¢, Xaw Ö»²¿·ÝÖ§Ô®´ËÊäÈë·¨. 
ÈôÄãÓÐ½øÒ»²½µÄ×ÊÑ¶, ÇëÍ¨ÖªÎÒ.

±¾½ÚµÄÄÚÈÝÈ¡×Ô Michael Gschwind µÄ Programming for Internationalization. 
Äã¿ÉÒÔ´Ó\ref{docs} {(ÆäËûÏà¹ØÎÄ¼þ)}Á¬½áµ½ÄÇ·ÝÎÄ¼þ.




\section{ÔÚ X11 Ó¦ÓÃ³ÌÊ½ÖÐÊ¹ÓÃµ¤ÂóÓï}

ÏëÒªÔÚ X11 µÄÓ¦ÓÃ³ÌÊ½ÖÐ¿´¼ûµ¤ÂóÓïµÄÑ¡µ¥, °´Å¥µÈ, ÄãÖ»ÐèÒª½«·­Òë¶¨ÒåÕâÐ©ÎÄ×ÖµÄÀ´Ô´×Ö´®.
Jacob Nordfalk ÒÑÎªÐí¶àÓ¦ÓÃ³ÌÊ½×öÁËÕâÑùµÄ·­Òë, °üÀ¨ {\ttfamily Netscape} ºÍ {\ttfamily Ghostview}. 
Äã¿ÉÒÔÔÚ \nameurl{http://alf.nbi.dk/~nordfalk/ovs/}{ÕâÀï} ÕÒµ½·­ÒëºÍ°²×°ËµÃ÷.




\section{×ÊÑ¶×ÊÔ´}


\subsection{ÆäËûÏà¹ØÎÄ¼þ\label{docs}}

Äã¿ÉÒÔ´Ó {\ttfamily www.linuxdoc.org} µÄÈÎÒ»Ó³ÉäÕ¾È¡µÃÕâÐ© HOWTO.
\nameurl{http://sunsite.auc.dk/ldp/HOWTO/}{SunSite DK} ÊÇÒ»¸öµ¤ÂóÓ³ÉäÕ¾.

Winfried Tr\"umper Ð´µÄµÂÓï HOWTO. ÆäËûÏñÊÇ·ÒÀ¼Óï, Î÷°àÑÀÓï, ºÍ²¨À¼Óï¶¼ÒÑ¾­ÓÐÁËÒÔÄ¸ÓïÐ´³ÉµÄ HOWTO.

Andries Brouwer Ð´µÄ Linux ¼üÅÌºÍ¿ØÖÆÌ¨ HOWTO.

\nameurl{http://www.vlsivie.tuwien.ac.at/mike/i18n.html}{ÕâÀï}ÓÐ ISO 8859-1 National Character Set FAQ,
Programming for Internationalization, ÒÔ¼°Ðí¶àÆäËû  Michael Gschwind Ð´µÄÎÄ¼þ.






\subsection{FTP ¼°ÍøÕ¾\label{ftp}}

\nameurl{http://www.sslug.dk/}{SSLUG (Sk\aa{}ne Sj\ae{}lland Linux User Group)} ÊÇÒ»¸öÈðµäÓï/µ¤ÂóÓï Linux user group.
Äã¿ÉÒÔ´ÓËûÃÇµÄÐÅ¼þÈº×éÖÐµÃµ½Ðí¶àÒÔµ¤ÂóÓï(»òÈðµäÓï)Ð´ÏÂµÄLinuxÏà¹ØÎÊÌâ.
Õâ¸ö user group Í¬Ê±¸ºÔðÎ¬»¤\nameurl{http://www.sslug.dk/DanishHowto/}{Õâ·ÝÎÄ¼þ}.

\AA{}lborg µÄ AUC  µÄÖ÷Õ¾ÊÇ \nameurl{ftp://sunsite.auc.dk/pub/os/linux/}{SunSite DK}. ËüÃÇ·¢ÐÐ Debian ¼° Red Hat °æ±¾µÄ Linux, 
×îÐÂµÄ kernel, ÒÔ¼° \nameurl{http://sunsite.auc.dk/ldp/}{Linux Documentation Project}, \nameurl{ftp://sunsite.auc.dk/pub/os/linux/sunsite/}{metalab.unc.edu} ¼° \nameurl{ftp://sunsite.auc.dk/pub/gnu/}{the GNU archive}
µÄÓ³ÉäÕ¾. 
ÁíÍâ, Äã¿ÉÒÔ´Ó \nameurl{ftp://sunsite.auc.dk/pub/tex/ctan/}{the CTAN archive} Õâ¸öÓ³ÉäÕ¾µÃµ½Ò»ÇÐºÍ \TeX{} Óë \LaTeX{} Ïà¹ØµÄ×ÊÑ¶.






\section{°æÈ¨}

¸ÐÐ» Peter Dalgaard, Anders Majland, Jon Haugsand, Jacob Nordfalk, µÂÓï HOWTO µÄ×÷ÕßÃÇ, Michael Gschwind ÒÔ¼°Ðí¶àÆäËûÈË¸øÓèÎÒµÄ½¨ÒéºÍ°ïÖú.
ÎÒÖÔÐÄ¸Ð¼¤ Aalborg University Center µÄÈË, ÊÇËûÃÇÐ´³ö²¢·¢ÐÐÐí¶à±¾ÎÄ¼þÖÐËùÌá¼°µÄ°ü¹ü.
ÌØ±ð¸ÐÐ»±¾ÎÄ¼þµÄÔ­×÷Õß, Thomas Petersen.




\subsection{°æÈ¨ËùÓÐ}

±¾ÎÄ¼þµÄ×÷Õß²¢²»ÄÜ¹»ÍêÈ«±£Ö¤ÎÄ¼þÄÚÈÝÖÐËùÓÐÌá¹©µÄ×ÊÑ¶¶¼ÊÇÃ»ÓÐ´íÎóµÄ. 
Äã±ØÐëÕå×ÃÇé¿öÊ¹ÓÃÎÄ¼þÖÐµÄÌáÊ¾ºÍ¡õÀý.

Copyright \copyright{} 1996 by Thomas Petersen. Copyright \copyright{} 1997-2000
by Niels Kristian Bech Jensen.
Õâ·ÝÎÄ¼þÖ»ÄÜÔÚ·ûºÏ\nameurl{http://www.linuxdoc.org/COPYRIGHT.html}{http://www.linuxdoc.org/COPYRIGHT.html} ÀïµÄ LDP license µÄÇé¿öÏÂ·¢ÐÐ.

(Ô­ÎÄ)
Trademarks are owned by their owners.

Although the information given in this document is believed to be correct,
the author will accept no liability for the content of this document. Use
the tips and examples given herein at your own risk.

Copyright \copyright{} 1996 by Thomas Petersen. Copyright \copyright{} 1997-2000
by Niels Kristian Bech Jensen. This document may be distributed only subject
to the terms and conditions set forth in the LDP license at \nameurl{http://www.linuxdoc.org/COPYRIGHT.html}{http://www.linuxdoc.org/COPYRIGHT.html}.



\end{document}
