Emacs se congeló al abrir el archivo pdf


10

Cuando abro pdf con emacs, se congela. E instalé herramientas pdf, abrí pdf, se congeló nuevamente.

¿Cuál es el proceso de subrayado cuando emacs abre un pdf? ¿Hay mucho trabajo de conversión? ¿Qué debo hacer para acelerarlo?

  • Emacs 24.4
  • Ubuntu 14.04 LTS
  • Intel 2.4GHz x 2
  • 4G de RAM.

Actualización :

Acabo de encontrar esta pagina:

"aprendí una lección. Nunca abras un pdf en emacs. Ni siquiera lo hagas accidentalmente".

https://twitter.com/ergoemacs/status/456088661059457024

¡Es una noticia triste para mí! ¿No es una buena idea ver pdf usando Emacs?

Actualización 2

Pensé que era porque mi archivo pdf es demasiado grande:

5.7M, 1313 pages

Así que probé un pequeño archivo pdf,

402K, 66 pages

se congeló de nuevo.

Actualización 3

Abro el archivo pdf usando C-c C-xfrom helm, y abre el archivo pdf en un visor externo: zathura . Como no hay proceso de conversión, el archivo se abre rápidamente. (Tan rápido como mupdf. Supongo que zathura usa mupdf como back-end).

