Finnish-HOWTO

Pekka Taipale, pjt@iki.fi

v1.1f, 14 February 1996


This document describes how to finlandize Linux - Finnish keyboard mapping, time zone, 8-bit clean settings for applications, etc. Except for this abstract, the text is in Finnish because that is the benefit of the intended audience. This document may be reproduced at the usual Linux HOWTO terms. If you use it commercially, you're welcome to do so but I'd like to be notified. If you have questions, contact me at my e-mail address.

1. Johdanto

2. Näppäimistöasetukset

3. Pääteasetukset

4. Ympäristön lokaaliasetukset

5. Aikavyöhykeasetukset

6. X11R6

7. Eräiden sovellusten asetukset

8. Posti, nyyssit ja 8-bittiset merkit

9. Aiheeseen liittyvää materiaalia


1. Johdanto

1.1 Mikä HOWTO?

Tämä dokumentti kertoo, mitä pitäisi tehdä Linuxin suomettamiseksi sen jälkeen kun käyttöjärjestelmä perussovelluksineen on asennettu koneeseen jostain Linux-jakelusta. Näin saadaan suomalaiset kirjaimet, näppäimistö ja muut paikalliset asetukset toimimaan oikein. Lähtökohtana on Slackware- tai RedHat-jakelusta asennettu Linux-järjestelmä, mutta ohjeista on todennäköisesti apua myös muiden Linux-jakeluversioiden käyttäjille.

Varsin suuri osa ohjeista pätee Linuxin lisäksi muissakin Unix-tyyppisissä järjestelmissä. Sama toimii myös toisinpäin: jos et löydä etsimääsi tietoa tästä dokumentista, tutki muita FAQ- jne. tiedostoja (ks. esim. Linuxin HOWTO-dokumentit sekä viitteet [ UNIXHelp] ja [ faqs]). Tämän dokumentin viitteissä on, mikäli mahdollista, käytetty kotimaisia peilauksia ulkomailla sijaitsevien alkuperäisten tiedostovarastojen asemesta.

Tässä ohjeessa ei ole yleensä eritelty root-käyttäjän ja tavallisen käyttäjän tekemiä asetuksia. Jotkut ohjeista ovat siis ainoastaan ylläpitäjän heiniä ja vaikuttavat koneen kaikkiin käyttäjiin, jotkut taas ovat tavallisen käyttäjän itselleen tekemiä asetuksia. Linux-koneissa ylläpitäjä ja käyttäjä ovat usein - mutta eivät aina - sama henkilö. Hyvin monet asetukset voi tehdä molemmilla tavoilla; esim. kaikkien käyttäjien oletukset hakemistossa /etc oleviin tiedostoihin ja käyttäjän omat asetukset kotihakemistossa $HOME oleviin pisteellä alkaviin tiedostoihin.

1.2 Tekijänoikeuksista ja kopioinnista

Copyright © 1996 by Pekka Taipale. Tätä dokumenttia saa kopioida ja levittää muuttamattomana vapaasti. Jos levität muutettua tai lyhennettyä versiota dokumentista, tätä tekijänoikeusmerkintää ei saa poistaa. En ota vastuuta mahdollisista virheistä enkä varsinkaan muiden muuttamista versioista. Jos teet dokumenttiin lisäyksiä tai korjauksia, merkitse selvästi oma työsi. Parasta olisi, jos lähettäisit korjausehdotuksesi minulle osoitteeseen pjt@iki.fi jolloin ne voidaan ottaa mukaan alkuperäiseen tekstiin.

1.3 Tekstin esitystavasta

Tämä HOWTO on kirjoitettu SGML-muodossa. HTML-, TeX- ja tekstiversiot generoidaan SGML:stä Linuxdoc-SGML -ohjelmalla [ Linuxdoc]. Tämän tekstin ulkopuolelle osoittavat viittaukset (HTML-versiossa linkit) on koottu yhteen paikkaan, ks. luku Aiheeseen liittyvää materiaalia. Muualla dokumentissa olevat linkit ovat ristiinviittauksia dokumentin sisällä. Näin on menetelty siksi, että olisi helpompi hahmottaa, milloin HTML-version linkin seuraaminen on viemässä lukemaan jotakin muuta dokumenttia ja milloin se on ristiinviittaus tämän HOWTO:n sisällä.

1.4 Kiitokset

