Tipografía

De Astillas.net

Esta página contiene apuntes sobre el mundo de la tipografía aplicados a la informática.

Enlaces y referencias

Conceptos

Puntos PostScript

El lenguaje PostScript emplea un sistema de coordenadas cartesianas para describir el contenido gráfico de una página. Dicho sistema se expresa en puntos tipográficos cuyo valor corresponde a un setentaydosavo de pulgada (1/72").

En el caso de una página ISO A4, cuyas dimensiones son 8,258" de ancho y 11,693" de largo, contiene 585,29 puntos postscript de ancho por 891,89 puntos postscript de largo.

AFM

AFM es el acrónimo de Adobe Font Metrics, archivos que contienen tanto información general de una fuente como métricas de caracteres individuales. En la práctica se emplean directa y casi exclusivamente en entornos UNIX.

Un archivo con esta extensión puede contener líneas como:

StartFontMetrics 4.1
FontName LucidaConsole
FullName Lucida Console
Notice Copyright <A9> 1993 Bigelow & Holmes Inc. All rights reserved.
EncodingScheme FontSpecific
FamilyName Lucida Console
Weight Regular
Version Version 0.91
Characters 223
ItalicAngle 0.0
Ascender 789
Descender -211
UnderlineThickness 50
UnderlinePosition -100
IsFixedPitch true
FontBBox 0 -211 603 789
StartCharMetrics 256
C 0 ; WX 603 ; N .notdef ; B 125 0 478 625 ;
C 1 ; WX 603 ; N .notdef ; B 125 0 478 625 ;
C 2 ; WX 603 ; N .notdef ; B 125 0 478 625 ;
...

Mapas

Los mapas de fuentes son necesarios al menos para utilidades como enscript y consisten en un archivo de texto plano que relaciona los nombres completos de las fuentes tipográficas con los correspondientes archivos en el directorio donde residen ambos.

Para crear el mapa se emplea el programa mkafmmap, una utilidad muy sencilla que incluye el programa enscript, de forma parecida a ésta:

$ cd $HOME/fonts
$ mkafmmap -p font.map *.afm
file=font.map
andale.afm...
lucon.afm...
onuava.afm...
profont.afm...
verasans.afm...
$ cat font.map 
AndaleMono                      andale
LucidaConsole                   lucon
Onuava                          onuava
ProFontWindows                  profont
BitstreamVeraSansMono-Roman     verasans

TrueType

El tipo de letra llamado TrueType es de tipo escalable y fue creado inicialmente por la empresa Apple.

Los archivos que contienen estos tipos de letra suelen tener la extensión .ttf.

Recetario

Convirtiendo tipografías TrueType a PostScript Type1

Para convertir tipos de letra TrueType a formato PostScript Type 1 se puede emplear el programa ttf2pt1 que da prácticamente todo el trabajo hecho. Suponiendo que tengamos una tipografía en el archivo LucidaTypeWriterRegular.ttf y necesitamos una versión Type 1 con el juego de caracteres Latin1 usaremos:

$ ttf2pt1 -e -a -GA -l latin1 LucidaTypeWriter/LucidaTypewriterRegular.ttf 
Auto-detected front-end parser 'ttf'
 (use ttf2pt1 -p? to get the full list of available front-ends)
Processing file LucidaTypeWriter/LucidaTypewriterRegular.ttf
Some font name strings are in Unicode, may not show properly
Creating file LucidaTypeWriter/LucidaTypewriterRegular.pfb
numglyphs = 1376
Found Unicode Encoding
Guessed italic angle: 0.000000
Warning: glyph rubelhizbarabic needs hint stack depth 198
  (limit 128): removed the substituted hints from it
Warning: glyph thothanthai needs hint stack depth 147
  (limit 128): removed the substituted hints from it
FontName LucidaSans-Typewriter
No Kerning data
Finished - font files created
$ ls -1tr LucidaTypeWriter/
..
LucidaTypeWriterRegular.afm
LucidaTypeWriterRegular.pfb

Convirtiendo fuentes PostScript binarias a ASCII

Los archivos con extensión .pfb contienen una tipografía PostScript en binario y como en ocasiones se necesita una versión en ASCII (para poder incluirlo en un documento concreto) se puede usar el programa pfb2pfa del paquete texlive-binaries de esta forma:

$ pfb2pfa -v andale.pfb 
Type: 1,  plain text, length 5978
Type: 2,  binary data, length 53134
Type: 1,  plain text, length 532
Type: 3, End of file
$ ls -1 andale.*
andale.afm
andale.pfa
andale.pfb

Instalando tipografías

Una vez se tiene el archivo con la fuente tipográfica instalarlo para emplearlo en la cuenta personal es sencillo. Copiar en el directorio adecuado y utilizar fc-cache y fc-list para darlos de alta.

$ mkdir ~/.fonts
$ cp -R archivos_tipografia ~/.fonts
$ fc-cache -v 
...
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
/home/victor/.local/share/fonts: skipping, no such directory
/home/victor/.fonts: caching, new cache contents: 0 fonts, 1 dirs
/var/cache/fontconfig: not cleaning unwritable cache directory
/home/victor/.cache/fontconfig: cleaning cache directory
/home/victor/.fontconfig: cleaning cache directory
fc-cache: succeeded
$ fc-list 
...
/home/victor/.fonts/Slate W01 Light/Slate W01 Light.ttf: SlateW01\-Light:style=Regular
/usr/share/fonts/truetype/freefont/FreeMono.ttf: FreeMono:style=Regular,нормален,normal,obyčejné,... , unta,सामान्य
...
$