martes, 21 de agosto de 2012

Cómo escribir usando las tablas Unicode

Muchas interfaces gráficas de Linux permiten ingresar caracteres de una forma muy particular: a través de su código Unicode. Veremos aquí cómo hacerlo en Gnome, la interfaz gráfica sobre la que se asienta Ubuntu.
Publicado originalmente el 21/08/2012 Creative Commons License


Correcto, tal vez sepas que la interfaz gráfica de Ubuntu, al menos en sus últimas versiones, es Unity, no Gnome. Pero detrás de Unity, todavía subyace Gnome.

Para ilustrar este artículo utilizaré Ubuntu 12.04, pero es válido para muchas versiones de Ubuntu y para muchas distribuciones de Linux.

Pero primero, vamos a aclarar algunos conceptos.

¿Qué es Unicode?

En palabras simples y rápidamente para no aburrir, Unicode es una tabla que contiene todos los caracteres que una computadora puede manejar y un código numérico único para cada uno de esos caracteres. Además tiene otra información extra, pero lo esencial es eso: carácter - código.

El problema es que una computadora (u ordenador, como la llaman los amigos españoles), es, esencialmente, una calculadora avanzada, y como tal sólo trabaja con números. Para que pueda manejar letras, símbolos y signos, internamente tiene que representar a cada uno mediante un número. Para la máquina, la letra «A» está representada por el número 65, la letra «a» por el número 97, el símbolo «+» por el número 43, y así sucesivamente.

Evidentemente, todas las computadoras del mundo tienen que "ponerse de acuerdo" sobre qué número representa a cada carácter, o de lo contrario sería imposible compartir información entre dos computadoras. Así surgen los estándares internacionales. Uno de los primeros estándares fue el American Standard Code for Information Interchange (más conocido por su sigla, ASCII), una tabla de 127 caracteres y sus equivalentes numéricos, que a duras penas alcanzaba para representar los numerales, letras y símbolos utilizados en el idioma inglés, más algunos códigos para uso interno de la computadora.

ASCII ni siquiera alcanzaba para representar letras de idiomas distintos al inglés, como nuestra «ñ» o nuestras vocales acentuadas, pero dada la escasa potencia de las computadoras de la época, era necesario sacrificar caracteres para obtener una tabla lo suficientemente pequeña como para que pueda ser manejada sin inconvenientes.

Con la evolución de las computadoras, fueron surgiendo diversos estándares, con más caracteres codificados, y llegamos así al estándar de mayor uso en la actualidad: el estándar Unicode (formalmente normalizado internacionalmente como ISO/IEC 10646), que en su versión 6.1.0 (la más reciente al momento de escribir este artículo), codifica 110 116 caracteres, según consta aquí, de los cuales 75 215 son hanzi.

Sin embargo, tenemos que dejar en claro algo:

Unicode no es un tipo (fuente), es solamente un estándar.

El hecho de que un sistema operativo sea compatible con Unicode no quiere decir que sea capaz de representar todos los caracteres del estándar, sólo garantiza que puede manejarlos. Para poder mostrar un carácter determinado, una computadora debe contar con un tipo (fuente o tipografía), que contenga el carácter deseado. Y no existe ningún tipo que contenga todos los 110 116 caracteres de Unicode. Debemos contentarnos con instalar un tipo compatible con el estándar Unicode que contenga los caracteres del idioma en el que queremos escribir.

Si te interesa el tema, puedes encontrar absolutamente toda la información sobre Unicode en la página web oficial del consorcio Unicode (en inglés).

Puedes descargar la tabla con los 110 116 caracteres (y sus códigos correspondientes) en formato pdf desde aquí. La tabla está dividida en secciones, y hay un archivo pdf para cada una de ellas. Las secciones relevantes para los idiomas chino, japonés y coreano están identificadas por la sigla «CJK» (Chinese-Japanese-Korean).

Una cosa más: en vez de utilizar numeración decimal, Unicode utiliza el sistema hexadecimal.

Cómo escribir caracteres Unicode

Podemos escribir cualquier carácter existente en el estándar Unicode desde nuestro teclado. Sólo necesitaremos:
  • Conocer el código Unicode del carácter que queremos escribir. Como dijimos antes, la tabla completa de caracteres y sus códigos se encuentra en http://www.unicode.org/charts/ y cada tanto aparece una versión nueva, ¡que agrega más y más caracteres!.
  • Seleccionar un tipo (una fuente) capaz de representar el carácter que queremos escribir. Esto es más complicado, ya que no existe un tipo realmente universal que contenga TODOS los caracteres Unicode existentes. Es cuestión de probar suerte, pero si lo que nos interesa son los ideogramas chinos y sus símbolos relacionados, los tipos AR PL Ukai y Ar PL Uming son de los más completos que existen, y en Ubuntu se instalan automáticamente al habilitar el soporte de idioma chino (lee el artículo Ubuntu 12.04: guía visual para instalar el soporte de idioma chino para más información). Además, en la sección «Enlaces útiles» encontrarás el enlace para descargar estos tipos.

Para escribir un carácter vía Unicode deberás seguir estos pasos:
  1. Pulsa la combinación de teclas Shift + Control + U. (Esto es, pulsar y mantener pulsada la tecla «Mayúscula», luego pulsar y mantener pulsada la tecla «Ctrl», luego pulsar y soltar la tecla «U», y por último soltar las teclas «Mayúscula» y «Ctrl».)
  2. Verás que aparece una «u» subrayada en la posición del cursor. El sistema te indica así que está esperando el código Unicode.
  3. Introduce el código Unicode deseado. El código Unicode consta de cuatro dígitos hexadecimales (cada uno de los cuales puede ser un número del 0 al 9 o una letra desde la A a la F en mayúscula o minúscula).
  4. Presiona la tecla Enter (o Intro).

Códigos Unicode para Pinyin.

La tabla siguiente muestra algunos códigos Unicode para escribir en Pinyin. No es la única manera de escribir en Pinyin en Linux, pero es práctica una vez que se memorizan los códigos. Los tonos 2 y 4 se pueden obtener más fácilmente con los acentos del teclado.

CarácterUnicode CarácterUnicode
ā0101 Ā0100
ē0113 Ē0112
ī012B Ī012A
ō014D Ō014C
ū016B Ū016A
ǖ01D6 Ǖ01D5
ǎ01CE Ǎ01CD
ě011B Ě011A
ǐ01D0 Ǐ01CF
ǒ01D2 Ǒ01D1
ǔ01D4 Ǔ01D3
ǚ01DA Ǚ01D9

Artículos relacionados

Tal vez te interese leer también:


Entradas populares