LaTeX-dokumenttien kirjoittaminen ja Mac OS X

Dokumenttien kirjoittaminen OpenOffice.orgilla tai Microsoft Wordilla on loppupeleissä suhteellisen ärsyttävää näpertämistä tyylien, taulukoiden ja kuvien sijainnin kanssa ja usein dokumentti kuitenkin sekoaa. Hieman helpommalla pääsee, kun viitsii opetella LaTeXia, joka on alun oppimiskynnyksen jälkeen suhteellisen helppoa käytettäessä graafisia työkaluja, vaikka ei tällöinkään aivan tuskatonta.

LaTeXin käyttöön Mac OS X:ssä pääsee parhaiten alkuun lukemalla tarvittavista ohjelmista ja saatavilla olevista editoreista Tex on Mac OS X -sivustolta, joka ei tosin tarjoa kovin selkeää lähestymistapaa aiheeseen. Tässä siis muutamia asioita ja suuntaviivoja LaTeXin käyttöön.

TeX ja Mac OS X
Aivan ensimmäiseksi tarvitaan TeX-ladontajärjestelmän, jonka käyttämiseksi LaTeX tarjoaa makropaketin. TeXin asentaminen onnistuu yksinkertaisimmin MacTeX-paketilla, josta löytyy kaikki tarpeellinen ja paljon muuta. Paketilla on myös kokoa, 1.2 Gt, joten latauksen ajan voi soitella muutaman keikan Guitar Hero World Tourissa. Onneksi perustarpeisiin riittää vaihtoehtoiset paketit -sivulta löytyvä huomattavasti pienempi BasicTeX-2008-paketti (52 Mt). Lisäksi huomasin tarpeelliseksi asentaa myös MacTeX-Additions -paketin (144 Mt).

Peruspakettien lisäksi kannattaa asentaa myös TeX Live Utility, joka on graafinen liittymä TeX Live 2008 -työkaluun. Tex Live Utilityn avulla voi hallita ja asentaa tarvittavia TeX-paketteja. Itse huomasin tarvitsevani subfigure ja paralist -paketteja, joita Diplomityö-pohja kaipasi.

LaTex-editorit Mac OS X:ssä
Graafisten editoreiden osalta löytyy muutamia eri vaihtoehtoja. Tässä kaksi, joita testasin.

Texmaker on enemmän graafinen editori tex-dokumenttien näyttämiseen, kuin varsinaisesti tekstieditori, jossa myös muotoilut näkyisivät. Lähestymistapa on hieman tekninen, mutta tarvittavat ”tagit” löytyvät valikosta. Pienen alkujyrkkyyden jälkeen dokumenttien kirjoittaminen ja muotoilu sujuu suhteellisen vaivattomasti. Texmaker on avoimen lähdekoodin (GPL) ohjelma ja on saatavilla Linux/Unix, Mac OS X ja Windows -käyttöjärjestelmille.

Texmakerissa tekstin oikolukuun ei ole juuri panostettu ja vaikka suomenkielinen sanakirja (hunspell) onkin mahdollista asentaa, en saanut toimimaan. Eli jos tekstin haluaa oikolukea, pitää se suorittaa jossain muualla.

texmaker
texmaker

LyX tarjoaa vastaavasti hieman enemmän tekstinkäsittelymäisen käyttöliittymän LaTeXilla kirjoittamiseen, mutta on mielestäni silti hieman hankalammin lähestyttävä kuin Texmaker. LyX haluaa lisäksi käyttää omaa lyx-tiedostoaa, joten TeX-dokumentit pitää viedä erikseen. LyX on avoimen lähdekoodin (GPL) sovellus ja saatavilla Linux/Unix, Windows ja Mac OS X -käyttöjärjestelmille.

LyX osaa oikolukea ispell/aspell/hspell:n avustuksella, jonka asentaminen onnistuu Macportsin kautta myös OS X:lle (sudo port install aspell aspell-dict-fi), mutta joko en osannut sitä asentaa oikein, tai sitten LyXin oikoluku toimi vain muuten heikosti.

texmaker
texmaker

