El formato de distribución de mapa de bits Glyph (BDF) de Adobe es un formato de archivo para almacenar fuentes de mapa de bits . El contenido toma la forma de un archivo de texto destinado a ser legible por humanos y computadoras. BDF se utiliza normalmente en entornos Unix X Window . Ha sido reemplazado en gran parte por el formato de fuente PCF , que es algo más eficiente, y por fuentes escalables como las fuentes OpenType y TrueType .
Descripción general
Como de 2013[actualizar]la versión actual de BDF es 2.2. No se prevén revisiones futuras. Las versiones anteriores se denominaban formato de distribución de mapa de bits de caracteres.
En 1988, el X Consortium adoptó BDF 2.1 como estándar para las fuentes de pantalla de X Window, [1] pero X Windows se ha movido en gran medida a otros estándares de fuentes como PCF , Opentype y Truetype .
La versión 2.2 agregó soporte para escritura no occidental. Por ejemplo, los glifos en una definición de fuente BDF 2.2 pueden especificar la representación de arriba a abajo en lugar de simplemente de izquierda a derecha.
Un archivo de fuente BDF contiene tres secciones:
- una sección global que se aplica a todos los glifos de una fuente;
- una sección con una entrada separada para cada glifo; y
- la sentencia ENDFONT.
Ejemplo
Esta es una fuente de ejemplo que contiene un glifo, para ASCII mayúscula 'A'. Este glifo está tomado de GNU Unifont .
STARTFONT 2.1FUENTE -gnu-unifont-medium-r-normal - 16-160-75-75-c-80-iso10646-1TAMAÑO 16 75 75CAJA FUENTE 16 16 0-2STARTPROPERTIES 2FONT_ASCENT 14FONT_DESCENT 2PROPIEDADESCHARS 1CARRERA DE INICIO U + 0041CODIFICACIÓN 65ANCHO 500 0ANCHO 8 0BBX 8 16 0-2BITMAP0000000018242442427E424242420000ENDCHARENDFONT
En el ejemplo anterior, las declaraciones globales comienzan con la línea "STARTFONT" y terminan con la línea "CHARS".
"STARTFONT 2.1" define la versión de este archivo BDF como la versión 2.1.
"FUENTE -gnu-Unifont-medio-r-normal - 16-160-75-75-c-80-iso10646-1" define los nombres de la familia de la fuente y de la cara como un xlfd .
"TAMAÑO 16 75 75" define esto como una fuente de 16 puntos, con una resolución del eje X de 75 puntos por pulgada (ppp) y una resolución del eje Y de 75 ppp. Esta es la norma en X Window.
"FONTBOUNDINGBOX 16 16 0 -2" define un cuadro delimitador para la fuente de 16 píxeles de ancho por 16 píxeles de alto, con la esquina inferior izquierda comenzando en x = 0, y = -2. Tenga en cuenta que aunque el cuadro delimitador se define como una celda de 16 por 16, esto se puede anular para glifos individuales. El glifo "A", por ejemplo, tiene solo 8 píxeles de ancho.
"STARTPROPERTIES 2" declara que seguirán dos propiedades especiales. "STARTPROPERTIES" es opcional en la especificación BDF. X Window permite que las propiedades FONT_ASCENT y FONT_DESCENT muestren la altura por encima y por debajo de la línea de base, respectivamente, para todos los glifos. "FONT_ASCENT 14" declara que 14 de los 16 píxeles de altura están por encima de la línea de base. "FONT_DESCENT 2" declara que 2 de los 16 píxeles de altura están por debajo de la línea de base. "PROPIEDADES INICIALES" aparece al final de la sección "PROPIEDADES INICIALES".
"CHARS 1" declara que seguirá un carácter. Aunque Adobe ahora se refiere a este formato de archivo como Glyph BDF, han conservado la palabra clave "CHARS" en la versión final de la especificación.
Las líneas que comienzan con la palabra "COMENTARIO" se pueden insertar dentro de un archivo BDF. Todo lo que siga a la palabra clave "COMENTARIO" en una línea se ignorará.
Siguiendo las declaraciones globales anteriores, las siguientes entradas pueden repetirse para cada glifo.
"STARTCHAR U + 0041" especifica el inicio de un carácter en la versión 2.1 y anteriores, o de un glifo en la versión 2.2. El nombre de la cadena de este carácter en particular es "U + 0041", expresando en la convención Unicode el punto de código hexadecimal 41 (decimal 65, el carácter ASCII "A"). En la versión 2.1 y anteriores, la cadena de nombre de carácter estaba limitada a 14 caracteres. En la versión 2.2, la cadena del nombre del glifo puede contener hasta 65.535 caracteres.
"ENCODING 65" declara el punto de código decimal para este glifo en la fuente.
"SWIDTH 500 0" declara el ancho escalable de 500 en el eje X y 0 (predeterminado) en el eje Y. Esto dará como resultado un desplazamiento del eje X al siguiente glifo, pero no un desplazamiento del eje Y al siguiente glifo (es decir, los glifos aparecen en línea recta). El ancho escalable es 1000 veces el tamaño real en puntos del carácter, la misma unidad que se usa en un archivo Adobe Font Metric (AFM). El número de píxeles calculado como
píxeles = (ancho_escalable / 1000) * (resolución / 72),
donde scalable_width es 500 en este ejemplo, y la resolución es 75 ppp para esta fuente. Como 75 es aproximadamente igual a 72, el número de píxeles es el ancho completo de un glifo (definido globalmente como 16 píxeles) multiplicado por 500/1000, o en otras palabras, el ancho de este glifo es de 8 píxeles.
"DWIDTH 8 0" declara el ancho de dispositivo de un glifo. En este caso, después de renderizar el glifo, el inicio del siguiente glifo se desplaza 8 píxeles en el eje X y 0 píxeles en el eje Y desde el origen del glifo actual. Tenga en cuenta que el ancho del dispositivo no es necesariamente igual al ancho del glifo. Es simplemente el desplazamiento en el eje X para mover el punto actual al inicio del siguiente glifo.
El Ancho escalable se usa para calcular el ancho de un glifo de alta resolución en una impresora, mientras que el Ancho del dispositivo se usa para calcular el ancho de un glifo en un dispositivo de visualización. Por lo tanto, el Ancho escalable se especifica con mayor precisión que el Ancho del dispositivo.
"BBX 8 16 0 -2" declara un cuadro delimitador de 8 píxeles de ancho y 16 píxeles de alto. La esquina inferior izquierda del carácter está compensada por 0 píxeles en el eje X y -2 píxeles en el eje Y.
"BITMAP" comienza el mapa de bits del glifo actual. Esta línea debe ir seguida de una línea por píxel en el eje Y. En este ejemplo, el glifo tiene 16 píxeles de alto, por lo que siguen 16 líneas. Cada línea contiene la representación hexadecimal de píxeles en una fila. Un bit "1" indica un píxel renderizado. Cada línea se redondea a un límite de 8 bits (un byte), rellenado con ceros a la derecha. En este ejemplo, el glifo tiene exactamente 8 píxeles de ancho, por lo que ocupa exactamente 8 bits (un byte) por línea, por lo que no hay relleno. El bit más significativo de una línea de datos ráster representa el píxel más a la izquierda.
"ENDCHAR" finaliza el glifo actual.
Las declaraciones "STARTCHAR" a "ENDCHAR" se repiten para cada glifo de una fuente.
"ENDFONT" aparece como la última línea del archivo, después de que se hayan enumerado todos los glifos de la fuente.
Extensiones de la versión 2.2
La versión 2.2 de la especificación BDF agrega soporte para fuentes no occidentales. Estas adiciones permiten mover el origen mediante un movimiento positivo o negativo en los ejes X e Y. Esto no solo se adapta a la dirección de escritura de derecha a izquierda, sino incluso de arriba a abajo (por ejemplo, para chino). Los siguientes valores proporcionan compatibilidad con fuentes multinacionales:
METRICSET: establecido en 0 para la dirección de escritura 0, 1 para la dirección de escritura 1 o 2 (en el área global inicial) para ambas direcciones de escritura dentro de la misma fuente. Los scripts occidentales tradicionales de izquierda a derecha utilizan "METRICSET 0".
SWIDTH1, DWIDTH1: tienen los mismos parámetros que SWIDTH y DWIDTH, respectivamente. DWIDTH1 debe estar presente para un glifo METRICSET 1. Sus compensaciones pueden ser positivas o negativas.
VVECTOR define un desplazamiento del eje X y un desplazamiento del eje Y para la transición de un glifo de modo 0 a un glifo de modo 1. Se aplica un desplazamiento opuesto durante una transición de glifo de modo 1 a modo 0.
Este esquema se adapta fácilmente a dos direcciones de escritura. Históricamente, las fuentes tenían 128 o 256 puntos de código. Hoy, Unicode permite más de un millón de puntos de código. Es posible que las fuentes contengan miles de glifos, algunos de los cuales deben escribirse de izquierda a derecha, otros de derecha a izquierda y otros de arriba a abajo. Esta escritura multidireccional requiere el uso creativo de DWIDTH1 y SWIDTH1 para cada glifo.
Además de las palabras clave agregadas para soporte internacional, la versión 2.2 agrega la declaración "CONTENTVERSION". Esta palabra clave va seguida de un número entero para indicar el número de versión de la fuente.
Para obtener información más detallada, consulte la especificación de la versión 2.2.
Propiedades de la ventana X
Las utilidades de fuentes de X Window admiten varias propiedades que se pueden especificar en la sección STARTPROPERTIES de un archivo BDF. [2] Un archivo BDF genérico está codificado en ASCII . Las propiedades de X Window se especifican mediante la codificación ISO 8859-1 , que es una extensión de ASCII. Estas propiedades incluyen:
- CAP_HEIGHT entero: la altura por encima de la línea de base de una letra mayúscula (consulte Altura del límite ).
- Cadena COPYRIGHT: una declaración de derechos de autor.
- DEFAULT_CHAR positivo: el carácter predeterminado (glifo) que se muestra para un glifo no definido.
- Cadena FACE_NAME: el nombre de la cara de esta fuente.
- Cadena FONT: el nombre de la fuente en X Window.
- FONT_ASCENT entero: la altura por encima de la línea de base , para el cálculo del espaciado entre líneas.
- FONT_DESCENT entero: el descendente por debajo de la línea de base, para el cálculo del espaciado entre líneas.
- Cadena FONT_VERSION: la versión de la fuente.
- Cuerda de FUNDICIÓN
- Cadena FAMILY_NAME: el nombre de la familia de fuentes.
- AVISO cadena: un comentario general.
- POINT_SIZE entero: consulte Punto (tipografía) . Si no se especifica por separado, EMspace = round (POINT_SIZE / 10), ENspace = round (POINT_SIZE / 20) y THINspace = round (POINT_SIZE / 30).
- RESOLUTION_X positivo
- RESOLUCIÓN_Y positivo
- Cadena inclinada: "R" es romana, "I" es cursiva, "O" es oblicua, "RI" es cursiva inversa, "RO" es oblicua inversa, "OT" es otro y un número indica capacidad de inclinación polimórfica.
- Cadena WEIGHT_NAME: el peso de esta fuente ("Negrita" y "Normal" son típicas, aunque no hay una enumeración establecida).
- X_HEIGHT entero: la altura por encima de la línea de base de una 'x' minúscula (consulte la altura de x ).
... donde "entero" es un número natural , "positivo" es un número positivo (de valor 1 o superior) y "cadena" es una cadena de caracteres ISO 8859-1 .
Notas
- ^ "Sistema X Window, versión 11, lanzamiento 3" . Fundación X.Org . Octubre de 1988 . Consultado el 19 de enero de 2016 .
- ^ Flowers, Jim (1994) [1988]. "3.2 Propiedades de fuente". X Convenciones de descripción de fuentes lógicas (versión 1.5 ed.). X Consortium, Inc. pág. 13. Archivado desde el original el 31 de marzo de 2013 . Consultado el 8 de enero de 2009 .
Referencias
- El estándar Unicode, versión 5.0 . El Consorcio Unicode (5ª ed.). Addison-Wesley . Octubre de 2006. ISBN 978-0-321-48091-0.CS1 maint: otros ( enlace )