38 Visualización de Documentos ============================== El modo DocView es un modo principal para visualizar documentos DVI, PostScript (PS), PDF, OpenDocument, Microsoft Office, EPUB, CBZ, FB2, XPS y OXPS. Ofrece funciones como el corte, el zoom y la búsqueda dentro de los documentos. Funciona convirtiendo el documento en un conjunto de imágenes mediante los comandos ``gs`` (GhostScript) o ``pdfdraw/mutool draw`` (MuPDF) y otras herramientas externas, y luego muestra esas imágenes convertidas. Cuando visita un archivo de documento que puede visualizarse con el modo DocView, Emacs utiliza automáticamente ese modo [21]_ . Como excepción, cuando visita un fichero PostScript, Emacs cambia a modo PS, un modo mayor para editar ficheros PostScript como texto; sin embargo, también activa el modo menor DocView, de modo que puede teclear :kbd:`Ctrl`-:kbd:`c` :kbd:`Ctrl`-:kbd:`c` (``C-c C-c``) para ver el documento con DocView. Tanto en modo DocView como en modo DocView menor, repitiendo ``C-c C-c`` (``doc-view-toggle-display``) se alterna entre DocView y el contenido del archivo subyacente. Cuando visita un archivo que normalmente sería manejado por el modo DocView pero no se cumple algún requisito (por ejemplo, opera en un marco de terminal o Emacs no tiene soporte PNG), se le pregunta si desea ver el contenido del documento como texto plano. Si confirma, el buffer se pone en modo texto y se activa el modo menor DocView. Así, tecleando :kbd:`Ctrl`-:kbd:`c` :kbd:`Ctrl`-:kbd:`c` (``C-c C-c``) se cambia al modo menor. Con otro ``C-c C-c`` se vuelve al modo DocView. El contenido de texto plano también puede visualizarse desde el modo DocView tecleando :kbd:`Ctrl`-:kbd:`c` :kbd:`Ctrl`-:kbd:`t` (``C-c C-t``, ``doc-view-open-text``). Puede activar explícitamente el modo DocView con el comando ``M-x doc-view-mode``. Puede activar el modo menor de DocView con ``M-x doc-view-minor-mode``. Cuando el modo DocView se inicia, muestra una pantalla de bienvenida y comienza a formatear el archivo, página por página. Muestra la primera página una vez que ha sido formateada. Para eliminar el búfer de DocView, escriba :kbd:`k` (``k``, ``doc-view-kill-proc-and-buffer``). Para enterrarlo, escriba :kbd:`q` (``q``, ``quit-window``). .. [21] Las herramientas externas necesarias para el tipo de documento deben estar disponibles, y Emacs debe estar ejecutándose en un marco gráfico y tener soporte para imágenes PNG. Si no se cumplen estos requisitos, el Editor vuelve a otro modo principal. 38.1 Navegación en DocView -------------------------- En el modo DocView, puede desplazarse por la página actual usando las teclas de movimiento habituales de Emacs: :kbd:`Ctrl`-:kbd:`p` (``C-p``), :kbd:`Ctrl`-:kbd:`n` (``C-n``), :kbd:`Ctrl`-:kbd:`b` (``C-b``), :kbd:`Ctrl`-:kbd:`f` (``C-f``), y las teclas de flecha. Por defecto, las teclas de movimiento de línea :kbd:`Ctrl`-:kbd:`p` (``C-p``) y :kbd:`Ctrl`-:kbd:`n` (``C-n``) detienen el desplazamiento al principio y al final de la página actual, respectivamente. Sin embargo, si cambia la variable ``doc-view-continuous`` a un valor no nulo, entonces ``C-p`` muestra la página anterior si ya se encuentra al principio de la página actual, y ``C-n`` muestra la página siguiente si se encuentra al final de la página actual. También puede visualizar la página siguiente tecleando :kbd:`n` (``n``), ``AvPág``, :kbd:`→` (``next``) o :kbd:`Ctrl`-:kbd:`x` :kbd:`]` (``C-x ]``, ``doc-view-next-page``). Para visualizar la página anterior, escriba :kbd:`p` (``p``), ``RePág``, :kbd:`←` (``prior``) o :kbd:`Ctrl`-:kbd:`x` :kbd:`[` (``C-x [``, ``doc-view-previous-page``). :kbd:`SPACE` (``SPC``, ``doc-view-scroll-up-or-next-page``) es una forma cómoda de avanzar por el documento. Se desplaza dentro de la página actual o avanza a la siguiente. ``DEL`` se desplaza hacia atrás de forma similar (``doc-view-scroll-down-or-previous-page``). Para ir a la primera página, escriba :kbd:`Alt`-:kbd:`<` (``M-<``, ``doc-view-first-page``); para ir a la última, escriba :kbd:`Alt`-:kbd:`>` (``M->``, ``doc-view-last-page``). Para saltar a una página por su número, escriba :kbd:`Alt`-:kbd:`g` (``M-g M-g``) o :kbd:`Alt`-:kbd:`g`:kbd:`g` (``M-g g``, ``doc-view-goto-page``). Puede ampliar o reducir el documento con :kbd:`+` (``+``, ``doc-view-enlarge``) y :kbd:`-` (``-``, ``doc-view-shrink``). Por defecto, estos comandos sólo reescalan la imagen ya renderizada. Si desea que la imagen se vuelva a renderizar con el nuevo tamaño, ajuste ``doc-view-scale-internally`` a ``nil``. Para especificar el tamaño por defecto de DocView, personalice la variable ``doc-view-resolution``. Cuando el programa ``mutool`` está disponible, DocView lo usará para generar entradas para un menú de esquema, haciéndolo accesible a través de la facilidad ``imenu`` (ver :ref:`27.3.4`). Para deshabilitar esta funcionalidad incluso cuando ``mutool`` se encuentre en su sistema, personalice la variable ``doc-view-imenu-enabled`` al valor ``nil``. Puede personalizar aún más cómo se formatean y muestran los elementos de imenu utilizando las variables ``doc-view-imenu-format`` y ``doc-view-flatten``. 38.2 Búsqueda en DocView ------------------------ En el modo DocView, puede buscar una expresión regular en el texto del fichero (véase :ref:`16.6`). La interfaz de búsqueda está inspirada en isearch (véase :ref:`16.1`). Para iniciar una búsqueda, escriba :kbd:`Ctrl`-:kbd:`s` (``C-s``, ``doc-view-search``) o :kbd:`Ctrl`-:kbd:`r` (``C-r``, ``doc-view-search-backward``). Esto lee una expresión regular utilizando un minibúfer y, a continuación, se hace eco del número de coincidencias encontradas en el documento. Puede avanzar y retroceder entre las coincidencias tecleando :kbd:`Ctrl`-:kbd:`s` (``C-s``) y :kbd:`Ctrl`-:kbd:`r` (``C-r``). El modo DocView no tiene forma de mostrar la coincidencia dentro de la imagen de la página; en su lugar, muestra *información sobre esta herramienta* (tooltip, un mensaje emergente, en la posición del ratón) listando todas las líneas coincidentes en la página actual. Para forzar la visualización de este tooltip, teclee :kbd:`Ctrl`-:kbd:`t` (``C-t`` ``doc-view-show-tooltip``). Para iniciar una nueva búsqueda, utilice el comando de búsqueda con un argumento de prefijo; es decir, ``C-u C-s`` para una búsqueda hacia delante o ``C-u C-r`` para una búsqueda hacia atrás. 38.3 Recorte de DocView ----------------------- Los documentos suelen tener márgenes amplios para la impresión. Son molestos cuando se lee el documento en la pantalla, porque ocupan espacio y pueden causar un desplazamiento incómodo. Con DocView puede ocultar estos márgenes seleccionando una porción de páginas para mostrar. Una porción es un rectángulo dentro del área de la página; una vez que especifica una porción en DocView, se aplica a cualquier página que mire. Para especificar la porción numéricamente, escriba :kbd:`c`:kbd:`s` (``c s``, ``doc-view-set-slice``); a continuación, introduzca la posición del píxel superior izquierdo y la anchura y altura de la porción. Una forma gráfica más cómoda de especificar el corte es con :kbd:`c`:kbd:`m` (``c m``, ``doc-view-set-slice-using-mouse``), en la que se utiliza el ratón para seleccionar el corte. Basta con mantener pulsado el botón izquierdo del ratón (``ratón-1``) en la esquina superior izquierda de la región que desea incluir en el corte y, a continuación, mover el puntero del ratón a la esquina inferior derecha y soltar el botón. La forma más cómoda es establecer el corte óptimo utilizando la información de BoundingBox que se determina automáticamente a partir del documento escribiendo :kbd:`c`:kbd:`b` (``c b``, ``doc-view-set-slice-from-bounding-box``). Para cancelar el corte seleccionado, escriba :kbd:`c`:kbd:`r` (``c r``, ``doc-view-reset-slice``). Entonces DocView muestra la página completa incluyendo todos sus márgenes. 38.4 Conversión DocView ----------------------- Por eficiencia, DocView almacena en caché las imágenes producidas por ``gs``. El nombre del directorio donde se almacenan las imágenes viene dado por la variable ``doc-view-cache-directory``. Puede borrar el directorio de caché escribiendo :kbd:`Alt`-:kbd:`x` ``doc-view-clear-cache`` (``M-x doc-view-clear-cache``). Para forzar la reconversión del documento actualmente visualizado, escriba :kbd:`r` (``r``) o :kbd:`g` (``g``), ``revert-buffer``). Para matar el proceso de conversión asociado al búfer actual, escriba :kbd:`K` (``K``, ``doc-view-kill-proc``). El comando ``k`` (``doc-view-kill-proc-and-buffer``) mata el proceso de conversión y el buffer DocView.