TeXShop on yksinkertainen, mutta toimiva LaTeX-editori. TeXShop osaa hyödyntää Voikon Mac OS X -järjestelmän oikolukukomponenttia.

texshop

Myös TextWrangleriin on saatavilla LaTexin kanssa työskentelyä helpottavat Pluginit (BBEdit extensions for teTeX), mutta totesin niiden olevan hieman hankalat. Lisäksi skripti syötti ulostulevan tekstinsä avoinna olevaan terminaaliin, joka ei ole todellaan kiva asia.

Kaikilla ohjelmilla onnistuu kirjoittaminen, tekstin vieminen haluttuun muotoon kuten PDF:ksi tai HTML:ksi ja tarvittavat muotoilut löytyvät valikoista. Se, mikä on sitten hyvä ohjelma, riippuu ihan omasta mieltymyksestä.

Miten LaTeXilla sitten kirjoitetaan?
LaTeXin käyttöön löytyy Tobias Oetikerin kirjoittama ”The Not So Short Introduction to LATEX 2ε” -teos, jonka Timo Hellgren on sovittanut suomeksi ”Pitkänpuoleinen johdanto LaTeXinkäyttöön: Eli opi LATEX 2ε 133 minuutissa”. (pdf)

Thunderbird ja sähköpostien sekä kansioiden poistaminen

Thunderbird on kätevä sähköpostiohjelma, vaikka sisältääkin välillä hieman yllätyksellisiä ominaisuuksia. Ihmettelin, kun poistetut sähköpostit eivät menneet Roskakoriin, vaan tuntuivat häviävän kuin tuhka tuuleen. Lisäksi kansioiden poistaminen ei onnistunut alkuunkaan.

Ongelmaksi selvisi IMAP-sähköpostilaatikon kansiorakenne, jossa oli Roskakori, Lähetetyt ja Luonnokset -kansiot sekä Inboxin tasolla että Saapuneet-kansion alikansioina. Thunderbird ilmeisesti sekaantui kahdesta Roskakorista ja viestit poistuivat suoraan. Lisäksi Internet-lähteiden mukaan kansioiden poistaminen ei onnistu, koska Thunderbirdin mielestä Roskakori voi sisältää vain viestejä, eli sen pitää olla samalla tasolla Saapuneet-kansion kanssa.

Tilaamalla IMAP-postilaatikosta vain Saapuneet-kansion tasolla olevan Roskakorin, alkoivat viestit taas siirtymään poistettaessa oikeaan paikkaan ja kansioidenkin poisto onnistui jälleen.

Formula 1 -lähetykset netistä 2009

Vuoden 2009 Formula 1 -kausi on lähtenyt käyntiin ja tallien voimasuhteet ovat ainakin alkukaudesta muuttuneet päälaelleen. Kisat ovat olleet mielenkiintoisia ja täynnä tapahtumia, mutta kisojen selostus on edelleen samaa varmaa tauhkaa kuin ennenkin. Formula 1 -kisoja voi seurata myös netistä BBC:n Formula 1 -lähetysten kautta, jolloin kisoihin saadaan myös asiantunteva englanninkielinen selostus.

BBC:n Formula 1 -lähetykset näkyvät valitettavasti vain Iso-Britannian verkkoalueelle, joten lähetysten katsomiseen tarvitaan muutamia kiertokeinoja. Kaikki on onneksi selvitetty valmiiksi ja asiaan löytyy Muropaketin keskusteluista selkeät ohjeet, joita seuraamalla kisat saa näkymiin muutamassa minuutissa.

Käytännössä ohjeissa asennetaan anonymisoiva Tor-verkko toimimaan verkkoliikenteen kierrättäjänä ja liikenteen ulostulopiste asetetaan sijaitsemaan Iso-Britanniaan. Tämän jälkeen asennetaan Firefoxiin FoxyProxy-lisäosa, jolla saadaan määriteltyä tarkemmin Torin kautta käytettävät osoitteet ja täten huijattua BBC:n kohdemaatarkistusta.

