  Impresin Como
  Grant Taylor gtaylor@cs.tufts.edu y Brian McCauley
  (B.A.McCauley@bham.ac.uk
  Traduccin: Francisco Escarpa escarpa@impronta.es

  Una gua de cmo imprimir y ver documentos bajo el sistema operativo
  Linux.
  ______________________________________________________________________

  ndice General:

  1.      Introduccin

  2.      Preprense los impacientes.

  3.      Puertos y dispositivos

  4.      LPR

  4.1.    Qu necesita?

  4.2.    Cmo imprimir con Linux?

  4.3.    Impresin remota e impresin local.

  4.4.    Los programas importantes

  4.4.1.  La orden lpr

  4.4.2.  La orden lpq

  4.4.3.  La orden lprm

  4.4.4.  la orden lpc

  4.5.    Los directorios fundamentales.

  4.5.1.  Y sus correspondientes ficheros.

  4.6.    /etc/printcap

  4.6.1.  Los campos de /etc/printcap .

  4.6.2.  Probemos /etc/printcap  con un ejemplo

  4.6.3.  Valor y al toro: juntmoslo todo

  4.6.4.  Y de la impresin remota, qu?

  4.6.5.  Socorro: no funciona.

  4.6.6.  Dnde puedo encontrar un printcap  para la impresora xxxxx?

  4.6.7.  El "efecto escalera", bajo control.

  4.6.8.  Imprimir por el puerto serie es fcil.

  4.6.9.  cat  funciona, pero lpd  no.

  4.6.10. Impresoras que no son dispositivos simples.

  4.7.    Trucos y problemas

  4.7.1.  lpr -i  o como modificar la impresin a nuestro antojo.

  4.7.2.  ' lpc ' y ' lpq ' advierten : " missing daemons "

  4.7.3.  Impresin sobre red (notas adicionales)

  4.8.    Los filtros de impresin

  4.8.1.  Los filtros de salida

  4.8.2.  Depuracin de filtros

  4.8.3.  Filtros Mgicos

  4.8.4.  Los usuarios de HP estamos de suerte

  5.      CMO SE IMPRIME ... ?

  5.1.    Texto Llano

  5.1.1.  pr

  5.2.    PostScript

  5.2.1.  Ghostscript

  5.3.    Mi impresora slo trabaja con PostScript

  5.3.1.  mpage

  5.3.2.  a2ps, enscript, nenscript

  5.3.3.  gslp

  5.3.4.  Utilidades para PostScript

  5.4.    TeX, LaTeX

  5.4.1.  dvips

  5.4.2.  eps, dvilj, dvi500

  5.5.    texinfo

  5.6.    *roff ; pginas man

  5.7.    Adobe Acrobat. Ficheros PDF

  5.8.    Tipos

  5.9.    Documentos para fax.

  5.9.1.  FLEXFAX

  5.9.2.  mgetty+sendfax

  5.9.3.  EFAX

  6.      Visualizacin

  6.1.    Con X-Window instalado

  6.1.1.  ghostview

  6.1.2.  gspreview

  6.1.3.  xdvi y xtex

  6.2.    Y si no tengo instalado X Window ?

  6.2.1.  Ghostscript, de nuevo

  6.2.2.  dvgt

  7.      Copyright

  8.      Anexo: El INSFLUG
  ______________________________________________________________________

  1.  Introduccin

  Esta es la versin espaola del Printing-HOWTO de Linux. ste
  documento forma parte de la segunda generacin de linux FAQ (-- Nota
  del Revisor El Linux-FAQ original devino en una bestia inmanejable,
  por lo que se cambi el esquema y se fraccion en secciones
  independientes para cada aspecto del sistema operativo.

  Este COMO en particular trata de cmo administrar los distintos
  aspectos de impresin bajo Linux, configurar impresoras, instalar
  aplicaciones para hacerlas funcionar...  Originalmente escrito por
  Grant Taylor gtaylor@cs.tufts.edu), posteriormente incorpor el lpd-
  FAQ de Brian McCauley (B.A.McCauley@bham.ac.uk).

  Otros COMOs detallan aspectos acerca de la conexin en red.... Aunque
  pueden encontrarse estos documentos en los lugares ms insospechados,
  su "domicilio" oficial es:

  ftp://sunsite.unc.edu/pub/linux/docs/Howto (-- Igualmente, la mayora
  de los mirrors de Sunsite contendrn las traducciones de los COMO, en
  su directorio
  ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/es--)

  (busque mejor en los Mirrors.  Sunsite es una playa muy concurrida)
  Junto con el resto de los FAQ de usenet, podemos encontrarlos en
  ftp://rtfm.mit.edu

  Enven los comentarios, errores detectados y sugerencias a Brian y
  Grant a printing@god.ext.tufts.edu (versin en ingls) o a Francisco
  Escarpa para la traduccin espaola (escarpa@impronta.es ).

  Les rogamos que nos comuniquen cualquier nuevo programa, fichero, ...
  que conozcan y no figure en este documento.

  Grant ha configurado un servidor de correo centrado en la impresin y
  visualizacin bajo Linux, incluyendo la ltima versin de este
  documento (en ingls). Para acceder, enve un mensaje de correo
  electrnico a listserv@god.ext.tufts.edu, con el cuerpo de mensaje
  'INFO'. Recibir como respuesta una lista de los ficheros disponibles.
  Si el cuerpo del mensaje es 'get fich1 [fich2 fich3]', recibir una
  copia de los ficheros pedidos.

  Para esta traduccin se ha reelaborado ligeramente el documento
  original, eliminado repeticiones, reducido los detalles particulares
  de cada programa al mnimo imprescindible, remitiendo al lector a la
  documentacin correspondiente, y aadiendo alguna pequea novedad
  conocida.  Agradeceremos las sugerencias, notificacin de errores y
  dems.

  2.  Preprense los impacientes.

  Usted ya conoce UNIX, y ya tiene configurado el sistema (o se lo han
  configurado) y desea con toda urgencia imprimir: Hgalo con la orden:

       lpr fichero

  y por su impresora saldrn las tan ansiadas pginas. Si no funciona,
  lea de cabo a rabo este documento.

  3.  Puertos y dispositivos

  Como es sabido, Unix mapea los dispositivos sobre el sistema de
  ficheros; as, cada puerto fsico est reflejado en un fichero,
  generalmente bajo /dev, sobre el que se ejecutan las operaciones de
  e/s.

  En un sistema de bus tipo AT, comn a todos los PC actuales, el puerto
  LPT1 equivale en Linux al fichero de dispositivo /dev/lp1 y sucesivos.

  Precisando:

              Nombre        Mayor        Menor         Direccion E/S

              lp0           6            0             0x3bc

              lp1           6            1             0x378

              lp2           6            2             0x278

  Del mismo modo, los puertos COM se controlan a travs de los
  dispositivos ttyS* (Consulte el Serie-Como, en http://www.insflug.org
  para ms informacin)

  Utilice los dispositivos /dev/ttyS? (o /dev/ttys? si lo prefiere) para
  conectar una impresora por lnea serie. No utilice /dev/cua?.

  En algunos sistemas, puede haber enlaces simblicos hacia estos
  dispositivos, como /dev/lpr -> /dev/lp1, o /dev/impserie ->
  /dev/ttyS0. Hay a quien le parece muy elegante, y quien lo considera
  de psima praxis. (lea la pgina man 'ln' para ms informacin ).

  Recuerde que NO puede simultneamente tener soporte para impresora y
  para comunicaciones va puerto paralelo (conectarse con plip, o un
  disco ZIP paralelo, por ejemplo); si necesita ambas funcionalidades es
  una buena idea recompilar el kernel, y preparar el soporte de
  impresin y de comunicaciones como mdulos independientes, que se
  cargarn en el kernel cuando sea necesario.

  4.  LPR

  Todo sistema que se precie es capaz de gestionar una o varias
  impresoras, con uno o varios usuarios, que les envan distintas clases
  de documentos, ms o menos dignamente.
  Unix resuelve estos problemas mediante un conjunto de programas, los
  servidores de impresin, que gestionan los trabajos pendientes, y los
  encauzan a las impresoras adecuadas, todo de manera completamente
  transparente al usuario.

  Hay dos familias de servicios de impresin: "lp" en UNIX System V
  (AT&T), y "lpr", en los U*X BSD, y Linux. En este documento slo se
  hablar del segundo sistema; el sistema lp no es de dominio publico, y
  no conocemos ninguna versin que lo sea; de todos modos, ambos tienen
  hoy da la misma funcionalidad.

  Una variante muy prometedora de lpr, LPRng, obvia toda una serie de
  limitaciones del lpr original. Nos limitaremos a mencionar las
  diferencias en los captulos concretos.

  Dicen los que saben que lp es ms robusto, pero a la hora de trabajar
  en red lpr se destaca por varios cuerpos.

  4.1.  Qu necesita?

  Asumimos que usted sabe cmo editar un archivo de texto bajo Linux, y
  tiene los conocimientos bsicos sobre permisos y propiedad de
  archivos.

  Tambin suponemos que su sistema Linux funciona sin tropiezos. Si
  desea imprimir en mquinas remotas, deber adems tener configurado y
  funcionando el soporte de red (vea en NET-3-HOWTO (-- N. del Revisor:
  ver seccin ``''--) ).

  Revise las pginas de manual de los comandos chmod y chown para ms
  informacin.

  4.2.  Cmo imprimir con Linux?

  El camino ms corto en UNIX (y bajo Linux), es enviar los datos a
  imprimir directamente al dispositivo adecuado. El siguiente comando
  enva un listado del directorio a la primera impresora en paralelo
  (hablando en DOS, LPT1:):

              ls > /dev/lp1

  El problema de este mtodo es que no aprovecha las capacidades de
  multitarea de Linux, debido a que el tiempo que tarda el comando en
  completarse ser el mismo que emplee la impresora en despachar el
  trabajo.

  En una impresora lenta, o en una apagada o sin papel, puede
  prolongarse un poco. Podramos ejecutar el comando simplemente en
  segundo plano, pero no adelantaramos mucho. Adems, deber tener
  privilegios de superusuario.

  Un remedio mejor es crear un rea tampn (spool), es decir, guardar
  los datos a imprimir en un fichero temporal, y arrancar un proceso en
  segundo plano que enve los datos a la impresora, y gestione las
  incidencias que se presenten.

  Esencialmente, as funciona Linux. Para cada impresora, se define un
  rea tampn, donde cada trabajo pendiente se almacena en un fichero.
  Un proceso en segundo plano (llamado el demonio de impresin) analiza
  metdica y constantemente los ficheros tampn, buscando nuevos datos a
  imprimir.  Cuando aparece alguno, son enviados a la impresora
  apropiada; cuando ms de un fichero est a la espera, se colocan en
  una cola (el primero que entra es el primero que se procesa), por lo
  que se habla propiamente de la "cola de impresin".

  En el caso de impresin remota, los trabajos se gestionan localmente,
  como cualquier otro, pero el demonio de impresin lo enva a travs de
  la red hacia el ordenador o impresora destino.

  La informacin que el demonio de impresin necesita para su trabajo
  (el dispositivo fsico, el tampn de datos, la mquina e impresora
  remota ...)  se almacenan en un fichero llamado "printcap", que
  describiremos ms tarde.

  En lo sucesivo, el trmino "impresora" se referir a una mquina
  lgica definida en /etc/printcap. El concepto "impresora fsica" o
  "trasto", define la cosa que mancha papel. Es perfectamente posible
  describir mltiples entradas en /etc/printcap que se refieren a un
  slo trasto, pero por caminos tortuosos. No se preocupe, lo
  aclararemos al describir printcap.

  4.3.  Impresin remota e impresin local.

  La impresin remota nos permite enviar trabajos de impresin desde una
  mquina, hacia otra (ordenador/impresora) conectada a una red; por
  ejemplo, nuestro equipo funciona de servidor en una red, o si una
  impresora asignada a nuestra mquina debe ser accesible por otros
  ordenadores.

  Imprimimos localmente cuando usuarios de nuestra mquina envan
  trabajos a una impresora conectada directamente a la misma.

  4.4.  Los programas importantes

  El sistema de impresin de Linux se sustenta en cinco programas, que
  deberan estar donde aparecen en el siguiente listado, propiedad de
  root, y grupo lp (o daemon, segn el sistema en concreto):

              -rwxr-xr-x          root          lp            /bin/lpr

              -rwxr-xr-x          root          lp            /bin/lpq

              -rwxr-xr-x          root          lp            /bin/lpc

              -rwxr-xr-x          root          lp            /bin/lprm

              -rwxr-x---         root          lp            /sbin/lpd

  Los cuatro primeros tienen por fin enviar, cancelar y examinar los
  trabajos de impresin. /sbin/lpd es el demonio de impresin.

  OJO: Los directorios, permisos y propiedad de los ficheros pueden
  diferir a los de su sistema, aunque no deberan ser MUY distintos.
  Hay pginas de manual que explican con detalle todas estas rdenes y
  que debera consultar para ampliar informacin.

  Es importante saber que, por defecto, lpr, lprm, lpc y lpq trabajan
  con una impresora llamada "lp". Si define la variable de entorno
  PRINTER con el nombre de una impresora, pasar a ocupar el valor por
  defecto. Se puede indicar sobre la marcha una impresora distinta con
  la opcin -P impresora en la lnea de rdenes.

  4.4.1.  La orden lpr

  Con lpr se enva un trabajo a la impresora. Este se copia en el
  tampn, donde el demonio de impresin lo encuentra, y lo enva a la
  impresora fsica. Si no le suministra un fichero, lpr usar la entrada
  estndar.

  4.4.2.  La orden lpq

  lpq muestra los trabajos pendientes para la impresora deseada ("lp"
  por defecto). lpq muestra el nmero de cada trabajo, que lo identifica
  para cualquier proceso posterior.

  Muestra tambin el estado de cada trabajo. "active" indica que el
  demonio est enviando el trabajo a su destino, o al menos lo intenta.
  Si no, un nmero indica su orden en la cola de impresin.

  4.4.3.  La orden lprm

  lprm elimina un trabajo de la cola, es decir, borra los ficheros en
  espera en el directorio tampn. Puede indicar especficamente la
  identidad de un trabajo particular, o "-", con lo que cancelamos todos
  los trabajos destinados a la impresora seleccionada .Si se es
  superusuario, y quiere eliminar todos los trabajos pertenecientes a un
  usuario, especifique su nombre de usuario en la lnea de rdenes.

  4.4.4.  la orden lpc

  Con lpc podemos comprobar el estado de las impresoras, y controlar
  algunos aspectos de su uso. Particularmente, le permite arrancar y
  parar el tampn de datos, permite activar y desactivar impresoras, y
  reorganizar el orden de los trabajos en cola. Con las rdenes
  siguientes desactivamos la impresora "impre", activamos la cola de
  "tuimpre", y mueve el trabajo 37 al principio de la cola.

                     lpc down impre

                     lpc enable tuimpre

                     lpc topq 37

  Si no especificamos argumentos, lpc entrar en modo dilogo. con "?"
  obtenemos ayuda. Advierta que algunas funciones de lpc estn
  reservadas para el superusuario.
  4.5.  Los directorios fundamentales.

  Realmente, slo hay un directorio importante: el rea de tampn donde
  se almacenan los datos a la espera de que lpd decida qu hacer con
  ellos. Sin embargo, un sistema tpico debera configurarse en varios
  directorios, uno para cada impresora, lo que facilita notablemente el
  mantenimiento. En la mayora de las instalaciones, /var/spool/lpd es
  el directorio tampn principal, y cada impresora tiene un
  subdirectorio particular, con el mismo nombre que la impresora. As,
  si tiene una impresora llamada PJL-16 que admite PostScript y HPGL,
  debera crear dos directorios, por ejemplo /var/spool/lpd/PJL-16-ps y
  /var/spool/lpd/PJL-16-hpgl.

  Los directorios temporales deberan pertenecer a root, grupo lp; user
  y group deben poder leer y escribir, y el resto, leer. permisos:

       -rwxrwxr-x

  (775)

  Para cada directorio de impresora, la orden adecuada sera:

       chmod ug=rwx,o=rx PJL-16-ps
       chgrp lp myprinter

  Los destinos, permisos y propietarios aqu indicados deben
  considerarse como indicativos, pues pueden variar entre distintos
  sistemas e instalaciones.

  4.5.1.  Y sus correspondientes ficheros.

  Adems de los programas ya tratados, cada directorio temporal debe
  contener como mnimo estos cuatro ficheros: ".seq" , "errs" , "lock" y
  "status". Debern tener permisos

       -rw-rw-r--

  (664).

  El fichero .seq contiene la secuencia de trabajos enviados.  status
  contiene el mensaje que devuelve "lpc stat". El fichero lock impide al
  lpd imprimir al tiempo dos trabajos en la misma impresora, y errs
  guarda un registro de los fallos de la impresora.

  El fichero "errs" es actualmente potestativo, y ahora puede llamarse
  como le apetezca su nombre se especificar en /etc/printcap.  Debe,
  sin embargo, existir un fichero que permita a lpd registrar los
  mensajes de error.
  4.6.  /etc/printcap

  /etc/printcap es un fichero texto, modificable con su editor favorito.

  Su propietario debe ser root y debe tener permisos

       -rw-r--r--

  (644)

  Aunque a golpe de vista parezca tan comprensible como la piedra
  Rosetta , su estructura es muy sencilla y asequible. Parte de la mala
  fama se debe a que algunas distribuciones no incluyen pgina de manual
  para printcap, y el hecho de que muchos printcap estn generados por
  programas, o por gente cuya manera de despreciar al gnero humano es
  omitir comentarios que ayuden a su compresin. Desde aqu hacemos un
  llamamiento para que su fichero printcap sea tan legible como sea
  posible.

  Cada entrada de printcap describe una impresora. Mejor an, cada
  entrada de printcap provee una denominacin lgica para un dispositivo
  fsico, y describe cmo deben los datos ser enviados y manejados por
  l.

  Por ejemplo, una entrada de printcap definir qu puerto vamos a usar,
  qu directorio tampn, qu proceso deben soportar los datos, qu clase
  de errores debemos notificar, qu volumen de datos se permiten enviar
  como mximo, o limitar el acceso de ciertos dispositivos.

  Adems, podemos definir distintos modos de procesar datos para una
  misma impresora. Por ejemplo, una misma impresora de HP puede manejar
  datos en formatos PostScript, HPGL y PCL, dependiendo de la secuencia
  de rdenes que le enviamos al comienzo de cada trabajo. Tendra
  sentido definir los tres modos de trabajo como sendas impresoras, cada
  una de las cuales procesar los datos dependiendo del modo de trabajo.
  Los programas que generan datos ps se enviarn a la impresora PS, los
  dibujos HPGL a la impresora HPGL, y as sucesivamente.

  Llamaremos "filtros" a los programas que procesan los datos a
  imprimir. Un filtro puede incluso no enviar ningn dato al puerto.

  4.6.1.  Los campos de /etc/printcap .

  Un ejemplo tpico de entrada en /etc/printcap podra ser:

       # Ejemplo de printcap con dos alias
       impresora|HP850C:\
       # lp es el dispositivo de impresion, en este caso, la primera impresora
       :lp=/dev/lp1:\
       # sd indica el directorio tampon
       :sd=/var/spool/lpd/HP850C:

  Como vemos, cada entrada de /etc/printcap se estructura en una serie
  de campos, encabezados por una etiqueta, y limitados por dos puntos, a
  excepcin del primer campo, que describe la impresora. Los campos
  pueden tener tres tipos de valores - Texto, lgico y numrico, en los
  que nos extenderemos ms adelante.

  La primera lnea de la entrada determina el nombre y alias de la
  impresora. La impresora por defecto debera llamarse "lp"; por
  ejemplo, si la impresora del ejemplo anterior es la nica que tenemos,
  la primera lnea sera:

       # Ejemplo para la impresora por defecto
       lp|HP850C:\

  Podemos usar el nombre que nos apetezca como "La Picadora de papel del
  despacho de Gertrudis", aunque no parezca quiz muy prctico. Ojo:
  Slo podemos tener una impresora llamada "lp".

  Los siguientes campos son los ms comunes, y los ms importantes:

       Campo    Tipo         Descripcion

       lp       Texto        Dispositivo de impresion ( ej.: /dev/lp1 )
       sd       Texto        Nombre del directorio tampon de esta impresora
       lf       Texto        Fichero que almacena el registro de errores
       if       Texto        Nombre del filtro de entrada
       rm       Texto        Nombre del host de impresion remota
       rp       Texto        Nombre de la impresora remota
       sh       Logico       Suprime las paginas que separan los trabajos
       sf       Logico       Suprime las paginas en blanco al final del trabajo
       mx       numerico     Tamagnio maximo del trabajo de impresion (en bloques)

    lp apunta al puerto/dispositivo de impresin. Si especificamos
     /dev/null como dispositivo, el resto de los procesos se ejecutan
     normalmente, pero los datos de salida van a parar al inodoro. No se
     utiliza a excepcin de las pruebas de configuracin del
     dispositivo.  Cuando configure una impresora remota con los campos
     rm y rp , debera poner ":lp=:" en /etc/printcap, indicando que no
     est asignada a ningn dispositivo local.. No deje este campo en
     blanco a menos que use una impresora remota, o el demonio de
     impresin se quejar amargamente, si no especifica un dispositivo
     de impresin.

    lf guarda un registro de los errores de impresin.  Cualquier
     fichero que especifique deber existir antes de su uso, o no se
     registrarn las incidencias.

    if indica el nombre del filtro de impresin a ejecutar. Los filtros
     son programas que reciben datos por la entrada estndar, y los
     devuelven procesados por la salida estndar.

     Un empleo tpico es detectar texto llano y convertirlo en
     PostScript para imprimirlo en ese tipo de trastos. Son muy tiles,
     por ejemplo, para eliminar el efecto escalera, o cambiar la pgina
     de cdigos sin necesidad de cambiar la configuracin de la
     impresora cada vez que la usemos entre UNIX y DOS.

     Cuando se especifica un filtro de entrada, el demonio de impresin
     no enva los datos pendientes al dispositivo especificado. En su
     lugar, arranca el filtro y asigna el fichero temporal a la entrada
     estndar, y el dispositivo de impresin como salida estndar.

    rm y rp controlan el destino de la impresin remota. Enviar el
     documento a imprimir a una impresora remota es tan fcil como
     indicar el anfitrin en rm, la impresora correspondiente en rp, y
     asegurarse que lp est vaco. Fjese en que los datos se tamponan
     localmente antes de ser enviados, y que le ejecutar cualquier
     filtro que especifique.

     Una entrada tpica de /etc/printcap en la mquina local
     (pera.huerta.net)  para trabajar sobre la impresora picapapel, en
     la estacin rbano.huerta.net (remota), sera:

     picapapel:lp=:rm=rbano.huerta.net:rp=picapapel:sd=/var/spool/lpd/picapapel:

     En la mquina remota necesitar que /etc/hosts.equiv o
     /etc/hosts.lpd contenga la lnea pera.huerta.net; Tenga cuidado con
     los permisos de acceso. Vea el punto ``Y de la impresin remota,
     qu?''.

    sh y sf: Portadillas y separadores. Salvo que haya mucha gente
     distinta usando su impresora, probablemente no estar interesado en
     las pginas separadoras de trabajos. Las pginas de fin de trabajo
     son particularmente molestas cuando se trabaja con procesadores de
     texto, que componen pginas completas, por lo que si especificamos
     sf, tendremos al final de cada trabajo una pgina en blanco.

     sf es muy til, sin embargo, si usamos la impresora para listar
     directorios, ficheros en crudo ..., asegurndonos que el trabajo
     sale completo de la impresin. Se puede presentar un problema si
     tenemos una impresora PostScript, al quedar residente el ltimo
     tipo de letra utilizado. Con el campo :tr: lo evitaremos. Es
     preferible en estos casos dejar :sh:, y que sean los filtros
     quienes se encarguen de generar las portadillas.

    mx limita el tamao del tampn de datos, sealando una cantidad en
     bloques de 1 K ( 1024 bits ). Si mx=0, el lmite viene dado por el
     espacio disponible en disco. Recuerde que lo que limitamos es el
     tamao del tampn, no la cantidad de datos impresos.

     Si intentamos sobrepasar el lmite, el fichero simplemente se
     trunca, y el usuario recibe el mensaje

       lpr: fichero: copy file is too large".

  mx es til si tiene programas que accidentalmente pueden generar un
  volumen desproporcionado de datos a imprimir (imgenes, por ejemplo);
  para impresoras ps, no suele tener mucho inters, pues un volumen
  pequeo de datos en formato ps pueden generar una notable cantidad de
  papel impreso.

  Podemos sustituir el lmite de mx escribiendo en cada directorio
  tampn un fichero llamado "minfree" que contiene el espacio mnimo
  disponible que permita aceptar trabajos, en forma de fichero texto con
  el nmero de bloques mnimos disponibles. Normalmente, suele ser un
  enlace con el original en /var/spool/lpd, ya que es inusual que cada
  impresora deba tener un mnimo diferente.

  4.6.2.  Probemos /etc/printcap  con un ejemplo

  El siguiente guin de shell es un filtro de entrada muy simple. Slo
  encadena su entrada al final de un fichero en /tmp, tras una pancarta
  adecuada. Usaremos este filtro en el campo if, y enviaremos los datos
  a /dev/null, ahorrndonos las quejas del demonio especificando un
  dispositivo de impresin.

       #!/bin/sh
       # Este filtro debera colocarse en el directorio tampon, con el nombre
       # filtro_entrada, propiedad de root, grupo lp y permisos -rwxr-xr-x
       #
       echo ------------------------------------------------>/tmp/testlp.out
       date >> /tmp/testlp.out
       echo ------------------------------------------------>>/tmp/testlp.out
       cat

  Y aqu tenemos nuestra flamante entrada en /etc/printcap. Vea que el
  formato es razonablemente inteligible, usando caracteres de
  continuacin de lnea "\" al final de cada una, excepto la ltima (de
  hecho, cada entrada en /etc/printcap es una sola lnea):

       impre|PLJ-H1998:\
       :lp=/dev/null:\
       :sd=/var/spool/lpd/PLJ-H1998:\
       :lf=/var/spool/lpd/PLJ-H1998/errores:\
       :if=/var/spool/lpd/PLJ-H1998/filtro_entrada:\
       :mx#0:\
       :sh:\
       :sf:

  Ojo: NO DEJE ESPACIOS EN BLANCO, o no funcionar (le aparecern
  impresoras sin nombre, no lograr volcar los trabajos, y se acumularn
  en cola generosamente)

  4.6.3.  Valor y al toro: juntmoslo todo

    Primero: DEBE SER EL SUPERUSUARIO (root), tanto si le gusta como si
     no.

    Segundo: Compruebe los permisos y situaciones de lpr, lprm, lpc,
     lpq y lpd.

    Tercero: Cree el directorio tampn de su impresora: (recuerde que
     el propietario debe ser root, el grupo lp, y los permisos -rwxrwxr-
     x con las rdenes:

       mkdir /var/spool/lpd /var/spool/lpd/impre
       chown root.lp /var/spool/lpd /var/spool/lpd/impre
       chmod ug=rwx,o=rx /var/spool/lpd /var/spool/lpd/impre

    Cuarto: En el directorio tampn cree los ficheros necesarios, con
     los debidos permisos y propietarios:

       cd /var/spool/lpd/impre
       touch .seq errores status lock
       chown root.lp .seq errs status lock
       chmod ug=rw,o=r .seq errs status lock

    Quinto: Cree el script filtro de entrada en el directorio tampn.
     Use por ahora el filtro de prueba anterior. Asegrese que el
     fichero pertenece a root.lp, y es ejecutable para todos.

    Sexto: Cree el fichero /etc/printcap tal y como lo hemos descrito
     en el punto anterior. Su propietario ser root y sus permisos -rw-
     r--r--.

    Sptimo: Compruebe que rc.local (normalmente en /etc/rc.d/)
     contiene la lnea /sbin/lpd, y adala si no est. Esto hace que
     arranque el demonio de impresin al arrancar. De todos modos puede
     arrancarlo a mano con la orden lpd.

    Octavo: Haga una prueba: cruce los dedos y teclee

       ls -l | lpr -Pimpre

    Noveno: Busque en /tmp un fichero llamado testlp.out.  Debera
     contener un listado del directorio, con un encabezado.

    Dcimo: Si ha funcionado (y no dudamos que habr sido as), edite
     /etc/printcap, y copie la entrada de prueba en el mismo fichero; En
     la primera entrada, cambie el nombre de la impresora a "testlp", o
     el que usted prefiera, pero que no use como nombre real de
     impresora. En la segunda entrada (que ahora ser la de su impresora
     real), cambie el contenido de lp=/dev/null al del puerto de
     impresora (normalmente ser /dev/lp1) de su ordenador, salvo que
     vaya a utilizar una impresora remota, en cuyo caso deber definir
     rm y rp. Cambie el nombre del filtro if si tiene ya uno previsto, o
     suprmalo si no va a utilizar ninguno.

    Once: Reinicie el sistema, o mate el demonio de impresin y
     arrnquelo, ya que lpd slo lee /etc/printcap al comenzar su
     trabajo.
    Doce: Haga una prueba, y aprecie lo bien que funciona su impresora
     (Si tiene problemas con el efecto escalera, siga leyendo).

  Para aadir nuevas impresoras, slo tendr que repetir la entrada de
  printcap, con las modificaciones pertinentes a cada dispositivo.

  4.6.4.  Y de la impresin remota, qu?

  Como primer paso, cualquier mquina que intente imprimir en su
  sistema, debe estar registrada en cualquiera de los ficheros
  /etc/hosts.equiv o /etc/hosts.lpd, que son simples ficheros de texto,
  con un nombre de maquina por lnea. Es preferible el segundo,
  reservando el primero para proporcionar mayores permisos de acceso, lo
  que debera ser evitado en lo posible.

  Puede restringirse el uso tanto por nombre como por grupos.
  Especifique los grupos autorizados con uno o varios campos ":rg:" en
  /etc/printcap - :rg=admin: slo autorizar el acceso a la impresora a
  los usuarios asignados al grupo admin. Puede tambin limitar el acceso
  a aquellos usuarios con cuenta en su sistema utilizando el campo
  lgico :rs:.

  4.6.5.  Socorro: no funciona.

  Algo falla; Lo primero que debemos hacer es revisar la existencia y
  los permisos y propiedad de los ficheros y directorios anteriormente
  descritos. Como comprobar los permisos de UNIX son algo juguetones
  hasta que se les controla. No se azore, y siga la siguiente rutina de
  control.  Recuerde que cualquier modificacin de /etc/printcap acarrea
  matar el demonio de impresin y arrancarlo de nuevo, o (ltimo y
  brutal recurso)  reiniciar el sistema.

  1. ejecute "ls -l > /dev/lp?" (como root)

    La impresora funciona: 2

    La impresora no funciona: Compruebe el puerto de impresin, el
     cable, y que la impresora fsica este encendida y lista.

  2. pruebe con lpr -P<impresora>

    La impresora responde: 7

    La impresora no responde: 3

  3. Aparecen mensajes de error indicando que no se puede escribir
     disco, que el directorio tampn existe y que tiene los permisos
     necesarios.

    no hay mensajes: 4

  4. ejecute

  ps -ax | grep lpd

  y vea si aparece lpd en el listado, o hay un mensaje acerca del demo
  nio de impresin:

    lpd no est arrancado: Vea si rc.local tiene una lnea /sbin/lpd;
     si no, adala y reinicie el sistema. Puede arrancarlo a mano con
     /sbin/lpd como root.

    lpd est funcionando: 5

  5. Compruebe que el filtro de impresin especificado en if funciona.
     (filtro < datos >salida)

    El filtro no funciona: corrjalo, y pruebe de nuevo

    El filtro funciona: 6

  6. Ejecute "lpc status".

    Aparecen ms impresoras que las descritas, algunas con el nombre en
     blanco: Hay espacios en blanco dentro de la entrada de la impresora
     en /etc/printcap. Revise la sintaxis de la entrada.

    slo aparece una impresora que no es lp: Si no ha especificado
     nombre de impresora, lpr usar lp por defecto. Pruebe

       lp -P<impresora>

    La impresora est deseleccionada (down): ejecute

       lpc up <impresora>

  (debe ser superusuario).

  7. La impresora funciona, pero imprime mal:

    Se imprimen las cuatro o cinco primeras lneas, en escalera:
     Necesita un filtro de entrada. Vea ``Efecto Escalera''

    El fichero no se imprime completo: Elimine el lmite en mx con
     :mx#0: en /etc/printcap.

  Si tras este rastreo sus dificultades continan, tenemos un buen
  problema.  Una buena idea para aislar fallos es incluir el demonio
  "syslogd" en el arranque, de modo que obtengamos un registro de las
  incidencias de los procesos arrancados, que puedan ayudar al rastreo.

  Un problema que ha ido apareciendo y desapareciendo de modo recurrente
  en distintas versiones de Linux est asociado a los mensajes "job
  queued, but cannot start daemon" o "lpc: connect: no such file or
  directory", y lpd s est corriendo, parece manifestar un conflicto
  entre los mdulos de red y el resto del sistema, y que se manifiesta
  si la red no est correctamente configurada. Si no est conectado a
  una red, suele corregirse aadiendo en la configuracin de arranque:

       ifconfig lo localhost
       route add localhost

  4.6.6.  Dnde puedo encontrar un printcap  para la impresora xxxxx?

  Si ha ledo todo hasta ahora, comprobar que esta pregunta carece de
  sentido. No se le ocurra preguntar en usenet, si quiere que su
  dignidad se mantenga a salvo, y lase este documento completo.

  4.6.7.  El "efecto escalera", bajo control.

  Mientras que en *DOS el indicador de nueva lnea se compone de los
  caracteres CR y LF (retorno de carro y salto de lnea), UNIX termina
  las lneas con LF. Esto hace que, si en una impresora configurada para
  *DOS imprimimos un documento UNIX, obtendremos una sucesin de lneas,
  que acabarn marchndose inmediatamente por el margen derecho del
  papel.

  Tenemos dos vas para corregirlo: Reconfigurar la impresora para que
  interprete LF como CR+LF, algo molesto si alterna entre *DOS y Linux,
  o aadir un filtro de impresin, que lo haga sobre la marcha.

  Ofrecemos dos: uno general, y el otro especfico para impresoras HP.

       #!/bin/sh
       # filtro general para prevenir el efecto escalera
       if [ "$1" = -c ] ; then
       cat
       else
       sed -e s/$/^M/
       fi
       echo -ne \\f

  #!/bin/sh
  # filtro para corregir el efecto escalera en impresoras HP
  echo -ne \\033\&k2G
  cat
  echo -ne \\f

  El carcter

  ^M

  con vi use C-v C-m, y con emacs, C-q C-m (C es la tecla Control).

  El mejor sitio para guardar estos filtros es el propio directorio
  tampn de la impresora. Recuerde que deben especificarse en
  /etc/printcap en el campo :if=<filtro>:, con permisos -rwxrwxr-x, y
  propiedad root.lp.

  4.6.8.  Imprimir por el puerto serie es fcil.

  Primero hemos de ver si lpd se queja enviando un error acerca de
  ioctl(TIOEXCL). Si es as, deberamos conseguir una versin de lpd que
  lo acepte (lpd-590p2, por ejemplo).

  Necesitaremos configurar dos grupos de campos, adems de la velocidad
  de transferencia br (Observacin: Configurar el campo ":fc:" puede
  puentear el valor del campo ":br#:", as que asegrese de configurar
  los dos correctamente).

  Cada campo puede tener bits activados y desactivados. Se debe empezar
  desactivndolos con los campos ":fc#*:" y ":xc#*:", para activarlos
  posteriormente con ":fs#*:" y ":xs#*:".

  Configurar br#; es obvio: ":br#9600:

  Es muy fcil traducir la configuracin de stty a los campos de
  /etc/printcap. Consulte la pgina de manual de stty para obtener ms
  informacin.

  Utilice stty para configurar el puerto de su impresora de manera que
  con "cat" pueda enviarle un fichero, e imprimirlo sin problemas. Aqu
  tiene un ejemplo de la configuracin del puerto serie de la impresora:

       # darkstar:/var/spool/lpd # stty -a < /dev/ttyS2
       speed 9600 baud; rows 0; columns 0; line = 0;
       intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
       eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
       lnext = ^V; min = 1; time = 0;
       -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
       -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr
       -igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
       -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
       -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
       -echoprt -echoctl -echoke

  Deber estudiar el control de flujo de su impresora serie, y aplicar
  las correcciones necesarias a la configuracin del puerto al que est
  conectado el equipo.

  Una vez tengamos la configuracin ajustada, de modo que con la orden

       cat fichero > /dev/ttyS?

  la impresora escriba correctamente, consultaremos el fichero
  /usr/src/linux/include/linux/termios.h ( no ser mala idea imprimirlo;
  as sabremos si funciona :-).

  En la seccin que empieza con

       /* c_cflag bit meaning */
       #define CBAUD 0000017

  est detallado el valor de los bits de "fc#" y "fs#".  Apreciar que
  los nombres que aparecen aqu (tras las velocidades de transmisin)
  coinciden con una de las lneas del listado producido por stty. Ve
  qu fcil?

  Estos campos, en stty, van precedidos por un guin (-). Sume los
  valores (en octal) que aparecen en el listado. Este valor representa
  los bits a LIMPIAR; es el valor del campo :fc#*:. Note que, como
  deber activar posteriormente los bit necesarios, podra usar
  directamente ":fc#0177777:".

  Ahora repita el mismo proceso para las opciones sin guin en la salida
  de stty. En el ejemplo, los bits importantes son CS8 (0000060), HUPCL
  (0002000) y CREAD (0000200). Considere tambin los indicadores para la
  velocidad de transmisin (en mi caso 0000015).  Smelos; en este caso,
  tendremos 0002275: el valor del campo :fs#*: (En mi caso, ":fs#02275:"
  funciona).

  Haremos lo mismo con la siguiente seccin de termios.h, que comienza
  con "c_lflag bits". En mi caso, no he necesitado ningn ajuste, y
  utilizo ":xc#0157777: y ":xs#0:".

  Una vez modificado printcap, intente imprimir con lpr. Si no funciona,
  siga leyendo.

  4.6.9.  cat  funciona, pero lpd  no.

  Mantener "lpd" en forma se explica en la pgina adecuada del manual,
  pero si le persiguen los problemas de configuracin, puede evitar que
  lpd establezca la configuracin del puerto, haciendo que su impresora
  no presente un dispositivo normal (vea la seccin ``'').

  El proceso a seguir es el siguiente:

  1. el campo :lp: de /etc/printcap deber apuntar a /dev/null1 (crelo
     con mknod /dev/null1 c 1 3), porque no queremos a /dev/null slo
     para nosotros. Elimine los campos :br: y :fs:, :fc:, :xs: y :xc:.

  2. Cree un script, por ejemplo, testserie, tal que este:

       #!/bin/sh
       echo if: $* >> /var/spool/lpd/resultados
       # /dev/lp debe estar enlazado (con ln -s) a /dev/ttyS?, donde esta la
       # impresora
       exec su-filtro-de-entrada-viejo $* > /dev/lp

  o si no tiene un :if: instalado

       #!/bin/sh
       echo if: $* >> /var/spool/lpd/resultados
       # asumimos que /bin/sh es bash al usar "echo -ne"
       echo -ne \\f > /dev/lp

  3. Asegrese que es ejecutable y legible para todos (rwxrwxr-x).
     Pruebe el filtro con

       # testserie < algo-que-imprimir

  y vea si sale algo por la impresora. Modifique /etc/printcap, para que
  if sea "testserie" (o el nombre que le haya dado).

  4. Con stty, configure el puerto de la impresora. Intente imprimir.
     Ahora podr saber si hay datos en el tampn, y algo debera
     imprimirse si el paso 3 funcion.

  Ahora, si el proceso con if funciona, y cree que la configuracin del
  printcap original es la correcta, vuelva a revisar la configuracin
  del puerto, las etiquetas de termios.h ... Si an no funciona,
  probablemente lpd tiene un defecto, y deba obtener una versin nueva.

  4.6.10.  Impresoras que no son dispositivos simples.

  Piense en una impresora conectada de algn modo tortuoso a nuestra red
  ...  ---agrrese: est enchufada a un ordenador con el que slo
  podemos comunicarnos mediante correo electrnico---

  Para imprimir a travs de lpr, el campo :lp: debera ser redirigido a
  un dispositivo nulo,

  mknod /dev/null1 c 1 3

  (no a /dev/null, pues lpd lo usa en exclusiva). El filtro de entrada (
  :if:, recuerde) debe explcitamente codificar y enviar como correo al
  ordenador remoto su salida.

  Se rumorea que alguien consigui con algo similar con Novell NetWare y
  el agente de correo Charon; tambin hay quien cree en los Reyes Magos.

  4.7.  Trucos y problemas

  4.7.1.  lpr -i  o como modificar la impresin a nuestro antojo.

  La opcin -i enva argumentos al filtro de impresin. Ante todo,
  necesitamos un filtro instalado en printcap para que la opcin filtro.
  Si quisiera un filtro que permitiera configurar su impresora sobre la
  marcha, podramos utilizar un filtro como este:

       #!/bin/sh
       # Mi programa de configuracion se llama confimpre.
       exec /usr/lib/confimpre $*

  que desplace el margen izquierdo, y pasar como argumento el margen
  deseado.

       #!/usr/bin/perl
       # confimpre: Desplaza el margen izquierdo en un texto ascii
       # Usamos perl porque convertir numeros a caracteres
       # es un campo de minas en programacion shell
       for  ( $i=0 ; !($_ = $ARGV[$i]) || !/^-i([0-9])+/;
       $i++) {}
       print pack( "cAc" , 27 , "l" , $1) ;
       while (<STDIN>) { print; }

  4.7.2.  daemons "

  Un proceso lpd corre continuamente, y se desdobla en hijos para
  manipular cada impresora en tanto se necesita. La salud del proceso
  principal no se manifiesta explcitamente con 'lpc'; basta con la
  ausencia de errores. El comando 'lpc stat' mostrar de manera normal
  el mensaje "no daemon present" para cada cola actualmente inactiva.
  Si la impresin se desactiva, o la cola se vaca, 'lpq' es bastante
  ms escandaloso, gritando "Warning: no daemon present", aunque, de
  hecho, no hay condicin de error.  Si el demonio est ausente cuando
  hay entradas en la cola, y no ha sido explcitamente detenido,
  probablemente se debe a un fallo en algn filtro. Fjelo y reinicie
  con "lpc up <cola>.
  De vez en cuando, al desactivar una impresora, 'lpc' alucina, e
  intenta matar demonios inexistentes, emitiendo un surtido de
  irritantes e inofensivos mensajes de error. Esta "caracterstica" es
  muy rara en versiones posteriores a lpd-590p2.

  4.7.3.  Impresin sobre red (notas adicionales)

  Dado que la mquina que alberga la impresora fsica debe saber quien
  se conecta, deberemos dar de alta al resto de los ordenadores en los
  ficheros /etc/hosts.equiv y /etc/hosts.lpd, con sus nombres cannicos,
  o direcciones IP. Si no est seguro del nombre completo de una
  mquina, puede incluir todos sus alias conocidos.

  Por motivos de seguridad, es preferible que las mquinas que slo
  deban tener acceso a la impresora queden restringidas a
  /etc/hosts.lpd.

  Si el servidor de impresin no ejecuta un sistema de impresin tipo
  BSD ( UnixWare, HP-UX versin 10 ,...), debera ser posible trabajar
  con l, teniendo en cuenta que los ficheros de autorizacin pueden
  variar notablemente, cambiando en cada sistema.

  Si an no puede imprimir sobre un sistema distinto, queda un as en la
  manga: simplemente use una orden remota, tal que rsh, rexec ...

       # rsh rabano.huerta.net "lp -dlp" < fichero

  permitir imprimir sobre un SYSV, desde nuestra pera.huerta.net.

  4.8.  Los filtros de impresin

  Los filtros en UNIX, son meramente programas (y como tales deben tener
  permisos de ejecucin) que leen la entrada estndar y escriben sobre
  la salida estndar, independientemente de su complejidad.

  Los filtros de lpd lo son en el sentido que leen STDIN y escriben en
  STDOUT; su peculiaridad estriba en que deben asumir que la entrada
  estndar es un fichero de acceso aleatorio, sobre el que se pueden
  realizar operaciones con lseek().

  Un filtro que interpreta PostScript nos servir de ejemplo:

       #!/bin/sh
       /usr/bin/gs -q -dSAFER -dNOPAUSE -r?? -sDevice=? -sOutputFile=- - < /dev/null

  La primera lnea invoca al intrprete de comandos que lo interpretar.
  Podemos usar csh, bash, perl, tcl, etc...; va por gustos.

  En la segunda lnea usamos gs como filtro, indicando que la entrada es
  STDIN ( el guin del final ), y la salida, STDOUT (-sOutputFile=-).
  Lea la pgina de manual de 'gs' para ms detalles.

  Es buena prctica guardar los filtros de entrada en el directorio
  tampn de la impresora en la que se usan (o en /var/spool/lpd/ ),
  aunque las buenas maneras recomienden camas separadas para datos y
  programas.

  Ms difcil an:

       #!/bin/sh
       /usr/tex/bin/dvips -f | /usr/bin/gs [...] -sOutputFile=- -

  Como se puede ver, este filtro procesar un fichero texto de formato
  TEX o LATEX, obteniendo un fichero .dvi, que es transformado en
  PostScript, y reprocesado con ghostscript para imprimirlo en una
  impresora normal.

  Ojo: Si usa impresin remota con lpr, el filtro deber encontrarse en
  la mquina remota; LPRng obvia este inconveniente.

  4.8.1.  Los filtros de salida

  Son como el goto en 'C', se pueden usar, pero realmente, es difcil
  encontrar aplicaciones para ellos. Dado que cualquier comando de
  iniciacin de la impresora es ignorado, si tenemos un trabajo rodando
  que cambia algo (el tipo de letra, por ejemplo), el nuevo trabajo
  probablemente acabar mal impreso. No los use.

  4.8.2.  Depuracin de filtros

  Es absolutamente trivial:  mifiltro <fichero >/dev/lp1 (como root).
  Comprobaremos de inmediato si de verdad funciona.

  Un truco muy til para los filtros con argumentos en lnea de comandos
  consiste en incluir la lnea

       echo $* >> /tmp/filter-log

  cerca del principio del guin. Recuerde incluir en la primera lnea
  que son ejecutables por todo el mundo.

  4.8.3.  Filtros Mgicos

  Tienen de especial estos programas que son capaces de identificar la
  familia de los datos a imprimir a partir de patrones caractersticos
  de datos en situaciones determinadas. Son generalmente guiones Shell,
  Perl, programas en C ...; el programa identifica la fuente de datos, y
  llama a un filtro ordinario que lo procesa de modo adecuado. Con un
  filtro mgico adecuado y tres filtros no mgicos podemos imprimir
  cosas como esta:

       # lpr -d fich1.dvi fich2.dvi.Z fich3.ps fich4.tex.gz

  Un buen sitio para encontrar filtros mgicos como el del ejemplo
  anterior es:

  ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/magic-filter-??.tar.gz.

  Como podr suponer, nunca se deberan usar como filtros de salida.

  Un ejemplo: el siguiente filtro mgico identifica un fichero fuente ps
  o texto, y lo procesa de acuerdo a su clase:

       #!/bin/sh
       printf "<Filtro magico para imprimir texto y ps.>"
       read first_line
       first_two_chars=`expr $first_line : '\(..\)'`
       if [ "$first_two_chars" = "%!" ] ; then # Documento PostScript.
       /usr/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=??? -sOutputFile=- - < /dev/null
       else
       # Texto llano - Si hace falta, podemos incluir aqui la
       # correccion del efecto escalera
       echo -n $first_line
       cat
       printf "\014"
       fi

  Para desazn de muchos, habr ya notado que un script ejecutado por
  alguien distinto al propietario puede ser una brecha de seguridad.
  Este no es el caso de los filtros de lpd, ya que el entorno de los
  guiones no est al alcance de potenciales piratas.

  4.8.4.  Los usuarios de HP estamos de suerte

  Hasta donde hemos podido averiguar, HP no tiene ningn programa que
  permita configurar sobre la marcha sus impresoras ( ni siquiera para
  sus propios sistemas UNIX!!), salvo que use MS-Windows, o *DOS; por lo
  que slo nos queda, bien usar DOSEMU, o salir a DOS, configurar la
  impresora, y volver a Linux.

  Existe un hermoso programa llamado hpmodeset (-- Nota del Traductor:
  hpset, localizable en cualquier mirror de Sunsite, en , escrito en
  Eiffel, que hace el trabajo por nosotros, muy fcil de usar. Su autor
  es Glenn Maughan (glennm@insect.sd.monash.edu.au); se puede conseguir
  en ftp://hornet.sd.monash.edu.au/pub/hpmodeset/v2.0.

  Permite fijar economode, definicin, tipo de papel, etc... en ficheros
  PCL (el lenguaje de las impresoras HP) y ps. No es tan espectacular
  como el programa de windows, pero funciona muy bien, y es susceptible
  de ser utilizado como filtro de impresin.

  5.  CMO SE IMPRIME ... ?

  Ya sabemos con qu imprimimos bajo Linux. Ahora haremos una visita a
  los programas ms normales para generar el texto a imprimir usualmente
  disponibles. Advierta que la mayor parte de los programas de impresin
  bajo otros UNIX pueden ser muy fcilmente adaptados a Linux.

  5.1.  Texto Llano

  Bajo Linux, (como cualquier otro U*X), lo ms fcil es imprimir texto
  llano. Cualquier editor estndar de UNIX (vi, emacs), o alguno ms
  sofisticado (nedit, jed, .. ) le producirn tantas arrobas de letras
  como desee.

  Adems, la mayor parte de los programas que a continuacin se
  describen son capaces de generar documentos en texto llano, con las
  rdenes adecuadas.

  5.1.1.  pr

  La mayora de los ficheros de texto llano en U*X tienen tendencia a
  ser un mar de caracteres, sin saltos de pgina ni nada que permita un
  documento mnimamente presentable.

  pr surgi para obviar este inconveniente. Procesando el documento a
  travs de pr, se le aaden cabeceras y/o pies, nmeros de pgina,
  mrgenes superior e inferior... Como cualquier otra utilidad UNIX, pr
  tiene dos o tres millones de opciones, debidamente reseadas en la
  pgina del manual.

  5.2.  PostScript

  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, situacin 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.

  5.2.1.  Ghostscript

  El modo normal de interpretar ps bajo Linux es usar ghostscript, que ,
  como casi todas la utilidades, procede del proyecto GNU. Herramienta
  verstil 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
  versin de ghostscript estn debidamente relacionados en la
  documentacin del programa; puede obtenerse una relacin con la orden
  'gs -help'.

  gs se ha convertido en utilidad estndar en la mayora 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 distribucin "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 instalacin mnima de los binarios de gs y algunos otros programas
  necesarios para imprimir la documentacin de Linux est disponible en

  ftp://sunsite.unc.edu/pub/Linux/apps/tex/texmin/texmin-*.tar.z

  Esta distribucin no contiene ningn tipo de letra PostScript (ni las
  necesitar para imprimir ficheros .dvi).

  La documentacin 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 versin, ms dispositivos soportados. En
  la documentacin incorporada se describe el procedimiento para
  desarrollar nuevos dispositivos si fuera necesario.

  gs puede imprimir en la mayora 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
  opcin, al no soportar normalmente la resolucin por defecto de
  300x300.

  5.3.  Mi impresora slo trabaja con PostScript

  Si su impresora slo 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.

  5.3.1.  mpage

  Transforma texto llano a PostScript y/o imprime ms de una pgina 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 pgina en formato PostScript a lpr.

  5.3.2.  a2ps, enscript, nenscript

  A partir de un texto ascii llano, a2ps produce una pgina debidamente
  formateada, con cabeceras, pies, nmeros de pgina ... 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* (-- Nota
  del Traductor:
  los caracteres extendidos; por ejemplo: a2ps (la versin que tengo, al
  menos) genera un fichero ps que no tiene acentos, ees .., al no
  definir una tabla tipogrfica para ellos. En cambio, nenscript si lo
  hace. --)

  5.3.3.  gslp

  Incluida en la distribucin 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 programacin, ms que un conjunto de
  rdenes de impresin). Hay un ejecutable en la distribucin que evita
  dar estos rodeos.

  5.3.4.  Utilidades para PostScript

  Existen cientos de pequeos 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

  5.4.  TeX, LaTeX

  Si hay algo cierto en el mundo de UNIX, especialmente a nivel
  acadmico, es que antes o despus uno se acaba topando con l. TeX es
  un sistema de formateado de textos (-- Nota del revisor:
  Procesador de Documentos--) . Funciona de modo anlogo a un
  compilador: El cdigo fuente corre a travs del programa tex, y
  obtenemos un fichero .dvi, independiente del dispositivo, que
  normalmente debe ser procesado de nuevo para obtener un documento
  impreso. La altsima 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 edicin, que analiza en detalle
  la versin ms popular de este extraordinario sistema de tratamiento
  de textos.

  5.4.1.  dvips

  Convierte el fichero dvi generado a partir de un documento TeX en un
  fichero PostScript, que puede imprimir a travs de gs, o directamente
  en la mquina adecuada. La mayora de las distribuciones de Linux
  incluyen este paquete.

  La orden

       dvips -f1 fich.dvi | lpr

  es tpica. dvips responde tanto a los argumentos de la lnea de
  comandos como al fichero de configuracin "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 apreciarn esta caracterstica.

  5.4.2.  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

  5.5.  texinfo

  Es el formato nativo del proyecto GNU. emacs puede ser forzado a
  producir un fichero de informacin 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 un
  fichero dvi que podr imprimir o visualizar a su placer.

  Con emacs puede teclear adems '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 eleccin.

  Hay otros programas que leen y formatean info desde un fichero
  texinfo.  Estn disponibles en ftp://prep.ai.mit.edu/pub/gnu/

  5.6.  *roff ; pginas man

  Si hay un generador de documentos virtualmente universal es troff, y
  sus primos cercanos, debido a que las pginas de manual se escriben
  para ellos. Las rdenes de formato de documentos sern
  sorprendentemente?  familiares para los (no se si an queda alguno
  vivo) forofos de las versiones ms populares de Wordstar.

  La orden para imprimir las pginas de manual es

       man -t <comando> | lpr

  groff traduce la pgina a PostScript, que se procesa sin mayores
  problemas, como ya sabemos. Obtendremos as una pgina impresa muy
  aparente. Esto, sin embargo, depende mucho del programa 'man' que
  viene con su sistema. Si el suyo no lo permite, consiga la versin
  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
  pgina en los directorios de man, e imprimirlo con la orden:

       groff -fichman -Ttipo orden.1 | lpr

  donde tipo puede ser 'ascii', 'dvi' 'ps' 'X100',

  5.7.  Adobe Acrobat. Ficheros PDF

  Estndar emergente donde los haya, los paps de PostScript han
  desarrollado un formato de documentacin 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
  versin est en

  http://www.contrib.andrew.cmu.edu/usr/dn0o/xpdf/xpdf.html

  5.8.  Tipos

  (Esta seccin contiene informacin no especfica a los dispositivos).
  La informacin pertinente al dispositivo X11 de gs (y ghostview) se
  incluye en el apartado de visualizacin.
  Todas las versiones de gs vienen provistas de un surtido de tipos de
  dominio pblico, 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. Sitelos (normalmente *.pc?)
  en lib/ghostscript/fonts/, y aada al fichero
  [...]/ghostscript/Fontmap' lneas del estilo

       /Courier            (com_______.pfb) ;

  En el servidor de correo de impresin 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
  informacin til acerca de tipos de impresin.

  La conversin entre familias de tipos es delicada. gs incluye
  herramientas para generar tipos escalables a partir de mapas de bits
  (cuanto ms grandes, mejor).

  groff tiene tambin 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 pginas
  de manual. Eche un ojo tambin al logical fontutils en
  ftp://prep.ai.mit.edu/pub/gnu/.

  5.9.  Documentos para fax.

  Aunque no parezca el lugar ms adecuado para su resea, qu hacemos
  al enviar un fax ms 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-mdem. Todos
  los programas mencionados contienen utilidades que permiten
  transformar las distintas clases de documentos al formato necesario.
  Adems, gs (tambin 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 gestin de transmisin de datos debe hacerla el
  ordenador anfitrin va el programa de fax. Esto hace que en
  condiciones de sincronizacin crtica, el control se vuelve casi
  imposible. Los fax de clase 2 son ms caros, pero mucho menos
  propensos a dar guerra. No confunda la 'clase' y el 'grupo'. Deber
  tener, por supuesto, un fax-mdem de grupo III.

  5.9.1.  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, segn el tipo
  de llamada, si activar el fax, o presentar un login. Permite la
  emisin de faxes a travs de una red, y tiene un zurilln de
  utilidades. Se configura va 'configure', y para un ordenador aislado
  es un tanto mastodntico. La versin actual (4.0 beta 018, segn
  escribo ) puede encontrarse en:  http://www.vix.com/hylafax/

  5.9.2.  mgetty+sendfax

  mgetty+sendfax controla slo fax de clase 2, y puede tambin actuar
  como contestador automtico, si el mdem 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/

  5.9.3.  EFAX

  Controla fax de clase 1 y 2; no discrimina entre una conexin 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*

  6.  Visualizacin

  Hubo un tiempo en que a alguien se le ocurri el concepto de la
  "oficina sin papeles"; no hara falta manejar papel impreso durante el
  trnsito de documentos. Qu falta de vista. Cmo podramos si no
  fardar de impresora ?. Nos ha quedado de todo aquello una serie de
  programas que nos facilitan ver el resultado final de un trabajo sin
  su materializacin.

  6.1.  Con X-Window instalado

  6.1.1.  ghostview

  El complemento ideal de 'gs', visualiza documentos PostScript en un
  sistema X Window. Permite elegir pginas individuales, o grupos de
  ellas para su posterior impresin. La distribucin oficial est en

  ftp://prep.ai.mit.edu/pub/gnu/ghostview-*.tar.gz

  Fcil de construir, ghostview necesita gs para ser ejecutado.  Las
  ltimas versiones utilizan las fuentes estndar de X Window,
  facilitando la legibilidad en las condiciones de baja resolucin de
  los monitores. La verdad es que funciona muy bien; de hecho, muchos
  piensan que mejor que el paquete pageview de Sun. Si lo desea, puede
  utilizar fuentes distintas a las del sistema ( por ejemplo, Type 1 ),
  simplemente situando la orden

       ghostscript.useExternalFonts:false

  en su fichero .Xdefaults.

  Puede obtenerse ms informacin de la documentacin que acompaa al
  programa, y en la correspondiente pgina de manual.

  6.1.2.  gspreview

  Tenemos aqu otro interfaz para ghostscript. Ms sencillo que
  ghostview, carece del milln de opciones de ste, pero trabaja
  razonablemente bien.  Puede encontrarlo en

  ftp.x.org/contrib/gspreview*

  6.1.3.  xdvi y xtex

  El equivalente para documentos .dvi de ghostview, tiene una curiosa y
  til "lupa" incorporada. Extremadamente legible, viene incluido con la
  mayora de las distribuciones de TeX. Para ver un fichero basta con

  ftp://ftp.x.org/contrib.

  xtex tiene La misma utilidad que xdvi. Disponible en
  ftp://ftp.x.org/contrib/xtex-*.tar.z

  6.2.  Y si no tengo instalado X Window ?

  Instalar X puede ser una mala opcin si su equipo no dispone de
  memoria suficiente ( 8 Mb recomendados para ello ). No se preocupe,
  tambin hay solucin.

  6.2.1.  Ghostscript, de nuevo

  Ghostscript incluye en su distribucin dispositivos para control del
  soporte fsico de los PC; no es una buena solucin para UN*X; Las
  ltimas distribuciones, sin embargo, incluyen soporte para libreras
  VGA de Linux (svgalib). El dispositivo pertinente se llama 'Linux'; la
  orden

       gs -sDEVICE=linux fichero.ps

  mostrar el documento en pantalla. La variable de entorno GSVGAMODE,
  muy importante, fija el modo de vdeo deseado, segn los valores que
  aparecen en el fichero de vgalib vga.h.

  Si no lo tiene en su distribucin, puede obtener el parche en el
  servidor de correo de impresin, o en

  ftp://ws105.zfn.uni-bremen.de/pub/gs261-linuxdriver.sh

  ftp://ws105.zfn.uni-bremen.de/pub/gs261-svgalib.tar.gz

  ftp://ftp.cdrom.com/pub/linux/misc

  y por supuesto, en ftp://sunsite.unc.edu.

  (Pruebe mejor en los diversos duplicados de este lugar. Sunsite est
  normalmente saturado (-- Para los residentes en Espaa,
  ftp://sunsite.rediris.es es un mirror inmejorable.--) ).

  6.2.2.  dvgt

  Permite la visualizacin de ficheros .dvi bajo la librera svgalib, o
  en diferentes clases de terminales grficas, incluyendo vt, tek, o un
  PC corriendo MS-Kermit. Disponible en sunsite.

  7.  Copyright

  Salvo otra disposicin, los documentos COMO de Linux estn registrados
  por sus autores respectivos. Los documentos COMO de Linux pueden ser
  reproducidos y distribuidos en todo o en parte, en cualquier medio
  fsico o electrnico. Las traducciones y similares estn permitidos
  sin necesidad de permiso expreso.

  La redistribucin comercial est permitida y recomendada; sin embargo
  a los autores les gustara tener conocimiento de tales distribuciones.

  Resumiendo: Nos gustara promover la distribucin de esta informacin
  a travs del mayor nmero de canales posible. Sin embargo, nos
  gustara retener los derechos de autor de los documentos COMO, y ser
  informados de cualquier plan para su redistribucin.

  Si tiene dudas, contacte con Greg Hankins (-- En cuanto a coordinacin
  de traducciones al castellano, ver seccin ``''--) el coordinador de
  los COMO de Linux, en greg.hankins@cc.gatech.edu .

  8.  Anexo: El INSFLUG

  El INSFLUG forma parte del grupo internacional Linux Documentation
  Project, encargndose de las traducciones al castellano de los Howtos
  (Comos), as como la produccin de documentos originales en aquellos
  casos en los que no existe anlogo en ingls.

  En el INSFLUG se orienta preferentemente a la traduccin de documentos
  breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
  :) ), etc.

  Dirjase a la sede del INSFLUG para ms informacin al respecto.

  En la sede del INSFLUG encontrar siempre las ltimas versiones de las
  traducciones:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

  Francisco Jos Montilla, pacopepe@insflug.org.

