# El manual de &kdvi;

Stefan
Kebekus

     kebekus@kde.org

Miguel
Revilla Rodríguez

    yo@miguelrevilla.com

Traductor
2001
Stefan Kebekus
&FDLNotice;
2002-04-27
1.00.00

Este documento describe la versión 1.0 de &kdvi;

KDE
linux
TeX
DVI

## Introducción

&kdvi; es un conector para el programa &kviewshell; que permite a este mostrar archivos con formato &DVI; (`.dvi`), generados por el sistema de procesamiento de textos TeX. &kdvi; soporta muchas de las extensiones del estándar &DVI;, como por ejemplo la inclusión de gráficos &PostScript; o hiperenlances. Se pueden encontrar más detalles, ejemplos y especificaciones en el archivo `KDVI-features.dvi` (o vea el código fuente de ese archivo en `KDVI-features.tex`).

Para obtener información actualizada, consulte la página web de &kdvi;.

TeX en un sistema de procesamiento de textos de altas prestaciones orientado a la escritura de textos científicos y, más concretamente, matemáticos. Se puede encontrar más información sobre TeX y &DVI; en la página web del grupo de usuarios de TeX o la alemana German DANTE e.V..

## Iniciando &kdvi;

La mayor parte de las veces &kdvi; será iniciado al pulsar sobre un archivo `.dvi` en el administrador de archivos. Por comodidad existe el comando `kdvi` que hace una llamada a &kviewshell; con el conector &kdvi; precargado. Por lo tanto, el visor puede ser iniciado utilizando el comando ``kdvi` `ruta/documento.dvi``. Los comandos ``kdvi` `ruta/documento`` o ``kdvi` `ruta/documento.`` también son válidos. Si está conectado a Internet, puede acceder a los archivos residentes en otros ordenadores introduciendo una &URL; como parámetros, de esta manera: ``kdvi` `http://ruta/documento.dvi``

Si introduce una &URL; como parámetro, puede indicarle a &kdvi; que vaya directamente a un punto determinado del archivo &DVI;. Por ejemplo, ``kdvi` `file:documento.dvi#43`` hará que &kdvi; abra la página 43. Si ha incluido información del archivo fuente, un comando como ``kdvi` `file:documento.dvi#src:143documento.tex`` hará que &kdvi; busque el lugar del archivo &DVI; que corresponde a la línea 43 del archivo TeX `documento.tex`. Es raro que utilice esta opción usted mismo, lea la sección sobre búsqueda directa para conocer cómo configurar su editor para iniciar &kdvi; automáticamente.

No olvide el prefijo `file:` o se pueden producir resultados no esperado. Por ejemplo, el comando ``kdvi` `file:documento.dvi#43`` abrirá la página 43 del archivo `documento.dvi`. El comando ``kdvi` `documento.dvi#43`` tratará de abrir el archivo `documento.dvi#43`.

Hay otra opción que también es probable que no necesite usar usted mismo. Si teclea ``kdvi` `--unique` `ruta/documento.dvi``, &kdvi; cargará el archivo si no hay otra sesión ejecuntándose que ya lo tenga cargado. Si la hay, dicha sesión de &kdvi; será traida al frente. Un comando como ``kdvi` `--unique` `file:documento.dvi#43`` puede ser utilizado en archivos de guiones para hacer que una sesión ya abierta de &kdvi; salte a la página 43.

Tambien funcionan los parámetros comunes a las aplicaciones de &Qt; y &kde;: ``kdvi` `-style` `windows` `-display` `:0` `-geometry` `400x400+0+0` `-caption` `"DVI"``

## Impresión de los archivos &DVI;

&kdvi; puede imprimir archivos &DVI; utilizando el interfaz de impresión de &kde;. Internamente, &kdvi; utiliza el programa `dvips` para generar &PostScript;, que es posteriormente enviado a la impresora. Por ello, es necesario que `dvips` esté instalado si se desea imprimir con &kdvi;. El programa `dvips` utiliza archivos de configuración y parámetros propios, que en la mayoría de los casos deberían de ser válidos. No obstante, si le preocupa obtener resultados óptimos al imprimir, debería configurar `dvips` manualmente y asegurarse de que establece el modo de MetaFont que mejor se ajusta a su impresora. En muchos sistemas encontrará información del sistema texinfo de GNU sobre `dvips`, y puede que también haya un archivo llamado `dvips.dvi` o similar.