Kauden aikaisemmat kisat olen katsonut MTV 3:n kanavapaketin kautta vanhempien luona, tai jättänyt katsomatta, mutta tämän viikonlopun kisaa varten tuli tutustuttua Muropaketin ohjeisiin tarkemmin ja viriteltyä asetukset kuntoon. Ohjeissa seurasin vain Linuxille tarkoitettuja toimenpiteitä ja sovelsin niitä Mac OS X:lle. Eli asensin Tor-paketin Portsista ja käynnistin tor-verkon suoralla komennolla.

Kuvanlaadultaan BBC:n lähetys on ainakin peruslaadulla hyvää ja parempaa kuin mitä viime vuonna ITV:n lähetyksissä tuli katsottua. Lähetys myös toimi luotettavasti ja kisan seuraaminen onnistui ilman katkoksia. Pientä säätöä kisan katsominen vaati, mutta lopputulos on kokonaisuudessaan paljon miellyttävämpi kunnollisen selostuksen kera, vaikka kuvan koosta joutuukin hieman tinkimään. Lisäksi ratkaisu on myös ilmainen, joka lämmittää lompakkoa.

Mac OS X ja median jakaminen Xbox 360:lle

Xbox 360 -pelikonsoli ei ole kovinkaan kummoinen mediatoistin, mutta ajaa asiansa vaikkakin hieman puhkuen. Ennen Macbookin ja Mac OS X:n käyttöön siirtymistä syötin mediaa Linuxista Xbox 360 -konsolille uShare-ohjelmalla, joka on yksi monista UPnP-mediapalvelimista. Mac OS X:ään siirtymisen jälkeen oikeastaan mikään muu ei muuttunut, kuin uSharen käynnistyskomento.

UShare asentuu nätisti Macportsista käyttämällä komentoa sudo port install ushare, jonka jälkeen halutun kansion sisältämän median voi jakaa käynnistämällä UPnP-mediapalvelimen seuraavasti:

Hibernal:~ $ ushare -n <palvelunimi> -i en1 
-p <porttinumero> -c <mediahakemisto> -w -t -x

, jossa
-i en1 = käytettävä verkkoliitäntä (ifconfig)
-c = jaettava hakemisto
-w = ei web-kontrollia
-t = ei telnettiä
-x = Xbox 360 optio

Mediapalvelin sammutetaan Linuxmaisesti näppäinyhdistelmällä Ctrl-c tai poimimalla ps:llä komennon pid:n ja killaamalla se. USharelle annettavista parametreistä voi lukea lisää man-sivuilta tai ushare --help -komennolla. Xbox 360:n lisäksi uShare osaa keskustella PlayStation 3:n kanssa.

Jos mediapalvelimen käytön haluaa näppärämpää ja enemmän Mac-henkistä, on tarjolla hieman helpompiakin vaihtoehtoja. Esimerkiksi 20 dollarin hintainen Connect360 vaikutti nopeasti testattuna ihan näppärältä. Connect360 asentuu System Preferences -paneeliin ja tarjoaa selkeät konfigurointimahdollisuudet esimerkiksi pääsylistojen eli sisältöön pääsevien koneiden hallinnan osalta.

Muita ehdokkaita maksullisten ohjelmien puolesta ovat Twonky media (noin 30 dollaria) ja Rivet (noin 20 dollaria). Ilmaisten sovellusten osalta PS3 Media Serverissä on epävirallinen tuki Xbox 360:lle ja Tversityn Linux- ja OS X -versioista on ollut puhetta jo kauan.

Macports tuo Linux-sovellukset Mac OS X:lle

Mac OS X on rakennettu Unixin kaltaisen Darwinin päälle ja täten useita Unixista ja Linuxista tuttuja ohjelmia on mahdollista käyttää myös OS X:ssä. Macports-projekti tarjoaa välineet ja ohjelmistopaketit Unix- ja Linux-sovellusten kääntämistä ja asentamista varten. Macportsin asentamista varten tarvitaan Applen Xcode Developer Tools ja X11-ikkunointiympäristö. Xcode löytyy Mac OS X asennuslevyltä ja X11 pitäisi löytyä Leopardista vakiona.

