在Linux下使用丹麥語/其他國際語言 HOWTO <author> 作者: Niels Kristian Bech Jensen <tt/nkbj@sslug.dk/<newline> 譯者: 曾慧涵 <tt/azurlachesis@msn.com/ <date>v2.6, 9 March 2000 <abstract> <nidx>Danish language support (see Danish)</nidx> <nidx>Danish</nidx> 這份文件敘述如何為 Linux 及 Linux 相關應用程式丹麥語化, 包括鍵盤設置, 字型, 紙張大小等. 希望其他西歐語系的 Linux 使用者也能從這份文件中獲益. </abstract> <toc> <sect>導言 <nidx>Danish!introduction</nidx> <p> 幾乎所有歐洲的作業系統使用者都會遇到以下兩個問題: 第一, 如何讓電腦知道你使用的是非美系的鍵盤; 第二, 如何讓電腦顯示特殊字元. 更糟糕的是, 有些應用程式會因為你不是美國人而要求你做特殊設定, 或是更改環境變數. 在 Linux 裡, 你可以用指令<tt/loadkeys/ 和 <tt/xmodmap/ 來改變鍵盤設定. <tt/loadkeys/ 指令只更改純 Linux 環境下的鍵盤, 而 <tt/xmodmap/ 在 Linux 和 X11 之間交換字元的程序不完整時, 會做適當的調整. 為了要正確顯示字元, 你必需告訴應用程式你使用的是 ISO-8859-1 ( 亦即Latin-1) 的國際字元集. 對某些常用的應用程式來說, 這是必要的步驟. 這份 HOWTO 文件目的在於告訴丹麥語使用者如何讀寫丹麥語. 如果在閱讀這份文件後, 你還是碰到問題, 請參考德語 HOWTO, Linux 鍵盤和控制台 HOWTO , 或是 ISO 8859-1 National Character Set FAQ. 本文件中許多的提示說明都是出自這三份文件的內容. 請參見 <ref id="docs" name="其他相關文件"> 來連結到這些文件. 同時, 請你寄信給我, 並敘述你碰到的問題. 最後一個問題是: 許多應用程式的錯誤訊息, 選單和說明文件都是英文的. 有一個 GNU 計劃正在著手解決這個問題. 你可以從你喜愛的 GNU 映射站中下載 <tt/ABOUT-NLS/ 或是 <tt/gettext-0.10.tar.gz/ 包裹以了解此計劃. 這個計劃需要自願者參與翻譯工作. 如果你想要為計劃中的丹麥語部份出力, 請寄信到 <tt/da-request@li.org/ 並在內容寫上 "subscribe". <tt/gettext/ 中的說明文件會告訴你如何在你的程式中使用翻譯. <sect>設定鍵盤 <nidx>Danish!keyboard configuration</nidx> <sect1>載入鍵盤表 (keytable)<label id="loadkbd"> <nidx>Danish!keytable, loading</nidx> <p> 你可使用兩個工具來設定你的鍵盤. 在純 Linux 環境下, 你可以用<tt/loadkeys/ , 而在 X11 下則用 <tt/xmodmap/. 欲使用 <tt/loadkeys/ 指令, 你可以執行: <verb> loadkeys /usr/lib/kbd/keytables/dk.map </verb> 或 <verb> loadkeys /usr/lib/kbd/keytables/dk-latin1.map </verb> 這兩個鍵盤對應表 (keymap) 的差異在於, <tt>dk-latin1.map</tt> 可以使用死鍵, 而 <tt>dk.map</tt> 不行. 死鍵在 <ref id="deadkeys" name="死鍵和重音字元"> 中會解釋到. <tt/loadkeys/ 和 keymap 都是 Linux 裡通行的 <tt/kbd-0.??.tar.gz/ ( ?? 代表不同版本) 包裹中的一部份. <tt/loadkeys/ 通常是在系統啟動時, 從 <tt>/etc/rc.d/</tt> 目錄下的某一個命令稿 (script) 執行的. 不同的系統和版本作法各不相同. (註, 給非丹麥語讀者: 其他語系的支援也是以類似方法設定的, 例如西班牙語鍵盤是用 <tt/es.map/ .) XFree86 從 3.1.2 以上的版本 (包括3.1.2) 通常都使用純 Linux 環境下的 keymap, 但在 X11 下你可以用 <tt/xmodmap/ 來改變鍵盤設定. 如果在你的 home 目錄下有一個叫 <tt>.Xmodmap</tt> 的檔案, X11 就會在啟動時自動替你執行這個指令. 若使用版本 3.2 以上的 XFree86, 在你的 <tt>/etc/XF86Config</tt> (或 <tt>/etc/X11/XF86Config</tt>) 檔案中, 應有一個<tt/Keyboard/ 區塊如下列 ( 如果選擇使用丹麥語的 keytable, 一個叫 <tt/XF86Setup/ 的程式應該會自動替你做好這件事) : <verb> Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbModel "pc101" XkbLayout "dk" XkbVariant "nodeadkeys" EndSection </verb> 目前只有<tt/"nodeadkeys"/ 是可用的鍵盤變數, 但你仍可以設定死鍵. 請參見 <ref id="deadkeys" name="死鍵和重音字元"> 以得到更多資訊. <sect1>在 X11 下使用 AltGr 鍵 <nidx>Danish!AltGr key</nidx> <nidx>Danish!X!AltGr key</nidx> <p> 若使用版本 3.1.2 以上的 XFree86 (包括 3.1.2), 你應該修改檔案 <tt>/etc/XF86Config</tt> (或 <tt>/etc/X11/XF86Config</tt>) 並確定以下這行 <verb> RightAlt ModeShift </verb> 出現在 <tt>Keyboard</tt> 區塊中. 通常, 你只需要在適當的地方移去註解符號即可. 在版本 3.1.2 的 XFree86 中, 你可用 <tt/AltGr/ 作為 <tt/RightAlt/ 的別鍵. 如果你有選擇丹麥語的鍵盤支援, <tt/AltGr/ 鍵在版本 3.2 以上的 XFree86 應會如預期地發揮作用. <sect2>在 Metro-X 下使用 {, [, ] 和 } <nidx>Danish!X!Metro-X</nidx> <p> 在 Metro-X 伺服器下, 你將無法輸入 ``{'' <tt/(<AltGr><7>)/, ``['' <tt/(<AltGr><8>)/, ``]'' <tt/(<AltGr><9>)/ 和 ``}'' <tt/(<AltGr><0>)/ 等字元. 這個 bug 會在 3.1.5 和 3.1.8 的伺服器版本中出現. 要修正這個 bug, 你必須修改檔名叫作 <tt>/usr/X11R6/lib/X11/xkb/symbols/dk</tt> 的檔案並把以下句子: <verb> key <AE07> { [ 7, slash ] }; key <AE08> { [ 8, parenleft ] }; key <AE09> { [ 9, parenright ] }; key <AE10> { [ 0, equal ] }; </verb> 改成 <verb> key <AE07> { [ 7, slash ], [ braceleft, NoSymbol ] }; key <AE08> { [ 8, parenleft ], [ bracketleft, NoSymbol ] }; key <AE09> { [ 9, parenright ], [ bracketright, NoSymbol ] }; key <AE10> { [ 0, equal ], [ braceright, NoSymbol ] }; </verb> <sect1>死鍵和重音字元<label id="deadkeys"> <nidx>Danish!dead keys</nidx> <p> 所謂死鍵, 就是在按下之後, 還必須再按其他鍵才能夠作用的鍵. 你如果是在純 Linux 環境下使用 <tt>dk-latin1.map</tt> keymap, 那顎化符號 (tilde, 譯注: 例如西班牙語字母上的∼) 和變音 (umlaut, 譯注: 字母上加兩點) 都是死鍵. 另外, 在微軟視窗作業系統下, 鍵盤預設也是如此. <sect2>移除死鍵功能 <nidx>Danish!dead keys!removing</nidx> <p> <itemize> <item>在純 Linux 與 XFree86 v3.1.2 環境下移除死鍵功能 在純 Linux 環境下, 輸入 <verb> loadkeys dk.map </verb> <item>在版本 3.2 以上的 XFree86 中移除死鍵功能 在檔案 <tt>/etc/XF86Config</tt> (或 <tt>/etc/X11/XF86Config</tt>) 中, 在 <tt/Keyboard/ 區塊中加入句子: <verb> XkbVariant "nodeadkeys" </verb> </itemize> <sect2>啟動死鍵功能 <nidx>Danish!dead keys!invoking</nidx> <p> <itemize> <item>在純 Linux 環境下啟動死鍵功能. 在純 Linux 環境下輸入 <verb> loadkeys dk-latin1.map </verb> <item>在 X11R6 下啟動死鍵功能. 首先, 確認你跑的是版本 3.1.2 以上的 XFree86. 如果你的版本低於 3.1.2, 你必須下載並安裝所有和最新版本相關的檔案. 在 X11R6 應用程式中, 要使用排字 (compose) 或死鍵, 就必須將程式和重音字元 (8-bit) 支援一起編譯. <tt/GNU emacs/ v. 19.30 (或更高的版本) 是一個例子. 然而, 某些 X11 應用程式依然不支援這種輸入法. 面對這個問題, 你可以選擇修改你的程式, 或是寄一封修辭溫和的 bug 報告給程式作者. 後者是比較有效的解決之道. 請參見 <ref id="programming" name="在 X11下編寫程式的一些小技巧"> 以獲得相關資訊. 接下來, 你需要將一個鍵對應到 <tt/Multi_key/ (<tt/Compose/.) 若你使用版本 3.1.2 的 XFree86, <tt>Scroll Lock</tt> 鍵很可能已經被對應了(你可以用 <tt/xev/ 這個程式修改設定). 如果要對應右邊的 <tt/Control/ 鍵, 你只需要在 XFree86 的 configuration file (通常是 <tt>/etc/XF86Config</tt> 或 <tt>/etc/X11/XF86Config</tt>) 中的 <tt/Keyboard/ 區塊裡去掉若干註解符號即可. 若你想使用其他的鍵, 或者你是用版本 3.1.2 以上的 XFree86 而且你想改變預設, 你可以在檔案 <tt>˜/.Xmodmap</tt> 中加入: <verb> keycode 78 = Multi_key </verb> 上面這一行範例做的是定義 <tt/Scroll Lock/ 鍵為 <tt/Compose/ 鍵. 在版本 3.2 以上的 XFree86 中, 預設的 <tt/Compose/ 鍵是 <tt><Shift><AltGr></tt>. 版本 3.2 以上的 XFree86 並不支援在標準丹麥鍵盤使用死鍵. 要啟動死鍵, 在檔案 <tt>/usr/X11R6/lib/X11/xkb/symbols/dk</tt> 的 <tt/xkb_symbols "basic"/ 區塊中修改這幾行: <verb> key <AE12> { [ acute, grave ], [ bar, dead_ogonek ] }; key <AD12> { [ diaeresis, asciicircum ], [ asciitilde, dead_macron ] }; </verb> 把它改成 <verb> key <AE12> { [ dead_acute, dead_grave ], [ bar, dead_ogonek ] }; key <AD12> { [ dead_diaeresis, dead_circumflex ], [ dead_tilde, dead_macron ] }; </verb> 接下來, 移除檔案 <tt>/etc/XF86Config</tt> (或 <tt>/etc/X11/XF86Config</tt>) 中 <tt/Keyboard/ 區塊裡的這一行: <verb> XkbVariant "nodeadkeys" </verb> (註, 給非丹麥語讀者: 在 <tt>/usr/X11R6/lib/X11/xkb/symbols</tt> 中有各種語系 keymap 的檔案.) 可能的字元對應表列於檔案 <tt>/usr/X11R6/lib/X11/locale/iso8859-1/Compose</tt> 中. 這個檔案裡有一些你或許會想修正的 bug: <itemize> <item>下面這一行 <verb> <dead_tilde> <space> : "~" tilde </verb> 應被改為 <verb> <dead_tilde> <space> : "~" asciitilde </verb> <item>在某些地方, <tt/asciicircum/ 被誤拼為 <tt/asciicirum/ </itemize> 最後, 確定你的 shell (或者還有應用程式) 已經如 <ref id="apps" name="特定應用程式中的國際字元集"> 中所敘述的, 做好 ISO-8859-1 相容性的設定. </itemize> <sect1> 使用 $ (錢符號), ø (oslash) 和 Ø (Oslash) 字元 <nidx>Danish!setting up $, ø, Ø</nidx> <sect2>$ (the dollar sign) <nidx>Danish!setting up $</nidx> <p> 丹麥 keymap 中有個 bug 會使錢符號的對應鍵組合為 <tt><Shift><4></tt>, 而不是 <tt><AltGr><4></tt>. 若你有這個問題, 請查看你在啟動系統時載入的是哪個 keymap. 這項設定位於 <tt>/etc/rc.d/</tt> 目錄下, 或者你也可以在啟動系統時注意一下. 在我的電腦上, 我的 keymap 是叫 <tt>/usr/lib/kbd/keytables/dk-latin1.map</tt>. 你可以改 keymap 檔案中的 <verb> keycode 5 = four dollar dollar </verb> 這一行改成 <verb> keycode 5 = four currency dollar </verb> 然後如 <ref id="loadkbd" name="載入 keytable"> 所述, (重新)載入 keytable. 貨幣符號 (dansk: ``soltegn'') 在丹麥鍵盤上的預設是 <tt><Shift><4></tt>. 以上的方法在 X11 和 Linux 環境下應該都能通行. <sect2>ø (oslash) 和 Ø (Oslash) <nidx>Danish!setting up ø, Ø</nidx> <p> 在某些比較舊的系統裡, ``ø'' and ``Ø'' 以分 (cent) 或圓 (yen)的形態出現. 在你的 keymap 檔案中, 可以找到 keycode 40 的這一行句子: <verb> keycode 40 = cent yen </verb> 你可以把它改為 <verb> keycode 40 = +oslash +Ooblique </verb> 此 bug 已在 <tt/kbd-0.88.tar.gz/ 以上的版本中修正. 為了讓 <tt/Caps Lock/ 正常運作, 那個 + 符號是必要的. 在 <tt/kbd-0.90.tar.gz/ 或更新的版本中, ``Oslash'' 常用來當作 ``Ooblique'' 的別名. 你可以在<url url="http://www.ibbnet.nl/~anne/keyboard.html" name="這裡">得到更多資訊. <sect>設定顯示和應用程式 <nidx>Danish!display configuration</nidx> <nidx>Danish!application configuration</nidx> <p> 大部份的應用程式必須被編譯為 ``8-bit-clean'' 才能成功使用歐洲的字元, 有些甚至還需要額外的一些修改. <sect1>在控制台中載入 ISO-8859-1 字型 <nidx>Danish!application!font loading</nidx> <nidx>Danish!application!ISO-8859-1 font</nidx> <p> 在 shell 提示字元後執行以下指令: <verb> setfont lat1u-16.psf </verb> 在 Red Hat Linux 5.2 或更新的版本下, 你可以在檔案 <tt>/etc/sysconfig/i18n</tt> 中加入下列句子: <verb> SYSFONT=lat1u-16.psf SYSTERM=linux </verb> 由於 Red Hat Linux 5.2 的 <tt/ncurses/ 包裹中有 bug, 你得把檔案 <tt>/etc/profile.d/lang.sh</tt> 中的 ``linux-lat'' 改為 ``linux''. Red Hat Linux 6.0 則沒有此問題. <sect1>歐元符號 <nidx>Danish!the Euro symbol</nidx> <p> 丹麥字元集裡新增了一個符號: 歐元符號 (歐洲貨幣聯盟的新幣值). 新的字元集叫作 ISO-8859-15, 也就是 latin0 (或 latin9) 以取代原先的 ISO-8859-1 (latin1). 為取得 latin0 支援, 你必須使用 <url name="EURO" url="ftp://ftp.freshmeat.net/pub/euro-patch/"> 包裹. 這個包裹中包含字型和 keymap. <sect1>Linux 環境下可顯示的字元 <nidx>Danish!displayable characters</nidx> <p> 在字元提示輸入 <tt>dumpkeys -l | less</tt> 即可知道哪些字元是可用的. 你可以依 <ref id="loadkbd" name="載入 keytable"> 中所述的將它對應到你的鍵盤. <sect1>特定應用程式中的國際字元集<label id="apps"> <nidx>Danish!applications!character sets in</nidx> <p> 某些應用程式需要特殊的設定. 本節旨在敘述設定的方法. <descrip> <tag/<tt>bash</tt>:/ <nidx>Danish!applications!bash</nidx> 在檔案 <tt>˜/.inputrc</tt> 中加入: <verb> set meta-flag on set convert-meta off set output-meta on </verb> <tag/<tt>elm</tt>:/ <nidx>Danish!applications!elm</nidx> 在檔案 <tt>˜/.elm/elmrc</tt> 中加入以下定義: <verb> charset = iso-8859-1 displaycharset = iso-8859-1 textencoding = 8bit </verb> 某些版本 <tt/elm/ 不接受這樣的設定. 若使用<tt/metamail/, 則可以在 <tt/elm/ 中得到部份的 <bf/MIME/ 支援. <tag/<tt>emacs</tt>:/ <nidx>Danish!applications!emacs</nidx> 在檔案 <tt>˜/.emacs</tt> 或整個系統的初始設定檔 (通常是 <tt>/usr/lib/emacs/site-lisp/default.el</tt> 或 <tt>/usr/share/emacs/site-lisp/default.el</tt>) 中加入以下行列: <verb> (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) </verb> 若你使用 GNU emacs v19.30 以上的版本, 或是 XFree86 v3.1.2 以上的版本, 在 GNU emacs 裡你應該可以使用死鍵 (對我而言, 兩者都沒問題); 因此你將不需要特地去找像是有 ``electric keys'' 設定的 elisp 包裹. 如果你想要在 emacs 中使用歐洲鍵盤設定, 卻不打算昇級, 你最好從 <url url="ftp://sunsite.auc.dk/pub/emacs/auctex/ftp/auctex/" name="SunSite DK"> 下載 <tt/remap/ 包裹. 除此之外, <tt/iso-acc.elc/ 及 <tt/iso-trans.elc/ 這兩個包含 emacs 的包裹也有類似的功能, 只是沒有那麼強大. <tag/<tt>groff</tt>:/ <nidx>Danish!applications!groff</nidx> 若你想要 ISO-8859-1 的文字輸出, 執行指令 <verb> groff -Tlatin1 <your_groff_input_file> </verb> 請注意: 要讓 latin1 的字元在 <tt/man/ (不要移除 <tt/-mandoc/ 的 switch) 成功運作, 必須在 <tt>/etc/man.config</tt> 中執行這項變更. <tag/<tt>ispell</tt> --- 丹麥語拼字檢查:/ <nidx>Danish!applications!ispell</nidx> 首先, 確定你安裝的是版本 3.1.20 而不是 4.0 的 <tt>ispell</tt>. 後者不但過時, 而且設計很糟糕. 你可以從 <url url="ftp://sunsite.auc.dk/pub/gnu/" name="the GNU archive"> 下載 <tt>ispell</tt>, 並從<url url="http://www.sslug.dk/ispell/idanish/dansk.html" name="SSLUG"> 取得丹麥語字典. 依照檔案中的編譯指示去做, 就應該不會有問題. (警告: 在為編譯作變數定義時, 如果你的 Linux 是 Sys V typs OS, 你必須定義 <tt/USG/ 這個變數以告知 ispell.) 為 <tt/ispell/ 安裝好字典後, 你可以執行以下指令來做一個丹麥語檔案的拼字檢查: <verb> ispell -d danish -T latin1 -w "翬暲媗" <你的丹麥語文字檔> </verb> (註, 給非丹麥語讀者: 你可以在 <tt/ispell/ 的資源檔案 <tt/Where/ 中找到大部份西方語文的字典.) <tag/<tt>joe</tt>:/ <nidx>Danish!applications!joe</nidx> 執行指令 <verb> joe -asis </verb> 或在檔案 <tt>˜/.joerc</tt> 中加入: <verb> -asis </verb> 連字號 ( - ) 一定要放在第一行裡! <tag/<tt>kermit</tt>:/ <nidx>Danish!applications!kermit</nidx> 我能做到最好的地步是, 在檔案 <tt>˜/.kermrc</tt> 中加入: <verb> 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 </verb> 我覺得應該不只要設定這些變數, 但我不知道還有哪些. 如果你的遠端系統是以 DOS 或 OS/2 做根據的, 你必須做以上的設定. <tag/<tt>less</tt>:/ <nidx>Danish!applications!less</nidx> 設定環境變數: <verb> LESSCHARSET=latin1 </verb> 如果你的系統支援區域化資料庫 (locale), 就不需要做這項更改, 只需要設定 <tt/LANG/, <tt/LC_CTYPE/ 或 <tt/LC_ALL/ (請參見 <ref id="locale" name="在 libc 5.4.x 以上版本中支援區域化資料庫 (locale)">.) <tag/<tt>ls</tt>:/ <nidx>Danish!applications!ls</nidx> 執行指令 <verb> ls -N </verb> 或是 <verb> ls --8bit </verb> <tag/<tt>lynx</tt>:/ <nidx>Danish!applications!lynx</nidx> 在檔案 <tt>˜/.lynxrc</tt> 中加入定義: <verb> character_set=ISO Latin 1 </verb> 你也可以在 <tt/lynx/ 的 <tt/Options/ 選單中做出同樣結果的設定. 鍵入 `o' 並設定相關選項. <tag/<tt>man</tt>:/ <nidx>Danish!applications!man</nidx> 請參見本節中的 <tt/groff/ 部分. <tag/<tt>metamail</tt>:/ <nidx>Danish!applications!metamail</nidx> 設定環境變數: <verb> MM_CHARSET=ISO-8859-1 </verb> <tag/<tt>nn</tt>:/ <nidx>Danish!applications!nn</nidx> 在檔案 <tt>˜/.nn/init</tt> 中加入: <verb> set data-bits 8 </verb> <tag/<tt>pine</tt>:/ <nidx>Danish!applications!pine</nidx> 在檔案 <tt>˜/.pinerc</tt> 中加入定義: <verb> character-set=ISO-8859-1 </verb> 你也可以在 <tt/pine/ 的 <tt/Setup/, <tt/Config/ 選單選項中做出相同結果的設定. 另外, 你也可以放心地在選單中選擇 <tt/enable-8bit-esmtp-negotiation/ 和 <tt/enable-8bit-nntp-posting/ (for news). <tag/<tt>rlogin</tt>:/ <nidx>Danish!applications!rlogin</nidx> 執行指令 <verb> rlogin -8 foo.bar.dk </verb> <tag/<tt>sendmail</tt>:/ <nidx>Danish!applications!sendmail</nidx> 在檔案 <tt>/etc/sendmail.cf</tt> 中加入 (或去掉註解符號): <verb> O SevenBitInput=False O EightBitMode=pass8 O DefaultCharSet=iso-8859-1 </verb> <tag/<tt>tcsh</tt>:/ <nidx>Danish!applications!tcsh</nidx> 在檔案 <tt>/etc/csh.login</tt> 或 <tt>˜/.tcshrc</tt> 中加入: <verb> setenv LANG C </verb> 事實上, 你只需要定義 <tt/LANG/ 或 <tt/LC_CTYPE/ 這兩個環境變數的其中一個. 變數的值無關緊要. 請閱讀 <tt/tcsh/ man page 以獲得更多資訊. <tag/<tt>telnet</tt>:/ <nidx>Danish!applications!telnet</nidx> 在檔案 <tt>˜/.telnetrc</tt> 中, 為"每一個"你想要使用 <tt/telnet/ 登入的 host 加入以下句子: <verb> <hostname> set outbinary true </verb> 例如: <verb> localhost set outbinary true foo.bar.dk set outbinary true </verb> <label id="latex"><tag>&tex;/&latex;:</tag> <nidx>Danish!applications!&tex;</nidx> <nidx>Danish!applications!&latex;</nidx> 在使用 &tex;/&latex; 時,會碰到個問題是: 你希望能在 &latex; 中使用特殊字元, 又不希望 &latex; 在每個章節的開頭加入像 "Chapter'' 之類的英文字, 也不想要使用英文的文字排版. 在 &latexe; 下, 你匯入的檔案的 header 應該會看起來像這樣: <verb> \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage{t1enc} \usepackage[danish]{babel} </verb> 第一個 <tt/usepackage/ 的句子確保 &latex; 會正確解讀歐洲字元, 因此, 你不必特地使用 escape 字元來輸入歐洲字元. 第二個 <tt/usepackage/ 的句子並非必要, 但若要使用新的 EC 字型 (以前被稱作 DC 字型), 則建議加入. 第三個 <tt/usepackage/ 的句子定義若干丹麥語的文字排版. 所有主要的 Linux 版本都包含 <bf/teTeX/ 包裹. 若要設定 teTex, 你必須執行命令稿 (script) <tt/texconfig/. 在此你可選擇丹麥語的連字符號 (dansk: ``orddeling''), 為 <tt/dvips/ 和 <tt/xdvi/ 設定 A4 紙張大小等等. 所有夠新的 Linux 版本都包含 &latexe;, 但在比較老舊的系統裡, 你使用的可能是 &latex; 2.09. 如果是這樣的話, 你可以用 <verb> \documentstyle[a4,isolatin]{article} </verb> 來支援 ISO-8859-1 字元和歐洲紙張大小規格. 但我建議你最好要求系統 administrator 昇級到 &latexe;. 你可以從任一 <url url="ftp://sunsite.auc.dk/pub/tex/ctan/" name="CTAN servers"> 網站下載 <tt/isolatin.sty/. 某些人偏好使用特殊模式下的 emacs, 因為可以將"特殊"字母轉變成 &tex; escape 碼. 這個方法已經不適用了. <tag/<tt>tin</tt>:/ <nidx>Danish!applications!tin</nidx> 在你的檔案 <tt>˜/.tin/headers</tt> 中加入: <verb> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit </verb> 如此一來, 你就可以在訊息中使用丹麥字元. </descrip> <sect>其他問題 <nidx>Danish!miscellaneous problems</nidx> <nidx>Danish!problems</nidx> <sect1>時區 <nidx>Danish!problems!time zone</nidx> <p> 丹麥的時區屬於中歐時區 (CET 或 MET), (在冬天時) 相等於格林威治標準時刻+1 (GMT+1.) 在 Linux 系統下設定時區的方式是建立一個捷徑, 連結 <tt>/usr/lib/zoneinfo/localtime</tt> 和位於 <tt>/usr/lib/zoneinfo/</tt> 目錄下符合你的時區或國家的檔案名. 若你是丹麥人, 你可以執行以下指令: <verb> ln -sf /usr/lib/zoneinfo/MET /etc/localtime </verb> 或 <verb> ln -sf /usr/lib/zoneinfo/Europe/Copenhagen /etc/localtime </verb> 如此一來, 在夏天的時候, 系統將會自動設定日光節約時間 (GMT+2.) 若需要將系統時間與 CMOS 時鐘同步, 你需以 root 身份執行指令 <tt/clock/. 若你的 CMOS 時鐘是設定為 GMT (又名 UTC --- the standard on proper Unix systems), 請執行 <verb> clock -u -s </verb> 而若你的 CMOS 時鐘是設為本地時間, 則執行 <verb> clock -s </verb> <sect1>A4 紙張大小 <nidx>Danish!problems!paper size</nidx> <nidx>Danish!problems!A4-sized paper</nidx> <p> <itemize> <item><tt/ghostscript/: 加入命令列選項 <tt/-sPAPERSIZE=a4/. <item><tt/ghostview/: 定義以下 Xresource: <verb> Ghostview.pageMedia: A4 </verb> <item><tt>&tex;/&latex;</tt>, <tt/dvips/, <tt/xdvi/: 請參見 <ref id="latex" name="特定應用程式中的國際字元集"> 中 &tex;/&latex; 的部分. </itemize> <sect1>其他作業平台的文字檔格式 <nidx>Danish!problems!text file formats</nidx> <nidx>Danish!problems!DOS file formats</nidx> <p> 你可以使用 <tt/recode/ 包裹將 ISO-8859-1 格式的文字檔轉譯為其他格式, 例如使用 codepage 850 的 DOS 文字檔. 使用下列指令 <verb> recode cp850:latin1 foo.txt </verb> 就可以將一個名為 <tt>foo.txt</tt> 的檔案轉為適當的 UNIX 檔. 欲取得 <tt/recode/, 你可以從 <url url="ftp://sunsite.auc.dk/pub/gnu/" name="the GNU archive"> 的任一映射站中下載 <tt/recode-3.4.tar.gz/. <sect>在 libc 5.4.x 以上版本中支援區域化資料庫 (locale)<label id="locale"> <nidx>Danish!locale support</nidx> <p> <tt/libc 5.4.x/ 版本已經具備 locale 支援. 如果你的系統支援 locale, 你就不需要像 <ref id="apps" name="特定應用程式中的國際字元集"> 那樣針對每個程式做設定. 欲在 Debian 中取得此支援, 你必須安裝 <tt/wg15-locale/ 包裹. 具備 <tt/GNU libc 2/ (<tt/libc 6.x/) 的系統則預設支援 locale (詳見本節內關於 Red Hat Linux 5.0 版本的資訊.) 若你的系統不支援 locale, 你可以使用以下方法取得支援: <enum> <item>確定你使用最新的 <tt/libc 5.4.x/ library. 若沒有, 你可以從 <url url="ftp://ftp.yggdrasil.com/private/hjl/" name="Yggdrasil Computing"> 取得. <item>確定你已安裝 <tt/localedef/. 這個程式是跟著 library 一起安裝的. <item>取得 locale 來源檔. 可從 DKUUG 取得. 你必須同時擁有 <url url="ftp://dkuug.dk/i18n/WG15-collection/locales/" name="locale"> 和 <url url="ftp://dkuug.dk/i18n/WG15-collection/charmaps/" name="charmap"> 來源檔. <item>將 locale 來源檔放入 <tt>/usr/share/i18n/locales/</tt>, 並將 charmap 來源檔放入 <tt>/usr/share/i18n/charmaps/</tt>. <item>執行 <tt/localedef/ 以建立 locale 資料檔: <verb> localedef -ci da_DK -f ISO_8859-1:1987 da_DK </verb> (註, 給非丹麥語讀者: 其他語言的 locale 也可以同樣方式建立. 所有 locale 和 charmap 來源檔都在 DKUUG 網站上.) </enum> 你可設定下列兩個環境變數中的其中一個以取得丹麥語 locale 支援: <verb> LANG=da_DK </verb> 或 <verb> LC_ALL=da_DK </verb> 如果 <tt/da_DK/ 行不同, 請試試 <tt/da_DK.ISO_8859-1/. 這兩個環境變數都會設定所有的 locale 目錄. 若要設立一個單獨的 locale 目錄, 請將目錄名設為環境變數. locale 目錄如下: <verb> Locale category Application --------------- ----------- LC_COLLATE 字串校對 (排序) LC_CTYPE 字元分類及轉換 LC_MESSAGES yes 或 no 的訊息翻譯 LC_MONETARY 貨幣符號格式 LC_NUMERIC 非數字符號格式 LC_TIME 日期與時間格式 LC_ALL 以上所有的設定 (將會覆寫以上所有的設定) LANG 設定所有目錄, 但可被以上任一單獨的目錄覆寫掉 </verb> 在 Red Hat Linux 5.2 下, 你可以在檔案 <tt>/etc/sysconfig/i18n</tt> 中設定環境變數 LANG 以及/或 LC_ALL: <verb> LC_ALL=da_DK </verb> 某些程式, 像是 <tt/bash/ 和 <tt/GNU emacs/ 仍需要如<ref id="apps" name="特定應用程式中的國際字元集"> 中所述的特殊設定程序, 但大部份的程式就不需要進一步的修改. 在經過以上步驟後, 原先不接受 8-bit 字元的程式, 諸如 <tt/nvi/, 應該就可以用了. 具備 <tt/GNU libc 2/ 的版本往往支援 locale, 但請注意: 雖然 Red Hat Linux 5.0 具備 <tt/GNU libc 2/, 但它卻不支援 locale. 你必須自己執行 <tt/localedef/ 以建立 locale 資料檔. 以下指令將會建立丹麥語 locale 資料檔: <verb> localedef -c -i da_DK -f ISO-8859-1 da_DK </verb> <tt/glibc-2.0.7-4.i386.rpm/ 的 library 中已包含 locale 資料檔, 不需要額外的設定. <sect>在 X11下編寫程式的一些小技巧<label id="programming"> <nidx>Danish!X programming</nidx> <p> 顯示 8-bit 字元是很容易的. 方法與使用 7-bit ASCII 相同. 然而, 要讓應用程式接受特殊字元輸入就沒有那麼簡單了. 若你使用像 Xt toolkit 這樣的程式, 或是類似 Motif 的界面工具集, 你只需要在你的程式中加入一行句子. 在你"第一次"使用 Xt時, 使用 <tt/XtSetLanguageProc/ 如下: <verb> int main (int argc, char** argv) { ... XtSetLanguageProc (NULL, NULL, NULL); top = XtAppInitialize ( ... ); ... } </verb> 這樣, 你的程式會自動在 <tt>/usr/X11R6/lib/X11/locale/</tt> 目錄下依據 <tt/Compose/ table 來對照 <tt/LC_CTYPE/ 變數, 並解讀死鍵等. 這個方法應能通行所有西歐規格鍵盤. 隨著 XFree86 多語系支援功能的進步, 你的程式將慢慢能夠在東歐和中歐通用. Xt, Xlib, 和 Motif (包括 v1.2 以上的版本) 都支援這種輸入法. 根據我所得到的消息, Xaw 只部份支援此輸入法. 若你有進一步的資訊, 請通知我. 本節的內容取自 Michael Gschwind 的 Programming for Internationalization. 你可以從<ref id="docs" name="其他相關文件">連結到那份文件. <sect>在 X11 應用程式中使用丹麥語 <nidx>Danish!X program customization</nidx> <p> 想要在 X11 的應用程式中看見丹麥語的選單, 按鈕等, 你只需要將翻譯定義這些文字的來源字串. Jacob Nordfalk 已為許多應用程式做了這樣的翻譯, 包括 <tt/Netscape/ 和 <tt/Ghostview/. 你可以在 <url url="http://alf.nbi.dk/~nordfalk/ovs/" name="這裡"> 找到翻譯和安裝說明. <sect>資訊資源 <nidx>Danish!information resources</nidx> <sect1>其他相關文件<label id="docs"> <nidx>Danish!documents, additional</nidx> <p> 你可以從 <tt/www.linuxdoc.org/ 的任一映射站取得這些 HOWTO. <url url="http://sunsite.auc.dk/ldp/HOWTO/" name="SunSite DK"> 是一個丹麥映射站. Winfried Trümper 寫的德語 HOWTO. 其他像是芬蘭語, 西班牙語, 和波蘭語都已經有了以母語寫成的 HOWTO. Andries Brouwer 寫的 Linux 鍵盤和控制台 HOWTO. <url url="http://www.vlsivie.tuwien.ac.at/mike/i18n.html" name="這裡">有 ISO 8859-1 National Character Set FAQ, Programming for Internationalization, 以及許多其他 Michael Gschwind 寫的文件. <sect1>FTP 及網站<label id="ftp"> <nidx>Danish!FTP sites</nidx> <nidx>Danish!WWW sites</nidx> <p> <url url="http://www.sslug.dk/" name="SSLUG (Skåne Sjælland Linux User Group)"> 是一個瑞典語/丹麥語 Linux user group. 你可以從他們的信件群組中得到許多以丹麥語(或瑞典語)寫下的Linux相關問題. 這個 user group 同時負責維護<url url="http://www.sslug.dk/DanishHowto/" name="這份文件">. Ålborg 的 AUC 的主站是 <url url="ftp://sunsite.auc.dk/pub/os/linux/" name="SunSite DK">. 它們發行 Debian 及 Red Hat 版本的 Linux, 最新的 kernel, 以及 <url url="http://sunsite.auc.dk/ldp/" name="Linux Documentation Project">, <url url="ftp://sunsite.auc.dk/pub/os/linux/sunsite/" name="metalab.unc.edu"> 及 <url url="ftp://sunsite.auc.dk/pub/gnu/" name="the GNU archive"> 的映射站. 另外, 你可以從 <url url="ftp://sunsite.auc.dk/pub/tex/ctan/" name="the CTAN archive"> 這個映射站得到一切和 &tex; 與 &latex; 相關的資訊. <sect>版權 <nidx>Danish!credits and legal stuff</nidx> <p> 感謝 Peter Dalgaard, Anders Majland, Jon Haugsand, Jacob Nordfalk, 德語 HOWTO 的作者們, Michael Gschwind 以及許多其他人給予我的建議和幫助. 我衷心感激 Aalborg University Center 的人, 是他們寫出並發行許多本文件中所提及的包裹. 特別感謝本文件的原作者, Thomas Petersen. <sect1>版權所有 <p> 本文件的作者並不能夠完全保證文件內容中所有提供的資訊都是沒有錯誤的. 你必須斟酌情況使用文件中的提示和範例. Copyright © 1996 by Thomas Petersen. Copyright © 1997-2000 by Niels Kristian Bech Jensen. 這份文件只能在符合<url url="http://www.linuxdoc.org/COPYRIGHT.html" name="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 © 1996 by Thomas Petersen. 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 <url url="http://www.linuxdoc.org/COPYRIGHT.html" name="http://www.linuxdoc.org/COPYRIGHT.html">. </article>