Extraido de la 13º edición del GNU Emacs Manual,
por Richard M. Stallman
MANOS A LA OBRA
Tanto la búsqueda inversa como la búsqueda
directa son
features de Kdvi que permiten saltar desde una posición
asociada del archivo (.dvi) visualizado con Kdvi a una posición asocidada
del archivo (.tex) tratado con el editor que usemos (Emacs en este caso)
y viseversa respectivamente.
Búsqueda
Inversa
Cuando hagamos click con el botón del medio sobre el documento abierto
con Kdvi, se abrirá en el editor predefinido los fuentes (.tex) en
el párrafo correspondiente a donde hallamos clickeado:
1) En la cabecera de nuestro .tex incluir la línea:
\usepackage[active]{srcltx}
Esto es para que dentro del archivo .dvi halla información que se
pueda interpretar para nuestro propósito, el manual de Kdvi recomienda
remover esta información antes de enviar el documento a otra persona.
2) En kdvi, dentro de Preferencias/Opciones DVI/Especiales de DVI:
definimos el editor que usamos, yo utilizo la opción 'editor definido
por el usuario' para poder pasarle algunos parámetros extras a emacs:
emacsclient --no-wait +%l %f || emacs -font lucidasanstypewriter-bold-14
+%l %f
Bien, creo que hasta aca se puede llegar con el manual de kdvi, pero con
esta configuración, lo único que conseguimos es que cada vez
que hacemos
click con el boton del medio en un documento abierto con kdvi se abra una
nueva/distinta ventana de emacs, esto es muy incomodo.
3) En la sección del manual de emacs "Using Emacs as a Server", se
explica que algunos programas como 'mail' pueden usar a emacs como editor
de una porción de texto, como puede ser un mensaje a enviar, el problema
es que por cada vez que se solicite al editor se abrirá una nueva
ventana, y peor aún, esta no compartirá el buffer con la original,
por lo que no podemos tener continuidad en lo escrito. Esto se soluciona
utilizando emacsclient, este programa no abrirá una nueva ventana
cada vez que se lo solicita, sinó que trabajará siempre sobre
el mismo buffer, exactamente lo que necesitamos, pero hay algo que tenemos
que saber, emacsclient no se ejecutará si emacs no está ejecutandose
como servidor. Podemos hacer que emacs levante el servidor cada vez que lo
ejecutamos de una manera muy simple, creando en nuetra home el archivo .emacs
con el siguiente contenido:
(server-start)
4) Una explicación final: la línea "
emacscliente || emacs", a
la que Kdvi acude cada vez que hacemos click con el botón del medio,
dice: ejecutar emacsclient, si no se puede ejecutar emacs. La primera vez
que hagamos click, se ejecutará emasc, y con esto se levantará
el servidor, por lo que la próccima vez que clickiemos se ejecutará
emacsclient y podremos seguir trabajando sobre el mismo buffer, sin descontinuar
nuestro trabajo.
5) La línea
"-font lucidasanstypewriter-bold-14"
es para definir con que tipografía mostrará emacs el
archivo .tex, como ejecuto emacs sobre X-windows con una definición
de 1024x768 píxeles, la tipografía por defecto de emacs es
muy pequeña.
Búsqueda Directa
Luego de una convinación de telas (C-x C-j) en emacs se abrirá
Kdvi en la página correspondiente al texto sobre el que esta el cursor
en el archivo fuente:
1) En el directorio emacs-scripts (si no existe crearlo) de nuestra home
guardar el script
kdvi-search.el
(http://www.lugcos.org.ar/deposito/docs/BIDKLE/kdvi-search.el)
2) Agregar al archivo ~/.emacs 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)))
3) Mantener en el archivo .tex donde querramos lograr el efecto la línea:
\usepackage[active]{srcltx}
4) La primer vez que hagamos C-x C-j emacs nos hará algunas simples
preguntas de rutina, eso es todo, ya puede ser felíz :-)
SOBRE ESTE DOCUMENTO
Fue terminado de escribir el Jueves 6 de febreo de 2003 a las 2:45 am por
Juan José Conti
<jjconti@gnu.org>
en la localidad de Carlos Pellegrini, Santa Fe, Argentina; y es una prueba
más de que el imsomnio es saludable! ;-)
Puedes reproducirlo en cualquier medio, modificado y redistribuido, siempre
y cuando se mantenga esta última nota.