Port-valikoimasta löytyy lukuisia komentori-, X11- ja Aqua-sovelluksia kuten muun muassa GIMP, Inkscape ja irssi. Pienemmistä komentorivisovelluksista sanottakoon esimerkiksi wget, jos ei tykkää vakiona löytyvästä curlista.

Macports kannattaa päivittää heti asennuksen jälkeen komennolla sudo port -v selfupdate ja samalla komennolla Macportin voi päivittää myös myöhemmin. Port vaatii pääkäyttäjätason oikeudet, joten sitä on käytettävä sudo-komennon kanssa (sudo port …). Tässä lisäksi muutamia muita yleisiä port-komentoja ja lisätietoa löytyy portin man-sivuilta (man port):

port search <hakusana> — hakee pakettilistasta annetulla hakusanalla
port installed — listaa asennetut paketit
port info <paketin nimi> — näyttää paketin tiedot
port -c install <paketti> — asentaa paketin ja siivoaa jäljet asennuksen jälkeen (-c)
port clean –all <paketti> — poistaa paketin kääntöön yms. käytetyt tiedostot
port uninstall <ohjelma> — poistaa ohjelman
port upgrade <paketti> — päivittää paketin ja siihen liittyvät paketit
port upgrade installed — päivittää kaikki asennetut paketit
port -d sync — päivittää portin pakettilistan (-d debug)
port contents <paketti> — listaa paketin asentamat tiedostot
port location <paketti> — listaa paketin asennushakemiston

Jos portin käyttö ei asentamisen jälkeen onnistu, on kyseessä pienestä ”ominaisuudesta”, jossa asennuksen jälkeen ei aseteta tarvittavia ympäristömuuttujia kohdilleen. Tällöin komentamalla "sudo port" saadaan vain "sudo: port: command not found" -virheviesti. Asia korjaantuu asettamalla käyttäjän kotihakemistosta löytyvään ”.profile” -tiedostoon seuraavat rivit:

Hibernal:~ $ cat .profile

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
export INFOPATH=/opt/local/share/info:$INFOPATH

Airfoil tarjoaa Airtunesin langatonta ääntä kaikille

Langattomuus on vapauttanut tietokoneet verkkopiuhoista, mutta äänen siirtäminen kaiuttimiin on vielä sitonut käyttäjää. Tekniikka kehittyy ja niinpä jo jonkin aikaa on ollut mahdollista siirtää myös ääntä langattomasti Applen Airport Express -tukiaseman ja Airtunes-ominaisuuden avustuksella. Tähän kun vielä lisätään Rogue Amoeban kehittämä Airfoil-ohjelma, on langaton ääni oikeasti todellisuutta.

Kävin siis lauantaina hakemassa paikallisesta omenakaupasta Airport Express -tukiaseman aikaisemmin hankkimani Airport Extremen kaveriksi, jotta pääsisin eroon Macbookin kyljestä pilkistävästä äänipiuhasta. Expressin liittäminen Extremen jakamaan langattomaan verkkoon sujuikin helposti Airport Utilityn avulla. Lisäksi vielä äänipiuha Airport Expressistä vahvistimeen ja langaton ääni iTunesin kautta oli todellisuutta. Liitännän osalta jouduin tyytymään perinteiseen 3.5mm mini – RCA -kaapeliin, mutta ostoslistalla on 3,5mm mini – Toslink Optical -piuha.

Airport Express ja Airtunes tarjoavat langatonta ääntä normaalisti vain iTunesin kautta kuunneltaessa, mutta monipuolisuuden nimissä se ei ole ollenkaan riittävää. Tähän markkinarakoon iskee Airfoil, jonka avulla tietokoneesta lähtevää ääntä voidaan lähettää langattomasti eteenpäin Airport Expressille käytettävästä sovelluksesta riippumatta. Nyt esimerkiksi myös Songbird ja Spotify saavat äänensä kuuluviin.

