dissabte, 5 de gener del 2008

UTF-8

Quan Moodle va passar de la versió 1.5 a la 1.6 es va produir un cert trasbals perquè s'hi introduïa una canvi bastant radical: els registres de la base de dades passaven a estar codificats en UTF-8. Aquí va ser la primera vegada que en vaig sentir parlar i sempre que hi ha algun text que no mostra els caràcters catalans, l'arrel és en la codificació, molt probablement en l'UTF-8.

UTF-8 és un estàndard en la codificació de caràcters que substituint a l'antic ASCII i a d'altres codificacions (window$, isos, etc). Com a bon estàndard, tothom ha de tendir a utilitzar-lo, però la velocitat d'introducció varia d'una camp a un altre. Per exemple, en els RSS va ser immediata, probablement perquè coincidí en el temps l'invent dels RSS i la introducció de l'utf-8. A les pàgines web, tanmateix, la cosa no va així, i normalment és el propi navegador qui s'encarrega d'esbrinar la codificació i mostrar-la correctament.

Amb LaTeX fins ara passava amb dues codificacions: Latin1 i T1, cadascuna com opció del paquet corresponent
  • \usepackage[latin1]{inputenc} L'opció latin1 es refereix a la codificació iso 8859-1 que inclou els caràcters accentuats europeus més corrents: à, ç, ò. El paquet inputenc s'encarrega d'esbrinar en quina codificació s'ha fet el fitxer tex i "traduir-ho" al corresponent codi LaTeX.
  • \usepackage[T1]{fontenc} L'opció T1 diu que s'està utilitzant els caràcters TeX europeu i que es farà la separació sil·làbica seguint aquest esquema.
Doncs bé, aquest dies en què he estat treballant amb LaTeX sota Linux, usant els editors Kile i Gedit, m'he trobat que, per defecte, utilitzen la codificació utf-8. Quan obria un document en una codificació anterior me la canviava a utf-8 a no ser que, manualment, li canviés; però si tornava a obrir-lo de nou, havia de repetir l'operació. Amb els documents nous la cosa era pitjor perquè el fitxer tex me'l codificava en utf-8 i, quan el processava a PDF, no em sortien els caràcters accentuats.

La solució ha estat incloure l'opció UTF-8 en lloc de la latin1 al paquet inputenc
(\usepackage[utf-8]{inputenc}
\usepackage[T1]{fontenc}


Si aquesta opció no estigués al nostre sistema, caldrà descarregar-la primer de:
http://www.ctan.org/tex-archive/macros/latex/contrib/t2/etc/utf-8/

Ara ja puc treballar amb un document text codificat en utf-8 però produir un PDF perfecte gràcies al treball del paquet inputenc.