Hay cuatro puntos que hacen que zathura sea excepcional:

  1. Iluminación rápida. (Ambos abren y buscan)
  2. Pantalla de alta calidad.
  3. Tab muestra el menú de capítulos / secciones como Adobe Reader.
  4. Buen soporte de atajos de teclado. (En realidad, utiliza la combinación de teclas estilo vim, lo cual tiene sentido ya que no es necesario cambiar de modo en el visor de pdf.

Actualización 4

Captura de pantalla para una comparación de calidad:

! Izquierda: Zathura; Derecha: PDF en Emacs

Realmente me confundí lo que Emacs usa para abrir PDF. (Ya he eliminado las herramientas pdf)


¿No quieres contarnos más sobre tu configuración de Emacs relacionada con los archivos pdf?
Nsukami _

@Nsukami_ Gracias por preguntar. En realidad no tengo nada relacionado con el archivo pdf en mi configuración. 1. Abro pdf con instalación predeterminada. 2. Herramientas pdf instaladas, abrir pdf.
Nick

Puede usar Emacs como lector de PDF bien. Ahora uso Emacs para leer PDF exclusivamente. También uso Ubuntu. Pero, ¿qué tamaño tiene su archivo PDF?
Tu Do

44
Claramente, es hora de emacs -Qnuevo.
wasamasa

2
Para instalar pdf-tools, debe clonar el repositorio, ejecutar ./autogen.shy seguir el procedimiento estándar: ./configure&& make&& sudo make install. Luego, producirá un pdf-tools.tar.gzdirectorio de herramientas pdf que clonó. Luego, coloque (pdf-tools-install)en algún lugar de su archivo de inicio. A partir de ahora, utilizará Emacs, pdf-view-mdoeque ofrece una mejor calidad y una mejor velocidad de renderizado.
Tu Do

Respuestas:


12

Debe deshabilitar linum-modeal abrir un archivo PDF. De lo contrario, colgará sus Emacs. es decir, solo agréguelo prog-modepara editar texto:

(add-hook 'prog-mode-hook 'linum-on)

Para instalar pdf-tools:

  • Tienes que clonar el repositorio :

    git clone https://github.com/politza/pdf-tools.git

  • cd pdf-tools

  • Ejecutar make.

  • Luego, producirá un pdf-tools-${VERSION}.taren el pdf-toolsdirectorio que clonó; en Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Luego, coloque (pdf-tools-install)en algún lugar de su archivo de inicio. A partir de ahora, utilizará Emacs, pdf-view-modeque ofrece una mejor calidad y una mejor velocidad de representación.

Aquí hay una demostración usando herramientas pdf . El archivo PDF tiene 28MB y tardó unos segundos en abrirse. Tenga en cuenta que la calidad de las imágenes en el gif es un poco inferior en comparación con la fuente real, pero como puede ver, el texto es claro como el cristal. No grabé toda la pantalla para reducir el tamaño del gif, porque ya son 13 MB.

Utilizo Isearch simple C-scomo en otros búferes para buscar. No presione demasiado rápido, deje aproximadamente 1 segundo de retraso entre búsquedas. Debería usar Isearch para buscar en la página actual o en páginas cercanas, básicamente algo pequeño. Para buscar en todo el documento, use pdf-occur; El comando es bastante rápido. Es posible que desee conservar los resultados de búsqueda para su uso posterior (en la misma sesión) cambiando el nombre del *PDF-Occur*búfer predeterminado a otro nombre para evitar que se anule en futuras búsquedas.

Si desea la tabla de contenido, en el búfer de PDF, presione opara abrirla outline-mode.


Consejos para este gran paquete (y respuesta). La diferencia es enorme si la compara con el visor predeterminado.
KookieMonster

(add-hook 'prog-mode-hook 'linum-on)debería estar (add-hook 'prog-mode-hook 'linum-mode)en 24.5.1.
Yang

4

Estoy usando Emacs para leer documentación, artículos científicos y libros, todo eso sin problemas .

Mi doc-view-mode utiliza mudraw (de mupdf ) para renderizar archivos PDF como puede ver marcando la variable doc-view-pdfdraw-program :

doc-view-pdfdraw-program es una variable definida en `doc-view.el '. Su valor es "mudraw" Documentación: Nombre del programa de MuPDF para convertir archivos PDF a PNG. Esta variable se introdujo, o se cambió su valor predeterminado, en la versión 24.4 de Emacs.

Por defecto, el modo doc-view usa gs de ghotscript para renderizar, que puede ser lento en comparación. Puede leer sobre el cambio de gs de ghostscript a mudraw de mupdf:

Desde entonces he estado probando ese parche y nunca miré hacia atrás, ya que el cambio aceleró la conversión de pdf-> png por un factor de dos y trajo anti-aliasing con él.

En tu situacion:

  1. instale mupdf y abra PDF en una sesión de emacs sin su configuración, por ejemplo:

    env HOME=/tmp emacs -Q
    

    y compruebe si doc-view-pdfdraw-program está configurado correctamente en mudraw .

  2. informar de nuevo si arriba mejoró su situación.

PD: No tengo experiencia con herramientas pdf .


Tengo instalado mupdf, y es sorprendentemente rápido. Ejecuto env HOME = / tmp emacs -Q, emacs dice "todavía convirtiendo ...", y me toma un tiempo convertirlo. La velocidad es buena pero la calidad es pobre. Para mi sorpresa, no hay una variable llamada doc-view-pdfdraw-program. Si Emacs puede usar mupdf, ¡sería realmente fantástico!
Nick

¿Estás seguro de que estás usando 24.4? doc-view-pdfdraw-program debería estar disponible en tal caso. ¿ Está disponible mudraw en tu caparazón?
kmicu

Sí, estoy ejecutando Emacs 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawno está disponible, así que lo instalé. (el paquete mupdf-tools), así puedo ejecutar mudraw en shell. La velocidad de conversión es aún más lenta y la calidad de visualización del pdf sigue siendo deficiente.
Nick

"Para mi sorpresa, no hay una variable llamada doc-view-pdfdraw-program". sin saber qué se establece en esa variable, no podemos estar seguros de si realmente está usando mudraw en modo doc-view, tal vez esto todavía sea gs . "la calidad de visualización del pdf sigue siendo pobre" es una declaración relativa y subjetiva: ¿puede actualizar su pregunta con algunas capturas de pantalla? Para mí, Zathura (con backend mupdf) tiene exactamente la misma calidad y velocidad de representación de PDF que en Emacs.
kmicu

1
Para conseguir esa variable, hay que cargarlo: (require 'doc-view). Creo que mudrawes el valor predeterminado y el problema es que doc-viewno puede caber toda la página PDF en todo el búfer. Y no estoy seguro de la calidad.
Tu Do
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.