Airfoil ei ole ilmainen sovellus, mutta käyttökelpoisuutensa ja näppäryytensä osalta ei 25 dollarin (+ 22% ALV) eli noin 25 euron hinta ole ollenkaan paha. Maksukin onnistui kätevästi Paypalin kautta. Mac OS X:n lisäksi Airfoil on saatavissa myös Windowsille. Internet-lähteiden mukaan ”MACSANTA07” -koodilla hinnasta tippuu vielä 10% pois.

Airfoilin avulla ääntä voidaan lähettää Airport Expressin kautta kaiuttimille tai esimerkiksi suoraan toiseen tietokoneeseen, jossa ääni otetaan vastaan ilmaisella Airfoil Speakers -sovelluksella (OS X, Windows ja Linux). Pienen käyttöliittymän kautta valitaan vain minkä sovelluksen ääntä eteenpäin lähetetään ja kenelle kaikille se jaetaan. Äänenvoimakkuuden voi sitoa käyttöjärjestelmän äänenvoimakkuuteen tai pitää erillään, jolloin äänenvoimakkuutta voi säätää vastaanottajakohtaisesti. Lisäksi Airfoiliin integroituvalla Soundflowerilla saadaan kaapattua kaikki koneesta tuleva ääni, jolloin lähettävää ohjelmaa ei tarvitse määritellä erikseen ja Airfoilin käyttö on melkein huomaamatonta.

Airfoil Airfoil
Käytettävän äänilähteen voi valita ohjelmittain

Lähetettävässä äänessä on noin parin sekunnin viive, foorumilähteiden mukaan 1850ms, joka ei musiikkia kuunnellessa ole ongelma, mutta videoiden katselemisessa viive on häiritsevä. Kuvan ja äänen tahdistamiseksi pitääkin käyttää joko Airfoilin tarjoamaa soitinta tai säätää viivettä itse. Viiveen asettaminen onnistuu muun muassa Mplayerin ja VLC:n asetuksista. Viive aiheutuu äänen siirtoon käytettävästä AirTunes-protokollasta ja Airport Expressistä, joka bufferoi äänen ennen sen lähettämistä eteenpäin.

Airfoil Airfoil Airfoil
Mplayerin ja VLC:n ääniasetukset viiveen osalta.

Tietenkin olihan Airport Expressin ja Airfoilin ostaminen näennäisesti hieman turhaa hienostelua, sillä hyvinhän se ääni siirtyi piuhaakin pitkin. Langaton ääni tuo kuitenkin helppoutta musiikin kuunteluun Macbookilla ja Airport Expressin avulla Xbox 360:nkin pääsee nyt langattomasti verkkoon. Useiden positiivisten asioiden lisäksi langattoman äänen hyödyntämisessä suurimpana negatiivisena puolena on äänen viive, jota ei esimerkiksi Youtube-videoita katsellessa voi kiertää.

Mac OS X:n Terminal -ohjelman asetukset kuntoon

Kuvittelisi, että Mac OS X:ssä Terminaalin käyttäminen olisi yksinkertaista, mutta todellisuus on tarua ihmeellisempää. Terminaali vaatii hieman rakkautta, etenkin jos on tottunut tekemään asiat jossain muussa käyttöjärjestelmässä, kuten esimerkiksi Linuxissa. Tässä siis muutamia vinkkejä, joilla OS X:n Terminalin (suom. Pääte) asetuksia voi viritellä. Oletuksena on, että käytössä on OS X Leopard ja shellinä bash (oletus).

Backspace ja delete

Valitse Terminal-valikosta Preferences ja Settings-välilehden alta Keyboard-välilehti. Jos Key Mappingseissa ei kohdassa del (forward delete) ole arvoa \033}3~ niin lisää kenttään tuo arvo (send string to shell).

Mene ”Advanced” -välilehdelle ja ota rasti pois kohdasta ”Delete sends Ctrl-H”.

Jos Backspace ei toimi Terminaalin kautta otettaessa yhteyttä Linux-koneeseen, lisää käyttäjän kotihakemistossa (~/) sijaitsevaan ~/.bashrc -tiedostoon seuraava rivi: export TERM=xterm. Ota asetukset käyttöön komennoilla source ~/.bash_profile. Ongelma voi ilmetä etenkin screeniä käytettäessä ja screen vastaa vain ”Wuff —- Wuff!!”.