## Exportación de archivos &DVI; a otros formatos

Si desea guardar su archivo en los formatos &PostScript; o PDF, no se recomienda que utilice la opción de desviar la impresora a un archivo. En vez de eso, es mejor que haga uso de las funciones de exportación, pues estas proporcionan una mejor calidad y conservan la mayoría de las características especiales del formato DVI y presentan un mejor aspecto en la mayoría de los programas de visualización, como Adobe Acrobat Reader. Encontrará las funciones de exportación en el menú Archivo.

### Exportación a &PostScript;

Al igual que a la hora de imprimir, se utiliza el programa externo `dvips` para generar los archivos &PostScript;. Si el archivo &DVI; contiene hiperenlaces, estos también serán incluidos en el archivo &PostScript;. Si es usted un experto y desea generar una salida optimizada para una impresora concreta, es mejor que utilice `dvips` manualmente y elija el modo de MetaFont apropiado usted mismo.

### Exportación a PDF

Con el fin de producir archivos PDF de alta calidad, &kdvi; convierte el &DVI; en PDF utilizando el programa externo `dvipdfm`. Si está trabajando en una máquina que tiene una distribución antigua de TeX, es muy probable que el programa `dvipdfm` no esté instalado. En ese caso deberá utilizar la función de impresión para generar documentos PDF.

Si visualiza el archivo generado utilizando el programa Adobe Acrobat Reader, es posible que encuentre que algunas de las fuentes tipográficas se muestra con muy poca calidad, a pesar de que la impresión y la visualización con ghostview son correctas. Este es un problema ya conocido de Acrobat Reader con las tipografías de mapa de bits. En el momento de la redacción de esta documentación, la única solución es evitar las tipografías de mapa de bits.

## Uso de la búsqueda inversa

La búsqueda inversa es una característica muy útil a la hora de escribir documentos TeX uno mismo. Si todo está correctamente configurado, es posible pinchar con el botón central del ratón sobre la ventana de &kdvi; (en algunos sistemas, si el ratón no tiene tres botones, esto se puede simular pulsando simultáneamente los botones derecho e izquierdo). Después de eso, se abrirá su editor de textos preferido, cargará el archivo fuente de TeX y se colocará en el párrafo correspondiente. Para utilizar la búsqueda inversa, haga lo siguiente:

1. Genere un archivo &DVI; que contenga información para búsqueda inversa. Esto se explica en la sección Generación de archivos de TeX para búsqueda inversa, que se encuentra más adelante. Si únicamente desea probar la búsqueda inversa, puede utilizar el archivo `KDVI-features.dvi`.

2. Haga que &kdvi; conozca el editor de textos que se utilizará. Elija un editor en el diálogo de Preferencias (este diálogo se encuentra seleccionando Parámetros en el menú Opciones de DVI). En el próximo capítulo de esta documentación, Opciones de procesamiento, se explica más detalladamente este cuadro de diálogo.

3. Algunos editores deben ser iniciados manualmente, o necesitan configuración adicional. Encontrará una descripción de todos los editores soportados en Configuración del editor.

4. Pruebe su configuración. Abra su archivo &DVI; en &kdvi; y utilice el botón central del ratón dentro de &kdvi;. Debería abrirse el editor y mostrar el archivo de TeX.

### Generación de archivos de TeX para búsqueda inversa

Existen esencialmente dos métodos para producir archivos &DVI; que contengan información para búsqueda inversa: o bien se utilizan versiones de TeX/LaTeX que generen e incluyan la información necesaria, o se puede incluir un paquete adicional que está escrito en TeX/LaTeX.

- Una versión de TeX que genere e incluya la información necesaria automáticamente es, sin lugar a dudas, el mejor método para añadir información para búsqueda inversa. En el momento de redactarse esta documentación, aún no existe una versión para &UNIX; que permita esto. Sin embargo, se afirma que la próxima versión de la distribución TeTeX incluirá búsqueda inversa nativamente.

