.. _41: 41 Impresión de Copias en Papel =============================== Emacs proporciona comandos para imprimir copias en papel de un búfer entero o de parte de él. Puede invocar los comandos de impresión directamente, como se detalla a continuación, o utilizando el menú ``File`` (Archivo) de la barra de menús. Aparte de los comandos descritos en esta sección, también puede imprimir copias en papel desde Dired (véase :ref:`31.7`) y la agenda (véase :ref:`32.10.2`). Tambien puede "imprimir" un búfer Emacs a HTML con el comando ``M-x htmlfontify-buffer``, que convierte el búfer actual a un fichero HTML, reemplazando las caras Emacs por marcas basadas en CSS. Además, Org mode permite imprimir archivos Org a una variedad de formatos, como PDF (ver :ref:`26.10`). :kbd:`Alt`-:kbd:`x` ``print-buffer`` (``M-x print-buffer``) Imprime una copia en papel del búfer actual con encabezados de página que contienen el nombre del archivo y el número de página. :kbd:`Alt`-:kbd:`x` ``lpr-buffer`` (``M-x lpr-buffer``) Imprime una copia en papel del búfer actual sin encabezados de página. :kbd:`Alt`-:kbd:`x` ``print-region`` (``M-x print-region``) Como ``print-buffer`` pero imprime sólo la región actual. :kbd:`Alt`-:kbd:`x` ``lpr-region`` (``M-x lpr-region``) Como ``lpr-buffer`` pero imprimer sólo la región actual. En la mayoría de los sistemas operativos, los comandos de impresión anteriores envían los archivos para su impresión llamando al programa ``lpr``. Para cambiar el programa de impresión, personalice la variable ``lpr-command``. Para especificar opciones adicionales para el programa de impresión, personalice la variable de lista ``lpr-switches``. Su valor debe ser una lista de cadenas de opciones, cada una de las cuales debe empezar por ``-`` (por ejemplo, la cadena de opciones ``"-w80"`` especifica un ancho de línea de 80 columnas). El valor por defecto es la lista vacía, ``nil``. Para especificar la impresora a utilizar, establezca la variable ``print-namer`` (nombre-impresora). El valor por defecto, ``nil``, especifica la impresora por defecto. Si la establece con un nombre de impresora (una cadena), ese nombre se pasa a ``lpr`` con el modificador ``-P``; si no está usando ``lpr``, debe especificar el modificador con ``lpr-printer-switch``. La variable ``lpr-headers-switches`` especifica de manera similar los switches extra a usar para hacer los encabezados de página. La variable ``lpr-add-switches`` controla si se suministran las opciones ``-T`` y ``-J`` (adecuadas para ``lpr``) al programa de impresión: ``nil`` significa no añadirlas (este debería ser el valor si su programa de impresión no es compatible con ``lpr``). 41.1 Impresión PostScript ------------------------- Estos comandos convierten el contenido del búfer a PostScript, imprimiéndolo o dejándolo en otro búfer de Emacs. :kbd:`Alt`-:kbd:`x` ``ps-print-buffer`` (``M-x ps-print-buffer``) Imprime una copia en papel del búfer actual en formato PostScript. :kbd:`Alt`-:kbd:`x` ``ps-print-region`` (``M-x ps-print-region``) Imprime una copia en papel de la región actual en formato PostScript. :kbd:`Alt`-:kbd:`x` ``ps-print-buffer-with-faces`` (``M-x ps-print-buffer-with-faces``) Imprime una copia en papel del búfer actual en formato PostrScript, mostrando las caras usadas en el texto mediante funciones PostScript. :kbd:`Alt`-:kbd:`x` ``ps-print-region-with-faces`` (``M-x ps-print-region-with-faces``) Imprime en formato PostScript una copia en papel de la región actual mostrando las caras usadas en el texto. :kbd:`Alt`-:kbd:`x` ``ps-spool-buffer`` (``M-x ps-spool-buffer``) Genera y envía a la impresora una imagen PostScript del texto del búfer actual. :kbd:`Alt`-:kbd:`x` ``ps-spool-region`` (``M-x ps-spool-region``) Genera y envía a la impresora una imagen PostScript de la región actual. :kbd:`Alt`-:kbd:`x` ``ps-spool-buffer-with-faces`` (``M-x ps-spool-buffer-with-faces``) Genera y envía a la impresora una imagen PostScript del búfer actual mostrando las caras usadas. :kbd:`Alt`-:kbd:`x` ``ps-spool-region-with-faces`` (``M-x ps-spool-region-with-faces``) Genera y envía a la impresora una imagen PostScript de la región actual mostrando las caras usadas. :kbd:`Alt`-:kbd:`x` ``ps-despool`` (``M-x ps-despool``) Envía a la impresora la cola de impresión de PostScript. :kbd:`Alt`-:kbd:`x` ``handwrite`` (``M-x handwrite``) Genera/imprime en formato PostScritp del búfer actual como si estuviera escrito a mano. Los comandos ``ps-print-buffer`` y ``ps-print-region`` imprimen el contenido del buffer en formato PostScript. Un comando imprime todo el búfer; el otro, sólo la región. Los comandos ``ps-print-buffer-with-faces`` y ``ps-print-region-with-faces`` se comportan de forma similar, pero utilizan características PostScript para mostrar las caras (fuentes y colores) del texto del buffer. Interactivamente, cuando se utiliza un argumento prefijo (``C-u``), estos comandos piden al Usuario un nombre de archivo, y guardan la imagen PostScript en ese archivo en lugar de enviarla a la impresora. Los comandos cuyos nombres tienen ``spool`` en lugar de ``print``, generan la salida PostScript en un buffer de Emacs en lugar de enviarla a la impresora. Utilice el comando ``ps-despool`` para enviar las imágenes en spool a la impresora. Este comando envía el PostScript generado por los comandos ``-spool-`` (ver comandos anteriores) a la impresora. Con un argumento prefijo (``C-u``), pide un nombre de archivo y guarda la imagen PostScript en ese archivo en lugar de enviarla a la impresora. ``M-x handwrite`` es más informal. Genera una representación PostScript del búfer actual como un documento manuscrito en cursiva. Se puede personalizar en escritura a mano en grupo. Esta función sólo admite caracteres ISO 8859-1. 41.2 Variables para PostScript Hardcopy --------------------------------------- Todas las órdenes de copia impresa PostScript utilizan las variables ``ps-lpr-command`` y ``ps-lpr-switches`` para especificar cómo imprimir la salida. ``ps-lpr-command`` especifica el nombre de la orden a ejecutar, ``ps-lpr-switches`` especifica las opciones de línea de órdenes a utilizar, y ``ps-printer-name`` especifica la impresora. Si no establece las dos primeras variables, éstas tomarán sus valores iniciales de ``lpr-command`` y ``lpr-switches``. Si ``ps-printer-name`` es ``nil``, se utiliza ``printer-name``. La variable ``ps-print-header`` controla si estos comandos añaden líneas de cabecera a cada página, ajústela a ``nil`` para desactivar las cabeceras. Si su impresora no soporta colores, debería desactivar el procesado de color estableciendo ``ps-print-color-p`` a ``nil``. Por defecto, si la pantalla soporta colores, Emacs produce una copia impresa con información en color; en impresoras en blanco y negro, los colores se emulan con tonos de gray (gris). Esto puede producir una salida apenas legible o incluso ilegible, incluso si los colores de su pantalla sólo utilizan tonos de gris. Alternativamente, puede configurar ``ps-print-color-p`` a ``black-white`` (blanco-negro) para que los colores se muestren mejor en impresoras blanco-negro. Esto funciona utilizando la información en ``ps-black-white-faces`` para expresar los colores mediante una lista personalizable de tonos de gris, aumentada por atributos de **bold** (**negrita**) e *italic* (*cursiva*). Por defecto, la impresión PostScript ignora los colores de fondo de las caras, a menos que la variable ``ps-use-face-background`` sea distinta de cero. Esto es para evitar interferencias no deseadas con las rayas de cebra y la imagen/texto de fondo. La variable ``ps-paper-type`` especifica para qué tamaño de papel formatear; los valores permitidos incluyen ``a4``, ``a3``, ``a4small``, ``b4``, ``b5``, ``executive``, ``ledger``, ``legal``, ``letter``, ``letter-small``, ``statement``, ``tabloid``. El valor por defecto es ``letter``. Puede definir tamaños de papel adicionales cambiando la variable ``ps-page-dimensions-database``. La variable ``ps-landscape-mode`` especifica la orientación de la impresión en la página. El valor por defecto es ``nil``, que significa modo vertical. Cualquier valor distinto de ``nil`` especifica el modo horizontal. La variable ``ps-number-of-columns`` especifica el número de columnas; tiene efecto tanto en modo horizontal como vertical. El valor por defecto es 1. La variable ``ps-font-family`` especifica la familia de fuentes a utilizar para la impresión de texto ordinario. Los valores legítimos incluyen ``Courier``, ``Helvetica``, ``NewCenturySchlbk``, ``Palatino`` y ``Times``. La variable ``ps-font-size`` especifica el tamaño de la fuente para el texto ordinario y por defecto es de 8,5 puntos. El valor de ``ps-font-size`` también puede ser una cons de 2 floats: uno para el modo horizontal, el otro para el modo vertical. Emacs soporta más scripts y caracteres que una impresora PostScript típica. Por lo tanto, algunos de los caracteres de su búfer podrían no ser imprimibles usando las fuentes incorporadas en su impresora. Puede aumentar las fuentes suministradas con la impresora con las del paquete GNU Intlfonts, o puede indicar a Emacs que use Intlfonts exclusivamente. La variable ``ps-multibyte-buffer`` controla esto: el valor por defecto, ``nil``, es apropiado para imprimir caracteres ASCII y Latin-1; un valor de ``non-latin-printer`` es para impresoras que tienen las fuentes para caracteres ASCII, Latin-1, Japonés y Coreano incorporadas. El valor ``bdf-font`` permite utilizar las fuentes BDF del paquete Intlfonts para todos los caracteres. Por último, un valor de ``bdf-font-except-latin`` indica a la impresora que utilice las fuentes incorporadas para los caracteres ASCII y Latin-1, y las fuentes BDF de Intlfonts para el resto. Para poder utilizar las fuentes BDF, Emacs necesita saber dónde encontrarlas. La variable ``bdf-directory-list`` contiene la lista de directorios donde Emacs debe buscar las fuentes; el valor por defecto incluye un único directorio ``/usr/local/share/emacs/fonts/bdf``. Muchas otras variables de personalización para estos comandos se definen y describen en los archivos ``Lisp ps-print.el`` y ``ps-mule.el``. 41.3. Paquete Printing ---------------------- Las facilidades básicas de Emacs para imprimir en papel pueden ampliarse utilizando el paquete Printing. Éste proporciona una interfaz fácil de usar para elegir qué imprimir, previsualizar archivos PostScript antes de imprimir y configurar varias opciones de impresión, como cabeceras de impresión, modos horizontal o vertical, modos dúplex, etc. En los sistemas GNU/Linux o Unix, el paquete Printing se basa en las utilidades ``gs`` y ``gv``, que se distribuyen como parte del programa GhostScript. En MS-Windows, puede utilizarse el puerto ``gstools`` de Ghostscript. Para usar el paquete Printing, añade (``require 'printing``) a su fichero init (ver :ref:`50.4`), seguido de ``(pr-update-menus)``. Esta función sustituye los comandos de impresión habituales de la barra de menús por un submenú ``Printing`` que contiene varias opciones de impresión. También puede escribir :kbd:`Alt`-:kbd:`x` ``pr-interfac`` :kbd:`RETURN` (``M-x pr-interface RET``); esto crea un búfer ``*Printing Interface*`` (Interfaz de Impresión), similar a un búfer de personalización, donde puede configurar las opciones de impresión. Después de seleccionar qué y cómo imprimir, inicie el trabajo de impresión utilizando el botón ``Print`` (Imprimir) (haga clic con ``ratón-2`` sobre él, o mueva el punto sobre él y escriba :kbd:`RETURN` (``RET``)). Para más información sobre las distintas opciones, utilice el botón ``Interface Help`` (Ayuda de la interfaz).