Jorin jutut / TeX, LaTeX ja METAFONT
Tämä kirjoitus on pieni esimerkki oman fontin tekemisestä LaTeX -tiedostossa käytettäväksi. Kirjoitus on tehty, koska vastaavaa suomenkielistä esimerkkiä ei ollut; esimerkki on toimiva, mutta ei varmasti kaunein tapa hoitaa asia.
Ladattavat tiedostot:
Käännösohje Linux-jakeluun jossa tetex-paketti:
Kirjasimen käännön tuloksena syntyi kolmiot.tfm -tiedosto. Sen tulee sijaita samassa hakemistossa kuin käännettävän LaTeX -tiedoston.
Käännösohje Windowsiin:
Kirjasintiedosto kolmiot.mf näyttää tältä (toinen merkki on jätetty pois tästä):
1. u#:=4/9pt#; 2. mode_setup; 3. define_pixels(u); 4. beginchar(65,13u#,16u#,5u#);"Avaava kolmio"; 5. z1=z3=(0,-4.5u); 6. z2=(7u,16u); 7. z4=(6u,-4.5u); 8. penpos1(u,0); 9. penpos2(u,0); 10. penpos3(u,90); 11. penpos4(u,90); 12. penstroke z1e..z2e; 13. penstroke z3e..z4e; 14. endchar; 15. end
beginchar-rivillä kerrotaan ensin mikä merkki on kyseessä (tässä 65, joka tarkoittaa A-kirjainta) ja sitten kirjasimen "korkeus", leveys ja "syvyys". Korkeudella tarkoitetaan peruslinjan (esim. ison L-kirjaimen vaakaviiva on peruslinjalla) ja yläreunan etäisyyttä. Syvyys tarkoittaa peruslinjan ja alareunan etäisyyttä, aluetta jossa esimerkiksi pienten kirjainten g, j, q, ja y alaosat ovat.
Merkki koostuu kahdesta viivasta. Ensimmäinen vedetään vasemmasta alakulmasta vinosti ylös, toinen samasta kulmasta suoraan oikealle. penpos-rivit viittaavat "kynän" paksuuteen ja kulmaan. Mallin mukaan on helppo tehdä uusia merkkejä, jotka koostuvat suorista viivoista.
Tekstitilassa merkin käyttöönotto on helppoa, ja vaatii vain kolme riviä:
\font\kolmiokirjasin=kolmiot \def\avaakolmioteksti{{\kolmiokirjasin{A}}} \def\suljekolmioteksti{{\kolmiokirjasin{B}}}
Ensin ladataan ao. kirjasin .tfm -tiedostosta newfont-komennolla, sitten otetaan kaksi tämän kirjasimen merkkiä käyttöön ja annetaan niille nimet avaakolmio ja suljekolmio.
Kaavatilassa tehtävä on jo vaativampi. Tekstitilaan voidaan ottaa merkki helposti, mutta kaavatilaa varten joudutaan luomaan merkkiluokka. Seuraavia rivejä ei toisaalta tarvitse ymmärtää, riittää että kopioi ne:
\newfam\matikkakolmiot \textfont\matikkakolmiot=\kolmiokirjasin \font\kolmiopieni=kolmiot scaled 700 \font\kolmiotosipieni=kolmiot scaled 500 \scriptfont\matikkakolmiot=\kolmiopieni \scriptscriptfont\matikkakolmiot=\kolmiotosipieni \def\avaakolmio{{\fam \matikkakolmiot A}} \def\suljekolmio{{\fam \matikkakolmiot B}}
Aiemmin (tekstitilan kohdalla) oli jo otettu käyttöön ao. kirjasin, jonka nimeksi tuli 'kolmiokirjasin'. Kaavatilaa varten jatketaan luomalla uusi merkkiluokka nimeltä 'matikkakolmiot'. Tähän luokkaan sijoitetaan ensin tavanomainen kirjasin komennolla \textfont. Tämän jälkeen määritellään ensin pari uutta kirjasinleikkausta, 'kolmiopieni' ja 'kolmiotosipieni', jotka saadaan samasta kolmiot.tfm -tiedostosta pienentämällä sen kokoa scaled -komennolla. Nämä "uudet" kirjasinleikkaukset sijoitetaan 'kolmiokirjasin' -merkkiluokkaan ala- ja yläindeksejä ja 2. tason indeksejä varten. Lopuksi enää määritellään avaakolmio- ja suljekolmio-komennot tarkoittamaan oikealla merkkiluokalla kirjoitettua oikeaa merkkiä.
Järjestelmä on työläs, koska TeX ei automaattisesti esimerkiksi luo yläindeksejä pienentämällä ao. merkkiä. Toisaalta tämän ansiosta kirjasimia voi säätää vapaammin - esimerkiksi isompian kaarisulkeitahan ei luoda vain mekaanisesti muuttamalla merkin kokoa, vaan myös suljemerkin muoto muuttuu.
Suomeksi ei tiettävästi ole lisätietoa aiheesta. Englanniksi on olemassa kohtuullinen METAFONT tutorial. Sen ensimmäinenkin esimerkki on kuitenkin aika monimutkainen (mikä onkin pääsyy siihen, että nyt lukemasi teksti on kirjoitettu).
Kirjoista paras lienee itsensä Donald Knuthin kirjoittama The METAFONTbook.