- Si no tiene una versión de TeX que incluya la información para búsqueda inversa, copie los archivos `srcltx.sty` y `srctex.sty` al directorio en el que esté almacenado su archivo TeX (puede hacerlo pinchando sobre los hipervínculos al tiempo que pulsa la tecla &Shift;). Si utiliza LaTeX, añada la línea

          \usepackage[active]{srcltx}

  al preámbulo de su archivo de TeX. Si utiliza TeX simple, la línea

          \include{srctex}

  se encargará del trabajo.

Aunque la búsqueda inversa es extremadamente útil durante el proceso de redacción del documento, es una buena idea eliminar esa información antes de enviarle el archivo &DVI; a otra persona.

### Configuración del editor

Aunque la búsqueda inversa suele funcinar muy bien con la mayoría de los editores, algunos de ellos requieren una atención especial. Esta sección explica cómo configurar el editor.

#### Emacs

Emacs funciona bien con &kdvi;. El comportamiento real de Emacs depende mucho de la configuración. Como normalmente, se puede personalizar XEmacs completamente, si desea enfrentarse al código Lisp.

&kdvi; utiliza el programa `emacsclient` para controlar Emacs remotamente.

El programa `emacsclient` requiere que Emacs esté funcionando, y que el programa Emacs Server esté iniciado dentro de Emacs. La búsqueda inversa no funcionará salvo que ambos programas estén iniciados, Emacs y Emacs Server.

Para iniciar el programa Emacs Server, puede utilizar uno de los siguientes métodos:

1. En Emacs, inicie Emacs Server tecleando `MX `server-start``

2. Añadir la línea

           (server-start)

   a su archivo `.emacs`. Reinicie Emacs

- Asegúrese de que Emacs está instalado. Trate de ejecutar `emacs` en la línea de comandos.

- &kdvi; utiliza el comando `emacsclient` para controlar remotamente Emacs. Asegúrese de que el comando `emacsclient` está disponible en la línea de comandos tecleando el comando ``emacsclient` `nombre de un archivo de texto``. Esto debería abrir un nuevo marco en el editor Emacs.

- Si el comando `emacsclient` falla y da un mensaje de error del tipo `unable to connect to local`, asegúrese de que Emacs está iniciado. Es más, asegúrese de que Emacs Serv está iniciado tecleando `Mx `server-start``.

- Si desea que el marco se active automáticamente, añada la función `raise-frame` a server-switch-hook (ejecute `Mx `customize-variable` RET `server-switch-hook`` e introduzca el nombre de la función en el campo de texto).