Kiitos kaikille kommentteja ja korjauksia esittäneille. Erityisesti mainittakoon Tuomas Aura, Tuomas Eerola, Timo Korvola, Jaakko Ruohio, Jani Tammi ja Lars Wirzenius.


2. Näppäimistöasetukset

2.1 Perusnäppäimistö

Tässä kerrotaan tekstikonsolin näppäimistöasetuksista. X-ympäristöstä on tietoa luvussa X11R6.

Jos näppäimistösi on Linuxin asennuksen jäljiltä amerikkalaista mallia, olet ohittanut näppäimistökartan valinnan asennusohjelmassa. Näppäimistökartaksi kannattaa valita ISO Latin-1-merkkejä (ks. kohta alla) tuottava kartta fi-latin1. Seitsemänbittinen fi-kartta on poistumassa käytöstä eikä sitä kannata käyttää jos siihen ei ole erityistä tarvetta.

Slackware-järjestelmissä näppäimistökartan voi asettaa lisäämällä tiedostoon /etc/rc.d/rc.keymap tai /etc/rc.d/rc.local seuraava rivi:


/usr/bin/loadkeys fi-latin1       # Finnish latin1 keymap

RedHatissa asetus taas on tiedostossa /etc/sysconfig/keyboard, jossa pitää olla seuraava rivi:


KEYTABLE=/usr/lib/kbd/keytables/fi-latin1.map

Debian-järjestelmissä asetus tehdään tiedostoon /etc/rc.boot/console.

Näppäimistökarttatiedostot ovat yleensä hakemistossa /usr/lib/kbd/keytables. Mikäli fi-latin1 -karttaa ei löydy tästä hakemistosta, etsi esim. Slackware-jakelun keytbls-paketti. Ruotsalaiset käyttävät samaa näppäimistökarttaa kuin suomalaiset.

2.2 ISO Latin-1 -merkistö

Suomenkielinen teksti kirjoitetaan Linux-ympäristössä ISO Latin-1 -merkistöllä, joka käyttää 7-bittisiä ASCII-merkkejä englannin perusaakkosten näyttämiseen ja 8-bittisiä ns. ISO-skandeja suomalaisiin kirjaimiin å, ä, ö jne. Myös mm. MS Windows käyttää samaa merkistöä. Lisätietoja löytyy Timo Kiravuon merkistöohjeesta [ skandit] ja Jukka Korpelan ISO-Latin-1-merkkejä käsittelevästä tekstistä [ ISO-latin1].

Jos fi-latin1 -näppäimistöllä ä:n ja ö:n painalluksista tulee d- ja v-kirjaimia, hukkuu kahdeksas bitti jonnekin. Ks. Pääteasetukset-kohta ( ) sekä rlogin ( ) ja telnet ( ). Jos skandien painaminen aiheuttaa piippauksia tai mitään ei tapahdu, sovellus (esim. komentotulkki) ei huoli 8-bittisiä merkkejä. Katso sovelluksien kohdalta komentotulkkisi asetukset (kohdat bash ja tcsh).

2.3 Näppäimistökartan parantelua

Timo Korvola ehdottaa:

Gravea, tildeä ja sirkumfleksia tarvitaan sen verran usein, että elämän helpottamiseksi voi tehdä fi-latin1.map:in lataamisen jälkeen vaikkapa näin:


loadkeys << '@loadkeys'
  keycode 5 = four currency dollar
  keycode 13 = dead_acute grave
  keycode 27 = dead_diaeresis asciicircum asciitilde
  keycode 97 = Compose
@loadkeys

