Asignar("groff_indice.php","Índice"); $navIzq->Asignar("groff_cap1.php","Capítulo 1"); $navDer->Asignar("groff_cap3.php","Capítulo 3") ?>

2. Uso de tablas.

El programa tbl es un preprocesador para la creación de tablas en los documentos troff. El resultado en nroff deja mucho que desear y no es aconsejable su uso. Además, como tbl inserta movimientos de carro para la creación de las cajas, puede dar resultados imprevisibles.

NOTA. Si fuera necesario incluir tablas en nroff, debería usarse también el programa col para evitar los posibles desajustes de carro.

2.1 Conceptos básicos.

Dentro de un documento las peticiones tbl son de la forma

.TS
Descripción y datos de la tabla.
.TE

La tabla en sí consta de tres partes básicas que se verán a continuación.

2.2 Composición global de la tabla en el documento.

Lo primero de todo es indicar qué carácter va a ser de separación de campos. Por defecto es el tabulador pero puede cambiarse. En la primera línea deberemos escribir algo como

tab(/) ;

lo que haría que el carácter '/' se interpretara como de separación.

Para conseguir que la tabla esté situada adecuadamente en el contexto utilizaremos center, left (por defecto) o right para conseguir que la tabla esté centrada, ajustada a la izquierda o a la derecha en el párrafo, respectivamente. También puede interesar que la tabla esté rodeada por un recuadro con box (allbox haría que todos los campos de la tabla estuvieran recuadrados).

Todos estos parámetros deben colocarse en la primera línea de descripción. Así los comandos

.TS
center box tab(/);
Demás datos
.TE

crearán una tabla centrada en el párrafo dentro de una caja y cuyos campos de datos vendrán separados por el carácter '/'.

2.3 Composición de cada registro (línea) de la tabla.

Todos los registros (líneas) tienen que tener en su descripción el mismo número de campos que debe ser el máximo en la tabla. Cada línea de descripción corresponderá a una línea de datos. La última línea debe acabar en punto y, si hay más registros, todos ellos tendrán la descripción de la última línea.

Los campos pueden estar centrados, ajustados a la derecha o a la izquierda dentro de su caja (c, l y r respectivamente). También podremos indicar si el dato es numérico (con n) y el formato de carácter (con fX donde X será una combinación de las letras RIBS como ya hemos visto antes). Esto podemos verlo mejor con el siguiente ejemplo

.TS
center box tab (/) ;
cfI | cfI
cfB l .
Paquete/Características
-
nroff/Formato de pantalla.
troff/Formato de página.
.TE

cuyo resultado será una tabla de la forma

Tabla 1

Como puede verse, se trata de una tabla centrada en el párrafo, dentro de un recuadro, con una primera línea en la que los campos están centrados en su caja y en cursiva, y las siguientes líneas contienen dos campos alineados a la izquierda el primero de ellos en negrita. Aquí el carácter '-' inserta una línea horizontal entre los registros señalados y el carácter y el '|' una línea vertical entre los campos señalados.

Si un campo ha de ocupar más de un campo, se debe indicar con el parámetro s por cada campo que ocupe. Así

.TS
center doublebox tab (/) ;
cfB s s s
lfI | cfI s | cfI
l | l n | cw(5.5c).
Ejemplo de tabla más elaborada
-
Columna 1/Columnas 2 y 3/Columna 4
-
Registro 1/Registro 2/Registro 3/T{ Registro más largo
de lo normal T}
Ejemplo primero/A la izquierda/24,2/Centrado
Ejemplo segundo/A la izquierda 2/371,32/Centrado dos
.TE

cuyo resultado será una tabla de la forma

tbl da una anchura de campo por defecto. Sin embargo, en algunos casos el resultado no es tipográficamente bello y podríamos necesitar que un valor concreto para la anchura de campo. Esto puede conseguirse añadiendo a la descripción primera del campo una directiva w(n) donde n es el valor de la achura. Un ejemplo de esta situación puede verse en el ejemplo anterior. Si no se hubiera utilizado w(5.5c) tbl habría colocado el campo en dos columnas.

Para finalizar, cuando un campo en tiene tanto texto que nos ocuparía más de una línea, podemos utilizar una directiva que permita escribirlo todo en varias líneas sin que considere que son varios registros. Esto se hace con

T{ Texto muyyyy largo T}