- Si ha cambiado información desde la última vez que guardó, Emacs le preguntará: `Revert buffer from file ...? (yes or no)`. Lo más probable es que conteste no, ya que recuperar los cambios significa que se vuelve a leer el archivo del disco, causando la pérdida de todos los cambios desde la última vez que se guardó.

  El comportamiento de gnuclient de volver a cargar silenciosamente los datos cambiados es preferible — añada las siguientes líneas al archivo `.emacs` para emular el comportamiento de gnuclient con `emacsclient`:

      	(defadvice server-visit-files (around save-buffers last activate)
      	  "Try to emulate gnuclient behaviour with emacsclient.
      	Works only for visiting one buffer at a time."
      	  (let* ((filen (car (car (ad-get-arg 0))))
      		 (buf (get-file-buffer filen))
      		 (this-buf-modified-p nil))
      	    ;;; the following is copied from server-visit-files, with
      	    ;;; a modification for the `verify-visited-file-modtime' test
      	    (if (and buf (set-buffer buf))
      		(if (file-exists-p filen)
      		    ;;; if the file has changed on disk, reload it
      		    ;;; using `find-file-noselect'
      		    (if (not (verify-visited-file-modtime buf))
      			(progn
      			  (find-file-noselect filen)
      			  ;;; if user answered `no', reset modtime anyway
      			  ;;; so that server-visit-files doesn't realize the
      			  ;;; difference:
      			  (set-visited-file-modtime)))
      		  ;;; if file exists no longer, we let server-visit-files
      		  ;;; deal with that
      		  t)
      	      (setq buf (find-file-noselect filen)))
      	    (setq this-buf-modified-p (buffer-modified-p buf))
      	    (set-buffer buf)
      	    (set-buffer-modified-p nil)
      	    ad-do-it
      	    (set-buffer-modified-p this-buf-modified-p)))

#### &kate;

Por desgracia, el editor &kate; de &kde; no soporta muy bien la búsqueda inversa. Al pinchar con el botón central sobre el archivo &DVI; provocará que siempre se habra una nueva ventana del editor &kate;, aunque este ya se encuentre funcionando y con el archivo de TeX abierto. Lo que es aún peor, &kate; no coloca el cursor al principio del párrafo.

#### NEdit

NEdit funciona normalmente muy bien. Al pinchar sobre el archivo &DVI; abrirá una nueva ventana. Si el archivo TeX ya está abierto en otra sesión de NEdit, la nueva ventana mostrará otra vista del buffer. En otro caso se cargará el archivo TeX. Después de abrir la ventana, NEdit resaltará la primera línea de párrafo apropiado.

1. Asegúrese de que NEdit está instalado. Trate de ejecutar `nedit` desde la línea de comandos.

2. &kdvi; utiliza el comando `ncl` para controlar remotamente NEdit. Asegúrese de que el comando `ncl` está disponible en la línea de comandos, tecleando la orden ``ncl` `-noask``. Esto debería de abrir una sesión del editor NEdit. Si el comando `ncl` no se encuentra disponible, será porque está utilizando una versión antigua de NEdit. En ese caso deberá actualizar a una versión más moderna o utilizar la opción Editor definido por el usuario del diálogo Opciones.

#### XEmacs

XEmacs funciona bien con &kdvi;. El comportamiento final de XEmacs depende mucho de la configuración. Como normalmente, se puede personalizar XEmacs completamente, si desea enfrentarse al código Lisp.

&kdvi; utiliza el programa `gnuclient` para controlar XEmacs remotamente.

El programa `gnuclient` requiere que XEmacs esté funcionando, y que el programa gnuserv esté iniciado dentro de XEmacs. La búsqueda inversa no funcionará salvo que ambos programas estén iniciados, XEmacs y `gnuserv`.

Para iniciar el programa gnuserv, puede utilizar uno de los siguientes métodos:

- En XEmacs, inicie gnuserv tecleando `MX `gnuserv-start``

- Añadir la línea

          (gnuserv-start)

  a su archivo `.xemacs`. Si utiliza una versión más reciente de XEmacs, `.xemacs` será un directorio. En ese caso, debería añadir la línea al archivo `.xemacs/init.el`. Reinicie XEmacs

Si no desea abrir un nuevo marco para cada llamada del editor, y desea que el marco sea traido al primer plano automáticamente, establezca Gnuserv Frame a Use selected frame, y añada la función `raise-frame` a Visit Hook. Ejecute `Mx `customize-group` RET `gnuserv`` para configurar estas opciones.

- Asegúrese de que XEmacs está instalado. Trate de ejecutar `xemacs` en la línea de comandos.

- &kdvi; utiliza el comando gnuserv para controlar remotamente XEmacs. Asegúrese de que el comando `gnuclient` está disponible en la línea de comandos tecleando ``gnuclient` `nombre de un archivo de texto``. Esto debería abrir un nuevo marco en el editor XEmacs.

- Si gnuserv falla y da un mensaje de error del tipo `unable to connect to local`, asegúrese de que XEmacs está iniciado. Es más, asegúrese de que gnuserv está iniciado tecleando `MX `gnuserv-start``.

- Si no desea abrir un nuevo marco para cada llamada del editor, y desea que el marco sea traido al primer plano automáticamente, establezca Gnuserv Frame a Use selected frame, y añada la función raise-frame a Visit Hook. Ejecute `MX `customize-group` RET `gnuserv`` para configurar estas opciones.

#### VI iMproved / &GUI;

&kdvi; soporta `vim`, pero el resultado no es ninguna maravilla. Al pinchar con el botón central del ratón sobre el archivo &DVI; provocará que siempre se abra una nueva sesión del editor `vim`, aunque `vim` ya esté funcionando y el archivo TeX ya haya sido cargado.

- Asegúrese de que VIM/GUI está instalado. Trate de ejecutar `gvim` en la línea de comandos.

## Búsqueda directa

Las funciones de búsqueda directa le permiten saltar desde su editor a la posición asociada del archivo &DVI; directamente. Como su editor debe soportar la búsqueda hacia adelante, sólo se admiten de momento Emacs y XEmacs. Esperemos que otros editores lo soporten pronto.

Para utilizar la búsqueda directa, puede hacer una de las siguientes:

- Configuración del editor — se describe a continuación.

- Añada información del código fuente a su archivo &DVI;, &eg; utilizando el paquete `srcltx`, descrito en la sección "Generación de archivos de TeX para búsqueda inversa".

- Si utiliza Emacs y todo está bien configurado, basta con que pulse `&Ctrl;X &Ctrl;J` , y &kdvi; se abrirá y se colocará en el lugar que corresponde al archivo TeX que esté editando en ese momento.

### Configuración del editor para búsqueda directa

#### Emacs

Para utilizar la búsqueda directa en Emacs, haga lo siguiente:

- Descargue el siguiente guión de Emacs, `kdvi-search.el` (pulse mayúsculas y pinche en el nombre del archivo para descargarlo) y guárdelo en un lugar al que pueda acceder Emacs — recomendamos el directorio `emacs-scripts`.

- Añada las líneas

      (add-to-list 'load-path (expand-file-name "~/emacs-scripts/"))
      (require 'kdvi-search)
      (add-hook 'LaTeX-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line)))
      (add-hook 'tex-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line)))

  a su archivo `.emacs`. Reinicie Emacs.

- Abra Emacs, cargue un archivo de TeX, genere el &DVI; correspondiente, y utilice el comando `Mx `kdvi-jump-to-line`` o pulse `&Ctrl;X &Ctrl;J` . Puede ocurrir que Emacs le pregunte por el nombre de un archivo maestro. Esto es útil si utiliza un archivo de TeX que incluya otros archivos: el archivo maestro es el de nivel superior que incluye al resto. Emacs puede también preguntar el nombre del archivo maestro como una variable local, &ie;, como un comentario al final del archivo. Diga `sí` o `no`.

- Asegúrese de que Emacs está instalado. Trate de ejecutar `emacs` en la línea de comandos.

- Si Emacs no es capaz de abrir &kdvi;, puede encontrar la salida en la sesión kdvi-output.

#### XEmacs

Para configurar XEmacs, siga los pasos anteriores referentes a Emacs, pero modifique el archivo `.xemacs` en vez de `.emacs`. Si utiliza un versión reciente de XEmacs, `.xemacs` puede ser un directorio. En ese caso, añada las líneas al archivo `.xemacs/init.el`.

## El diálogo de preferencias

Se puede acceder al diálogo de Preferencias eligiendo Opciones de DVI en el menú Preferencias.

El diálogo consiste en dos apartados, Tipografías y Procesado.

### Opciones de tipografías

La siguiente imagen muestra el diálogo de opciones de &kdvi;.

El apartado de Tipografías.
El apartado de Tipografías.

Modo de MetaFont

  Estas opciones especifican las tipografías que &kdvi; utilizará en el procesado. Optimizando estos parámetros cuidadosamente, es posible mejorar la calidad. Sin embargo, si usted no es un experto en `MetaFont` y no sabe lo que está haciendo, es mejor que no cambie estas opciones. Puede mirar en la sección de preguntas más comunes de este manual.

  Unos valores seguros son 1200 ppp / Lexmark para obtener buena calidad o 600 ppp / LaserJet 4 para una calidad media y mayor velocidad de trabajo.

Generación de tipografías no encontradas

  Active esto si desea que &kdvi; llame al programa `MetaFont` en el muy probable caso de que &kdvi; quiera mostrar documentos para los que las fuentes tipográficas aún no hayan sido generadas. Es seguro que le interesa tener esta opción activada.

### Opciones de procesado

La siguientes imágenes muestran el segundo diálogo de opciones de &kdvi;.

El apartado de Procesado
El apartado de Procesado

Mostrar especiales de PostScript

  Si esta opción está activada, &kdvi; mostrará gráficos &PostScript; incrustados dentro del archivo &DVI;. Es conveniente activar esta opción.

  Si no se encuentra un archivo &PostScript; externo, &kdvi; mostrará una caja roja de advertencia en su lugar. Por desgracia, el procesado de gráficos &PostScript; es muy lento en la versión actual de &kdvi;. Mejoraremos la velocidad en futuras versiones. Es esta opción está desactivada, &kdvi; mostrará o bien una caja gris determinando la posición del gráfico, o bien dejará el espacio vacio.

  No hay un método normalizado para incrustar gráficos &PostScript; en un archivo &DVI;. Por lo tanto puede ocurrir que &kdvi; no pueda mostrar correctamente un gráfico que funciona bien en otros programas. Las versiones antiguas de `xdvi` y `dvips` soportan la ejecución de programas externos. Esto es un riesgo de seguridad y no ha sido implementado en &kdvi; intencionadamente. Se puede encontrar información técnica sobre cómo incluir &PostScript; en el documento `KDVI-features.dvi`.

Mostrar hiperenlances

  Active esto si desea que &kdvi; muestre hiperenlances. Las partes apropiadas del texto serán subrayadas en color azul. Es muy probable que le interese activar esta opción.

Editor para búsqueda inversa

  Si tiene la intención de usar búsqueda inversa, una opción muy útil si escribe los documentos TeX usted mismo, deberá especificar qué editor usará, y como &kdvi; puede ejecutar este editor. En el ejemplo que se muestra, el usuario ha optado por el editor NEdit. Si utiliza uno de los editores preconfigurados en la lista desplegable Editor, no necesitará hacer nada más. Si desea utilizar un editor diferente, elija Editor definido por el usuario del desplegable Editor e introduzca la línea de comandos necesaria para iniciar dicho editor. Utilice los campos %f y %l que serán reemplazados por el nombre del archivo TeX y el número de línea del archivo TeX, respectivamente.

  Si utiliza un editor que no está soportado, por favor envíenos un correo electrónico a kebekus@kde.org y adjúntenos la línea de comando utilizada y cómo ha configurado el editor.

## Preguntas más comunes

¿Qué ocurre cuando &kdvi; muestra el mensaje Generando tipografías de mapa de bits, y ese proceso dura tanto tiempo?

Muchas de las tipografías utilizadas habitualmente en un documento TeX deben ser generadas por el sistema MetaFont. Metafont es un lenguaje similar a TeX (e incluido en la mayoría de las distribuciones de TeX) que a partir de una descripción del contorno de una tipografía genera una versión rasterizada (= archivo `.pk`) de la misma que puede ser enviada a la impresora o utilizada en programas de visualización como el propio &kdvi;. Metafont trata de conseguir la mejor calidad posible en las copias impresas. Por ejemplo, tiene en cuenta que el pixel de una impresora de inyección de tinta tiene forma redondeada y que los pixels contíguos tienden a montarse unos con otros. Sin embargo, el pixel de una impresora láser es rectangular, pero es muy común que un pixel aislado no sea tenido en cuenta.

El generar esas fuentes de mapas de bits altamente optimizadas requiere, naturalmente, gran cantidad de tiempo, en particular teniendo en cuenta que los documentos de TeX utilizan habitualmente muchas fuentes distintas. Sólo podemos pedir paciencia. Para facilitar de alguna manera el proceso, la mayoría de las distribuciones de TeX almacenan los archivos `.pk` durante un periodo de tiempo limitado, &eg; 100 días. Así pues, si accede al mismo documento más de una vez, los archivos `.pk` serán reutilizados.

¿Qué es un modo MetaFont?

Con el fin de obtener tipografías de mapas de bits optimizadas para determinada impresora (vea la respuesta a la primera pregunta), MetaFont tiene una base de datos de métodos de impresión, en un archivo llamado `modes.mf`. Un modo MetaFont es símplemente el nombre de una entrada de la base de datos. Por ejemplo, el nombre ljfour se refiere a la entrada de la base de datos que describe una impresora &Hewlett-Packard; LaserJet 4. Normalmente el modo MetaFont va seguido de un número, la resolución. La LaserJet, por ejemplo, es capaz de imprimir tanto en 300 como en 600 puntos por pulgada. Así pues, ljfour/600 daría una descripción completa.

## Créditos y licencias

&kdvi;

&kdvi; está basado en el programa independiente &kdvi; 0.4.3 de Markku Hihnala. Ese programa está a su vez basado en la versión 18f de xdvi, que tiene varios autores.

La documentación tiene copyright 2001, Stefan Kebekus kebekus@kde.org

Traducido por Miguel Revilla Rodríguez yo@miguelrevilla.com

&underGPL; &underFDL;

&documentation.index;