Tämä korjaa myös shift 4:n tuottamaan valuuttamerkin siten kuin näppäimistössä lukee. Oikeasta controlista tehdään compose, jolla voi tuottaa vaikkapa è:n näppäilemällä compose ` e.

Konsolin näppäinkoodit saa helposti selville ohjelmalla showkey.


3. Pääteasetukset

8-bittisten suomalaisten merkkien toimiminen vaatii, että pääteyhteys on 8-bittinen. Yleensä Linux-koneen näppäimistöllä ja päätelinjoilla näin onkin, mutta mikäli ei ole, asetus saadaan päälle laittamalle seuraava komento komentotulkin alustustiedostoon (.profile, .login jne):


stty pass8

8-bittisten merkkien toimiminen rlogin- ja telnet-yhteyksien yli on selitetty alempana sovelluksien kohdalla (ks. kohdat rlogin ja telnet).


4. Ympäristön lokaaliasetukset

Lokaaliasetusten tarkoitus on saada ohjelmat noudattamaan esimerkiksi eri kielten erilaisia aakkosjärjestyssääntöjä ja muita käytäntöjä. Lokaalit vaikuttavat mm. kellonaikojen ja päivämäärien tulostusmuotoon ja tietueiden lajittelujärjestykseen eri ohjelmia käytettäessä - mikäli ohjelmat on tehty asianmukaisella tavalla ja kirjastot tukevat kyseistä lokaalia.

Uudehkojen Linux-jakelujen (Slackware 3.0 ja RedHat 2.1) kirjastot tukevat dokumenttien mukaan yleistä eurooppalaista Latin1-merkistölokaalia ISO-8859-1. Oikea lokaaliasetus Suomessa on finnish.iso88591. Lokaali asetetaan ympäristömuuttujien LC_CTYPE, LC_TIME jne. avulla (ks. man 7 locale).

Voi olla viisasta asettaa suomalainen lokaali jo nyt, niin että spesifisen suomalaisen lokaalituen mahdollisesti joskus ilmestyessä kirjastoihin se otetaan käyttöön. Lokaalin asetus voi olla myös epäviisasta, koska esim. päivämäärätulostuksen muodon muuttuminen voi muuttaa komentotiedostojen toimintaa ja rikkoa siten ohjelmia. LC_TIME-lokaalin POSIX-asetuksella date-komennon tulostus on muotoa Wed Aug 9 13:33:39 EETDST 1995 kun taas suomalaisella lokaalilla se olisi muotoa 9.8.1995 13:33:39.

LC_ALL- tai LC_TIME-asetuksen tekeminen ei siis ole välttämättä järkevää, mutta LC_CTYPE ja LC_COLLATE kannattaa asettaa suomalaiseksi. Esim. tcsh vaatii LC_CTYPE-asetuksen, jotta 8-bittiset merkit toimisivat.

Jos käytät komentotulkkina csh-varianttia (kuten tcsh), haluat todennäköisesti tehdä asetuksen tiedostossa /etc/csh.cshrc tai $HOME/.cshrc:


        setenv LC_CTYPE finnish.iso88591

Jos taas käytät sh-varianttia (kuten bash tai pdksh), kirjoita tiedostoon /etc/profile tai $HOME/.profile:


        export LC_CTYPE=finnish.iso88591


5. Aikavyöhykeasetukset

Linux-koneen CMOS-kello voi osoittaa joko UTC-aikaa - kuten UNIX-koneissa on yleensä tapana - tai paikallista aikaa. (UTC on kansainvälinen normaaliaika, suunnilleen sama kuin Greenwich Mean Time eli GMT.) Linux-jakelut olettavat yleensä kellon käyvän paikallista aikaa, koska MS-DOS ja muut tavalliset PC-käyttöjärjestelmät eivät tunne aikavyöhykkeitä. Tällöin Linuxin käynnistystiedostoissa - esim. /etc/rc.d/rc.S (Slackware) tai /etc/rc.d/rc.sysinit (RedHat) - on komento clock -s. Jos kello on UTC-ajassa, komennon pitää olla clock -u -s.

Kun CMOS-kello on UTC-ajassa, käyttöjärjestelmä huolehtii ajan näyttämisestä oikein mm. kesäaikaan siirryttäessä, kunhan aikavyöhyke on asetetty oikein. Jos CMOS-kello on paikallisessa ajassa, kesä- ja talviaikoihin siirtymiset on tehtävä käsin. CMOS-kellon aikaa voi muuttaa joko CMOS-setupista käsin tai sitten Linuxissa clock-komennolla (ks. man 8 clock).

Suomen aikavyöhyke on EET (Eastern European Time). Aikavyöhykkeen voi asentaa käyttöjärjestelmän asennuksen yhteydessä; mikäli et tehnyt sitä tai teit sen väärin, voit tehdä asetuksen root-tunnuksella komennolla


ln -s /usr/lib/zoneinfo/Europe/Helsinki /usr/lib/zoneinfo/localtime

(Vanhemmissa Linux-jakeluissa ei ole Helsinki-vyöhykettä; käytä EET:tä).

Yleensä systeemin oletusaikavyöhykkeen asettaminen riittää. Jos yksittäinen käyttäjä tarvitsee erilaisen aikavyöhykkeen, sen voi asettaa käyttäjäkohtaisesti TZ-muuttujalla. POSIX-käytäntö on, että TZ-asetus on muotoa EET-2EETDST, mikä tarkoittaa, että aikavyöhyke on EET, se on kaksi tuntia edellä GMT:tä, ja kesäaikaan siirrytään EETDST-säännön mukaan. Asetus saadaan aikaan komentotulkin alustustiedostossa, esim. bash-käyttäjille lisäämällä kotihakemiston .profile-tiedostoon rivi


export TZ=EET-2EETDST


6. X11R6

XFree86 saa näppäimistökarttansa Linuxin konsolilta. Useimpien näppäinten (ml. ä ja ö) pitäisi toimia suoraan oikein, kun konsolin näppäimistökartta on asetettu. "Kuolleiden" näppäinten määrityksiä (dead_acute, dead_diaeresis ym.) ei kuitenkaan saada konsolilta, joten lopputulosta täytyy hieman paikkailla.

Jos kone on konfiguroitu käynnistämään xdm eli käyttäjä ei kirjoittaudu sisään virtuaalikonsolille vaan suoraan X11:aan, voi olla tarpeen asettaa koko suomalainen näppäimistökartta .Xmodmap-tiedostossa.

Mikäli AltGr-näppäin ei toimi (merkit {, [, ], }, \ jne.), tarkista, että X:n konfigurointitiedostossa (/etc/XF86Config tai /usr/lib/X11/XF86Config) on rivi


RightAlt    ModeShift

ja että sitä ei ole kommentoitu pois #-merkillä.

X:n käynnistysskriptit ajavat yleensä xmodmap-ohjelman, joka muuttaa X:n näppäimistökarttaa käyttäjän .Xmodmap-tiedoston perusteella. .Xmodmap-tiedosto voi näyttää esim. tältä:


keycode  13 = 4 currency dollar
keycode  21 = acute grave
keycode  35 = dead_diaeresis asciicircum asciitilde

Tässä näppäimeen, jonka näppäinkoodi on 13 (näppäimistön päälohkon numeronäppäin 4) sidotaan merkit 4, valuuttamerkki ja $, jotka tulevat, kun ko. näppäintä painetaan yksinään, shiftin kanssa ja AltGr-näppäimen kanssa.

Näppäimeen 21 (Backspace-näppäimen vieressä) sidotaan hipsumerkit ja näppäimeen 35 (å:n ja Enterin välissä) sidotaan "kuolleet pisteet" (¨) sekä sirkumfleksi ("hattumerkki") ja tilde (~). Voit kirjoittaa esim. saksalaisen ü-kirjaimen painamalla ensin kuolleita pisteitä ja sitten u:ta. .Xmodmap-tiedoston muutokset saa heti käyttöön komennolla


xmodmap .Xmodmap

Ks. man xmodmap. Huomaa, että emacs saattaa kohdella näppäimiä poikkeavasti. X:n alla näppäinkoodit saa selville ohjelmalla xev.

Esimerkki X11-näppäimistökartasta

Tämän voi sijoittaa .Xmodmap-tiedostoon.


keycode   8 =
keycode   9 = Escape
keycode  10 = 1 exclam
keycode  11 = 2 quotedbl at
keycode  12 = 3 numbersign sterling
keycode  13 = 4 dollar dollar
keycode  14 = 5 percent
keycode  15 = 6 ampersand
keycode  16 = 7 slash braceleft
keycode  17 = 8 parenleft bracketleft
keycode  18 = 9 parenright bracketright
keycode  19 = 0 equal braceright
keycode  20 = plus question backslash
keycode  21 = apostrophe grave
keycode  22 = Delete
keycode  23 = Tab
keycode  24 = Q
keycode  25 = W
keycode  26 = E
keycode  27 = R
keycode  28 = T
keycode  29 = Y
keycode  30 = U
keycode  31 = I
keycode  32 = O
keycode  33 = P
keycode  34 = aring Aring
keycode  35 = dead_diaeresis asciicircum asciitilde
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = A
keycode  39 = S
keycode  40 = D
keycode  41 = F
keycode  42 = G
keycode  43 = H
keycode  44 = J
keycode  45 = K
keycode  46 = L
keycode  47 = odiaeresis Odiaeresis
keycode  48 = adiaeresis Adiaeresis
keycode  49 = section onehalf
keycode  50 = Shift_L
keycode  51 = apostrophe asterisk
keycode  52 = Z
keycode  53 = X
keycode  54 = C
keycode  55 = V
keycode  56 = B
keycode  57 = N
keycode  58 = M
keycode  59 = comma semicolon
keycode  60 = period colon
keycode  61 = minus underscore
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L
keycode  65 = space
keycode  66 = Caps_Lock
keycode  67 = F1
keycode  68 = F2
keycode  69 = F3
keycode  70 = F4
keycode  71 = F5
keycode  72 = F6
keycode  73 = F7
keycode  74 = F8
keycode  75 = F9
keycode  76 = F10
keycode  77 = Num_Lock
keycode  78 = Scroll_Lock
keycode  79 = Home KP_7 KP_7 Home
keycode  80 = Up KP_8 KP_8 Up
keycode  81 = Prior KP_9 KP_9 Prior
keycode  82 = KP_Subtract
keycode  83 = Left KP_4 KP_4 Left
keycode  84 = Begin KP_5 KP_5 Begin
keycode  85 = Right KP_6 KP_6 Right
keycode  86 = KP_Add
keycode  87 = End KP_1 KP_1 End
keycode  88 = Down KP_2 KP_2 Down
keycode  89 = Next KP_3 KP_3 Next
keycode  90 = Insert KP_0 KP_0 Insert
keycode  91 = Delete KP_Decimal KP_Decimal Delete
keycode  92 = 0x1007ff00
keycode  93 =
keycode  94 = less greater bar
keycode  95 = F11
keycode  96 = F12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
keycode 113 = Alt_R Mode_switch
keycode 114 = Break
keycode 115 =


7. Eräiden sovellusten asetukset

Tähän ei ole kerätty kaikkia mahdollisia sovelluksia; lisäapua voi löytyä esim. German-HOWTO:sta [ german].

7.1 bash

Tee kotihakemistoosi tiedosto .inputrc, ja laita sinne nämä rivit:


set meta-flag on
set convert-meta off
set output-meta on

Tämän jälkeen komentotulkki huolii 8-bittiset merkit ja näyttää ne oikein.

bash lukee käynnistyessään useita eri tiedostoja. .profile, .bash_login ja .bash_profile luetaan ainoastaan sisäänkirjoittautumisen (login) yhteydessä; .bashrc taas suoritetaan aina kun bash käynnistyy (myös esim. xterm-ikkunassa).

7.2 tcsh

tcsh käyttää lokaaliasetusta LC_CTYPE. Tee kotihakemistoosi tiedosto .tcshrc, ja laita sinne rivi


setenv LC_CTYPE finnish.iso88591

Huomaa, että RedHat 2.1:n mukana tuleva tcsh ei jostain syystä toimi 8-bittisten merkkien kanssa oikein. Voit joko kääntää tcsh:n itse, tai kopioida tcsh-binäärin esim. Slackware 3.0:sta.

7.3 emacs

Tee tai editoi kotihakemistossasi tiedostoa .emacs. Laita sinne rivit:


(standard-display-european 1)
(set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                'accept-8bit-input)
(require 'iso-syntax)

Huomaa, että GNU Emacs 19.25, joka on mm. Slackware-jakelun versiossa 2.0.0, on rikki eikä eurooppalaisten merkkien tuki toimi. Jos käytät tätä versiota, poista se ja asenna uudempi versio. Myös emacs 19.30 toimii väärin jos se on käännetty vanhalla gcc:llä (esim. 2.6.3).

7.4 telnet

Luo kotihakemistoosi tiedosto .telnetrc ja tee sinne oma rivi kullekin koneelle johon otat yhteyttä telnetillä. Rivillä on koneen nimi sekä komento set outbinary. Jos esim. otat yhteyttä koneeseen masina paikallisessa verkossa sekä koneeseen hissi.kone.fi Internetin yli, .telnetrc-tiedostosi pitäisi näyttää tältä:


masina set outbinary
hissi.kone.fi set outbinary

Voit myös antaa käynnistettäessä option -8 tai asettaa binäärimoodin telnet-istunnon aikana painamalla telnetin escape-merkkiä (ei ESC-näppäin vaan telnetin escape character, oletuksena C-] joka löytyy yleensä näppäilemällä Ctrl-5) ja antamalla komennon. Ks. man telnet.

7.5 rlogin

rlogin-komennossa pitää antaa optio -8 jotta 8-bittiset merkit kulkisivat yhteyden läpi. Ks. man rlogin.

7.6 joe

joe tarvitsee option -asis jotta se kohtelisi merkkejä 8-bittisinä.

Poista välilyönti joerc-tiedostosta sen rivin alusta, jolla lukee -asis. Kaikkien käyttäjien yhteinen joerc-tiedosto on yleensä /usr/lib/joe/joerc ja käyttäjäkohtainen tiedosto $HOME/.joerc.

7.7 less

Aseta ympäristömuuttuja LESSCHARSET arvoon latin1:


export LESSCHARSET=latin1

tai vastaava C-shellin komento.

7.8 irc

Tämän kirjoitti Jani Tammi (jantam@utu.fi).

Laita .ircrc-tiedostoon rivi:


        set eight_bit_characters on

Tämän lisäksi saatat tarvita myös komennon


        /set translation latin_1

Huomaa, että tämä komento annetaan irc:issä, eikä sitä kirjoiteta .ircrc-tiedostoon.

7.9 elm

Laita tiedostoon $HOME/.elm/elmrc seuraavat rivit:


charset = iso-8859-1
displaycharset = iso-8859-1
textencoding = 8bit

7.10 pine

Laita tiedostoon /usr/local/lib/pine.conf tai $HOME/.pinerc seuraava rivi:


character-set=ISO-8859-1

7.11 TeX

Suomalaiset aakkoset ja tavutuksen saa TeXissä toimimaan parhaiten käyttämällä babel-pakettia, joka on siis syytä valita asennettavaksi TeXiä asennettaessa.

TeXistä on kaksi Linux-järjestelmissä yleisesti käytettyä jakelua: NTeX ja teTeX. NTeX tulee Slackwaren ja teTeX RedHatin mukana. teTeX on näistä helpompi konfiguroida.

TeXin hakemistopolut ja konfigurointi vaihtelevat jakelusta toiseen. Voit joutua tekemään asiat jakelusta riippuen hyvinkin paljon tästä ohjeesta poikkeavalla tavalla.

NTeX

Tässä opasti Tuomas Aura (Tuomas.Aura@hut.fi):

LaTeXissa (2e) ei ole valmiina suomenkielistä tavutusta, vaan se on käännettävä itse. Tämä tapahtuu seuraavasti (root-käyttäjänä):

Nyt pitäisi suomen tavutuksen toimia, kunhan dokumentin otsikot ovat kunnossa.

teTeX

teTeX:in konfigurointi on helppoa:

LaTeX-otsikot

Suomalaisen LaTex-dokumentin alkuriveillä pitäisi lukea jotain tämän tapaista:


\documentclass[a4paper,finnish]{article}
\usepackage{t1enc,isolatin1,babel}

LaTeX2e <1994/12/01> -formaatilla ja uudemmilla toimii myös hienompi ratkaisu:


\documentclass[a4paper, finnish]{article}
\usepackage{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

Näillä otsikoilla pitäisi suomalaisen tavutuksen ja kirjainten toimia oikein, mikäli TeX-jakelu on asennettu ja konfiguroitu oikein. Tässä ei neuvota LaTeX-dokumenttien tekemistä tarkemmin. Jukka Korpelan TKK:lle tekemästä Tex-ohjeesta [ texref] voi olla apua.


8. Posti, nyyssit ja 8-bittiset merkit

8.1 Perusratkaisu: 8-bittiset merkit viesteihin

Posti- ja nyyssiviesteissä (USENET news ja vastaavat paikalliset järjestelmät) on järkevintä lähettää 8-bittisiä ISO Latin1-skandeja silloin kun kirjoitetaan suomeksi tai ruotsiksi.

Postiohjelmat kuten elm ja pine näyttävät Latin1-merkit oikein, kun ne on konfiguroitu sovellusten kohdalla kuvatulla tavalla (ks. kohdat elm ja pine). Jäljellä on kuitenkin vielä yksi ongelma: miten saada postissa mitä kummallisimmissa muodoissa tulevat viestit ISO-8859-1:n mukaisiksi?

8-bittiset ISO Latin1-merkit kirjoitetaan viestiin sellaisenaan ja viestin otsikossa ilmoitetaan, että sisältö on 8-bittistä tekstiä. Tämä tapahtuu liittämällä lähteviin viesteihin seuraavat MIME-standardin [ RFC1521] mukaiset otsikot. Tämä edellyttää, että kaikki viestiä välittävät koneet kykenevät käsittelemään 8-bittistä tietoa viestin rungossa. Suomi on jo jokseenkin läpeensä 8-bittinen, mutta erityisesti USA:sta löytyy vielä runsaasti 7-bittisiä postijärjestelmiä, jotka ovat postistandardin RFC822 mukaisia [ RFC822]. Näiden kanssa on yleensä tyydyttävä käyttämään QP-koodausta (ks. MIME Quoted Printable-koodaus). Tavallisesti seuraavat otsikot ja 8-bittiset merkit kuitenkin riittävät:


Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

Esim. elm-ohjelmassa nämä otsikot laitetaan tiedostoon $HOME/.elm/elmheaders. emacs-pohjaisilla posti- ja nyyssisovelluksilla asetus tapahtuu helpoiten laittamalla seuraavat rivit .emacs-tiedostoon:


(setq mail-default-headers "Mime-Version: 1.0\n\
  Content-Type: text/plain; charset=ISO-8859-1\n\
  Content-Transfer-Encoding: 8bit\n")

8.2 MIME Quoted Printable-koodaus

Yleisin ongelma viestien vastaanotossa ovat MIME Quoted Printable -koodatut merkit [ RFC1521]. Näitä kutsutaan usein sattuvasti myös nimellä Quoted Unreadable.

QP-koodattuja viestejä ei kannata lähettää, jos 8-bittisten merkkien lähettäminen sellaisenaan vain on mahdollista, koska varsin monet lukijat n=E4kev=E4t QP-viestit t=E4m=E4n n=E4k=F6isin=E4. QP-koodatut - samoin kuin kokonaan binääridataa sisältävät Base64-koodatut viestit - saa purettua lukukelpoisiksi metamail-ohjelmalla [ metamail]. metamail tulee valmiina ainakin RedHat 2.1-jakelun mukana.

elm (ainakin versio 2.4 PL24) osaa käyttää metamailia suoraan, mikäli metamail on polun varrella eli ajettavissa. emacs-pohjaiset posti- ja nyyssisovellukset saattavat tarvita tiedon metamailin sijainnista .emacs-tiedostossa esim. näin:


(setq metamail-program-name "/usr/local/bin/metamail")


9. Aiheeseen liittyvää materiaalia

Seuraavat dokumentit voivat olla hyödyllistä luettavaa näiden ongelmien kanssa painiessasi:

  1. [skandit] Suomalaiset merkit tietokoneissa, Timo Kiravuo: http://www.nixu.fi/~kiravuo/skandit.html
  2. [ISO-latin1] ISO-Latin-1-merkistöstä, Jukka Korpela: http://www.hut.fi/~jkorpela/ISO.html
  3. [texref] TeX-ladontaohjelma, Jukka Korpela: http://www.hut.fi/~jkorpela/softa/tex.html
  4. [danish] Danish-HOWTO, Thomas Petersen: http://www.funet.fi/pub/Linux/doc/HOWTO/Danish-HOWTO
  5. [german] German-HOWTO, Thomas Ploss: http://www.funet.fi/pub/Linux/doc/HOWTO/German-HOWTO
  6. [RFC822] Format of Internet Text Messages, David Crocker: http://www.funet.fi/pub/doc/rfc/rfc822.txt
  7. [RFC1521] MIME, Part One: Format of Internet Message Bodies, N. Borenstein & N. Freed: http://www.funet.fi/pub/doc/rfc/rfc1521.txt
  8. [RFC1522] MIME, Part Two: Message Header Extensions, K. Moore: http://www.funet.fi/pub/doc/rfc/rfc1522.txt
  9. [metamail] Metamail-ohjelma: ftp://ftp.funet.fi/pub/unix/mail/metamail/mm2.7.tar.Z
  10. [linuxdoc] Linuxdoc-SGML, Matthew D. Welsh: ftp://ftp.funet.fi:pub/mirrors/sunsite.unc.edu/pub/Linux/utils/text/linuxdoc-sgml-1.4.tar.gz
  11. [unixhelp] UNIXHelp for Users, University of Edinburgh: http://unixhelp.ed.ac.uk/
  12. [faqs] FAQ Collection, Thomas Fine: http://www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html