Page up & down ja Home & End toimimaan ilman Shiftiä

Valitse Terminal-valikosta Preferences ja Settings-välilehden alta Keyboard-välilehti

  1. Key mappingista valitaan haluttu toiminto
  2. Actioniksi ”send string to shell”
  3. page down: string: \033[6~
  4. page up: \033[5~
  5. home: \033[1~
  6. end: \033[4~

Lisää käyttäjän kotihakemistossa (~/) sijaitsevaan ~/.inputrc -tiedostoon seuraavat rivit. Jos tiedostoa ei ole, luo sellainen.

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the 
# beginning/end of the history
"\e[5~": beginning-of-history
"\e[6~": end-of-history

# alternate mappings for "page up" and "page down" 
# to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

Käynnistä Terminaali uudelleen, tai ota asetukset käyttöön komennoilla source ~/.bash_profile ja bind -f ~/.inputrc

UTF-8 merkistö

Valitse Terminal-valikosta Preferences ja Settings-välilehden alta Advanced-välilehti

  • Rasti pois ruudusta ”Escape non-ASCII input”
  • Poimi Character encoding -kohdasta: Unicode (UTF-8)

Lisää ~/.inputrc -tiedostoon rivit:

# Be 8 bit clean.
set input-meta on
set output-meta on
set convert-meta off

Lisää ~/.bash_profile -tiedostoon rivi export LC_CTYPE=en_US.UTF-8

Ota muutokset käyttöön käynnistämällä Terminal uudelleen tai komennoilla source ~/.bash_profile ja bind -f ~/.inputrc

Irssi screenissä ja UTF-8

Muokkaa screeniä ajavan koneen merkistöasetuksia ~/.inputrc -tiedostoon edellä mainitulla tavalla.

Lisäksi lisää ~/.bashrc -tiedostoon seuraavat rivit:

export LANG="en_US.UTF-8"
export LC_CTYPE="fi_FI.UTF-8"
export LC_TIME="fi_FI.UTF-8"
export LESSCHARSET="utf-8"

Aseta Irssissä (0.8.10 tai uudempi) terminaalin merkistöksi UTF-8 antamalla komento /set term_charset UTF-8 ja aseta Recode-asetukset seuraavasti:

/set recode ON
/set recode_autodetect_utf8 ON
/set recode_fallback iso-8859-15
/set recode_out_default_charset utf-8
/set recode_transliterate ON

Jos kanavan nimessä on ISO-8859-1 ääkkösiä, pystyy esimerkiksi kanavalle #ääöö liittymään käyttämällä komentoa /eval join #\xE4\xE4\xF6\xF6. Siis ä -> \xE4 ja ö -> \xF6.

Valitettavasti Irssi 0.8.12 rikkoi tuon aikaisemmin hyvin toimineen kikan, mutta onneksi ominaisuus palautettiin ennalleen. Ennen Irssin seuraavaa versiota, ominaisuuden saa käyttöön asentamalla Irssin Nightly buildin tai kääntämällä Irssi SVN:stä.

Irssi ja Page up & down jouhevammin

Applen kannettavista tietokoneista on karsittu turhat näppäimet pois ja niiden mukana muun muassa myös Page up & down. Nyt Irssissä backlogia selatessa pitää aina naputella Esc+ylös/alas, joka on hieman työlästä, kun lisäksi Esciä joutuu painamaan joka kerta uudestaan. Asia on onneksi helppo korjata.

Sivutus-näppäimet voi asettaa toimimaan myös fn+ylös/alas -yhdistelmään komentamalla Irssissä seuraavasti:

/bind meta-up scroll_backward
/bind meta-down scroll_forward

Viitteet

Ohjeet kasattu Elefanttipuheen kootuista ohjeista ja Matti Hiljasen ohjeista, joita on tähän kirjoitukseen täydennetty GNU development under Mac OS X -ohjeilla sekä ajantasaistettu tarvittavilta osin.