Ya sabemos con qué imprimimos bajo Linux. Ahora haremos una visita a los programas más normales para generar el texto a imprimir usualmente disponibles. Advierta que la mayor parte de los programas de impresión bajo otros UNIX pueden ser muy fácilmente adaptados a Linux.
Bajo Linux, (como cualquier otro U*X), lo más fácil es imprimir texto
llano. Cualquier editor estándar de UNIX (vi
, emacs
), o alguno
más sofisticado (nedit
, jed
, .. ) le producirán tantas arrobas
de letras como desee.
Además, la mayor parte de los programas que a continuación se describen son capaces de generar documentos en texto llano, con las órdenes adecuadas.
pr
La mayoría de los ficheros de texto llano en U*X tienen tendencia a ser un mar de caracteres, sin saltos de página ni nada que permita un documento mínimamente presentable.
pr
surgió para obviar este inconveniente. Procesando el documento a
través de pr
, se le añaden cabeceras y/o pies, números de página,
márgenes superior e inferior... Como cualquier otra utilidad UNIX, pr
tiene dos o tres millones de opciones, debidamente reseñadas en la página
del manual.
Si no tiene que imprimir texto llano, es muy probable que tenga que imprimir PostScript. Si su impresora lo interpreta, sus problemas terminan aquí; si está en el caso contrario, situación normal para casi todos, la cosa se complica un poco, pues necesitará un programa que lea PS y lo traduzca al lenguaje de su impresora.
El modo normal de interpretar ps bajo Linux es usar ghostscript, que ,
como casi todas la utilidades, procede del proyecto GNU. Herramienta
versátil donde las haya, gs
traduce PostScript a formato X Window,
impresoras IBM, Epson, HP, Canon ..., fax, y casi para cualquier
dispositivo que se le ocurra. Los dispositivos soportados en cada versión
de ghostscript están debidamente relacionados en la documentación del
programa; puede obtenerse una relación con la orden 'gs -help
'.
gs
se ha convertido en utilidad estándar en la mayoría de las
distribuciones de Linux, que la incluyen completa. Advierta que los
ejecutables binarios pueden necesitar 'libX.so.???
' tal como vienen
en el controlador de pantalla X Window.
La distribución "oficial" en forma de ficheros fuente, que deben ser compilados en su sistema puede encontrarse en:
ftp://prep.ai.mit.edu/pub/gnu/ghostscript-*.tar.gz
ftp://prep.ai.mit.edu/pub/gnu/ghostscript-fonts-*.tar.gz
La instalación mínima de los binarios de gs
y algunos otros programas
necesarios para imprimir la documentación de Linux está disponible en
ftp://sunsite.unc.edu/pub/Linux/apps/tex/texmin/texmin-*.tar.z
Esta distribución no contiene ningún tipo de letra PostScript (ni las
necesitará para imprimir ficheros .dvi
).
La documentación principal de ghostscript se encuentra en el fichero
use.doc
, en el directorio de fuentes, o en
/usr/lib/ghostscript/doc/
si no tiene los fuentes.
Para imprimir ps determine primero el nombre de su dispositivo con la
orden 'gs -help
', que lista los dispositivos instalados. Si el suyo
no está en la lista, deberá recompilar gs
(No se asuste, siga las
instrucciones que figuran en make.doc
. Necesitará libres 5 o 6 Mb de
espacio en disco). Con la orden:
# gs -dNOPAUSE - sDEVICE=???? -sOutputFile=/dev/???? fichero.ps
el documento aparecerá (eso esperamos) en su impresora sin problemas. Como podrá imaginar, a mayor versión, más dispositivos soportados. En la documentación incorporada se describe el procedimiento para desarrollar nuevos dispositivos si fuera necesario.
gs
puede imprimir en la mayoría de las resoluciones soportadas por su
impresora; '-r300
' '-r150
', '-r360x180
' son ejemplos de las
opciones para su control. Las impresoras matriciales necesitan que se fije
esta opción, al no soportar normalmente la resolución por defecto de
300x300.
Si su impresora sólo trabaja con PostScript, o quiere ahorrarse andar configurando el dispositivo cada vez que tiene que cambiar el tipo de documento a imprimir, hay toda una familia de programas que transforman el texto llano a PostScript.
mpage
Transforma texto llano a PostScript y/o imprime más de una página en cada hoja de papel a partir de PostScript o texto. Puede encontrarlo en
ftp://wuarchive.wustl.edu/pub/mirrors/unix-c/PostScript/mpage-tar-z
el sufijo -z
equivale a .Z
(compress
). La orden
man -t <orden> | mpage
enviará una copia de la página en formato PostScript a lpr
.
a2ps, enscript, nenscript
A partir de un texto ascii llano, a2ps
produce una página debidamente
formateada, con cabeceras, pies, números de página ... Se encuentra en el
mismo lugar que mpage
.
enscript
y nenscript
hacen lo mismo que a2ps
. Puede
encontrar nenscript
en:
ftp://sunsite.unc.edu/pub/Linux/system/Printing/nenscript*
Ojo; Aquí podemos tener problemas con
los caracteres extendidos; por ejemplo: a2ps
(la versión que tengo,
al menos) genera un fichero ps
que no tiene acentos, eñes .., al no
definir una tabla tipográfica para ellos. En cambio, nenscript
si lo
hace.
gslp
Incluida en la distribución de ghostscript, gslp
transforma un
fichero texto a PostScript. Úselo con la orden:
# gs -q -sDEVICE=???? -dNOPAUSE -- gslp.ps fich.text
(el programa es gslp.ps
, escrito en PostScript, que, en muchos
aspectos, es un lenguaje de programación, más que un conjunto de órdenes
de impresión). Hay un ejecutable en la distribución que evita dar estos
rodeos.
Existen cientos de pequeños programas que permiten modificar ficheros ps. Puede encontrarlos en
ftp://achilles.doc.ic.ac.uk/tex/inter/psutils/
ftp://ftp.cs.psu.edu/pub/src/psutil.tar.gz
ftp://ftp.uu.uunet
ftp://wuarchive.wustl.edu
TeX, LaTeX
Si hay algo cierto en el mundo de UNIX, especialmente a nivel académico,
es que antes o después uno se acaba topando con Él. TeX
es un sistema
de formateado de textos
Más bien un
Procesador de Documentos.dvi
, independiente del dispositivo, que normalmente debe
ser procesado de nuevo para obtener un documento impreso. La altísima
calidad del producto obtenido justifica la complejidad del proceso.
El trabajo con TeX
, no obstante, se ve gratamente suavizado mediante
el uso de procesadores de texto, como LyX
, con el que ha sido
reelaborado este documento.
Remitimos al lector al libro "LaTeX, a document preparation system" de Leslie Lamport (ed. Addison Wesley) 2ª edición, que analiza en detalle la versión más popular de este extraordinario sistema de tratamiento de textos.
dvips
Convierte el fichero dvi generado a partir de un documento TeX
en un
fichero PostScript, que puede imprimir a través de gs
, o directamente
en la máquina adecuada. La mayoría de las distribuciones de Linux incluyen
este paquete.
La orden
dvips -f1 fich.dvi | lpr
es típica. dvips
responde tanto a los argumentos de la línea de
comandos como al fichero de configuración "config.ps
", donde puede
organizar las cosas para que la salida vaya directamente a la impresora,
por ejemplo. Así, bastará escribir dvips fichero.dvi
para obtener el
documento final.
dvips
tiene unas cuantas opciones interesantes; por ejemplo dvips
-r1 fich.dvi
imprimirá el documento en orden inverso. Los propietarios de
impresoras HP apreciarán esta característica.
eps, dvilj, dvi500
Transforman los ficheros dvi en los lenguajes de impresoras Epson y HP
LaserJet y DeskJet respectivamente. Suelen estar incluidos en la mayor
parte de las distribuciones, y, por supuesto, en
ftp://sunsite.unc.edu
texinfo
Es el formato nativo del proyecto GNU. emacs
puede ser forzado a
producir un fichero de información desde TeXinfo, y TeX producirá un
excelente resultado a partir de este mismo fichero. Realmente, el
documento está en formato TeX, y necesita que el fichero de macros
texinfo.tex
esté instalado en su sistema. Simplemente ejecute
'tex fichero
' dos veces (con el fin de generar índices), y obtendrá
un fichero dvi que podrá imprimir o visualizar a su placer.
Con emacs
puede teclear además 'M-x texinfo-format-buffer
' para
convertir el fichero texinfo en un fichero info legible con emacs 'M-x
info
', u otro visor de su elección.
Hay otros programas que leen y formatean info desde un fichero texinfo.
Están disponibles en
ftp://prep.ai.mit.edu/pub/gnu/
*roff
; páginas manSi hay un generador de documentos virtualmente universal es troff
, y
sus primos cercanos, debido a que las páginas de manual se escriben para
ellos. Las órdenes de formato de documentos serán ¿sorprendentemente?
familiares para los (no se si aún queda alguno vivo) forofos de las
versiones más populares de Wordstar.
La orden para imprimir las páginas de manual es
man -t <comando> | lpr
groff
traduce la página a PostScript, que se procesa sin mayores
problemas, como ya sabemos. Obtendremos así una página impresa muy
aparente. Esto, sin embargo, depende mucho del programa 'man
' que
viene con su sistema. Si el suyo no lo permite, consiga la versión escrita
en perl
, en:
ftp://sunsite.unc.edu/pub/Linux/system/Manual-pagers/
.
Está íntegramente escrito en perl
, y es por tanto muy personalizable.
Otro camino consiste en encontrar el fichero fuente de nroff
de la
página en los directorios de man
, e imprimirlo con la orden:
groff -fichman -Ttipo orden.1 | lpr
donde tipo puede ser 'ascii
', 'dvi
' 'ps
' 'X100
',
'X75
', 'latin8
'
Estándar emergente donde los haya, los papás de PostScript han desarrollado un formato de documentación que permite (al menos eso venden) absoluta independencia del sistema operativo. Un fichero PDF se imprimirá igual de bien en un ordenador con MS-Windows, un Mac*, un CojoSuperOrdenador Cray, o un PC con Linux.
Los documentos PDF se traducen justo a la hora de imprimirlos al formato que cada sistema operativo requiera; en UNIX, a PostScript.
Puede obtenerse una copia del lector de Adobe en
http://www.adobe.com
.
Si prefiere algo menos "comercial", Xpdf
será de su agrado. La última
versión está en
http://www.contrib.andrew.cmu.edu/usr/dn0o/xpdf/xpdf.html
(Esta sección contiene información no específica a los dispositivos). La
información pertinente al dispositivo X11 de gs
(y ghostview) se
incluye en el apartado de visualización.
Todas las versiones de gs
vienen provistas de un surtido de tipos de
dominio público, muchas de ellas generadas a partir de mapas de bit, con
baja calidad. Sin embargo, gs
puede usar cualquier tipo PostScript
clase 1 o 3 que tenga a mano. Por ejemplo, Adobe Type Manager (que no
sea de Mac) incluye tipos utilizables. Sitúelos (normalmente *.pc?
)
en lib/ghostscript/fonts/
, y añada al fichero
[...]/ghostscript/Fontmap
' líneas del estilo
/Courier (com_______.pfb) ;
En el servidor de correo de impresión puede encontrar el fichero
fontmap.atm
, que contiene un fontmap de los tipos
normalmente incluidos en Adobe Type Manager.
Puede encontrar tipos Adobe Type 1 en:
ftp://ftp.cica.indiana.edu/pub/pc/win3/fonts
ftp://archive.umich.edu/msdos/mswindows/fonts
En el fichero comp.fonts FAQ
, en
ftp://rftm.mit.edu
, puede encontrar
información útil acerca de tipos de impresión.
La conversión entre familias de tipos es delicada. gs
incluye
herramientas para generar tipos escalables a partir de mapas de bits
(cuanto más grandes, mejor).
groff
tiene también herramientas para usar tipos Tfm/mf (TeX) y pfb
(type 1) en documentos *roff. X11R5 incluye herramientas procedentes de
IBM para presentar tipos type 1, con sus correspondientes páginas de
manual. Eche un ojo también al logical fontutils en
ftp://prep.ai.mit.edu/pub/gnu/
.
Aunque no parezca el lugar más adecuado para su reseña, ¿qué hacemos al enviar un fax más que imprimir un fichero en un terminal remoto?. Mediante fax, puede transmitir documentos originalmente en PostScript, dvi, texto llano....
Para enviar un fax, el documento original debe ser transformado en una
imagen TIFF del grupo III que será transmitida por el fax-módem. Todos los
programas mencionados contienen utilidades que permiten transformar las
distintas clases de documentos al formato necesario. Además, gs
(también aquí) tiene dispositivos adecuados para ello
(-sDEVICE=tiffg3
).
Tenga en cuenta que hay dos juegos de órdenes que un fax puede soportar: Clase 1 y Clase 2. En el primer caso, hoy ya casi extintos, gran parte de la gestión de transmisión de datos debe hacerla el ordenador anfitrión vía el programa de fax. Esto hace que en condiciones de sincronización crítica, el control se vuelve casi imposible. Los fax de clase 2 son más caros, pero mucho menos propensos a dar guerra. No confunda la 'clase' y el 'grupo'. Deberá tener, por supuesto, un fax-módem de grupo III.
FLEXFAX
FlexFax está escrito en C++ (necesita instalar g++ para compilarlo), y
soporta fax de clase 1 y 2. Utiliza ghostview
(o cualquier otro visor
de ps) . Puede ejecutarse en lugar de getty
, y decide, según el tipo
de llamada, si activar el fax, o presentar un login. Permite la emisión de
faxes a través de una red, y tiene un zurillón de utilidades. Se configura
vía 'configure
', y para un ordenador aislado es un tanto
mastodóntico. La versión actual (4.0 beta 018, según escribo ) puede
encontrarse en:
http://www.vix.com/hylafax/
mgetty+sendfax
mgetty+sendfax
controla sólo fax de clase 2, y puede también
actuar como contestador automático, si el módem lo soporta. Al igual que
FlexFax, se instala en lugar de getty
, controlando qué entra y sale.
Muy adecuado si no necesitas trabajar sobre red. Un excelente conjunto de
programas disponible en
ftp://sunsite.unc.edu/pub/Linux/system/Serial/mgetty+sendfax*.tar.gz
ftp://tsx-11.mit.edu/pub/Linux/sources/sbin/mgetty+sendfax*
ftp://ftp.leo.org/pub/comp/networking/communication/modem/mgetty/
Controla fax de clase 1 y 2; no discrimina entre una conexión de datos y un
fax, tiene su fuerte en su facilidad de uso. Necesita el paquete NetPBM
(ftp.x.org). Utiliza xv
para ver los fax recibidos. Lo encontrará en:
ftp://sunsite.unc.edu/pub/Linux/apps/comm/efax*