Emacs a été gelé lors de l'ouverture du fichier pdf

10

Lorsque j'ouvre un pdf avec emacs, il s'est bloqué. Et j'ai installé des outils pdf, ouvert le pdf, il a de nouveau été gelé.

Quel est le processus de soulignement lorsque emacs ouvre un pdf? Y a-t-il beaucoup de travaux de conversion? Que dois-je faire pour l'accélérer?

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

Mise à jour :

Je viens juste de trouver cette page:

"a appris une leçon. N'ouvrez jamais un pdf dans emacs. Ne le faites même jamais accidentellement."

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

C'est une triste nouvelle pour moi! N'est-ce pas une bonne idée de visualiser le pdf en utilisant Emacs?

Update 2

Je pensais que c'était parce que mon fichier pdf était trop volumineux:

5.7M, 1313 pages

J'ai donc essayé un petit fichier pdf,

402K, 66 pages

il a de nouveau gelé.

Mise à jour 3

J'ouvre le fichier pdf en utilisant C-c C-xfrom helm, et il ouvre le fichier pdf dans une visionneuse externe: zathura . Puisqu'il n'y a pas de processus de conversion, le fichier ouvre rapidement l'éclairage. (Aussi vite que mupdf. Je suppose que zathura utilise mupdf comme arrière-plan.)

Il y a quatre points qui rendent zathura exceptionnel:

  1. Éclairage rapide. (Ouvrir et rechercher)
  2. Affichage de haute qualité.
  3. Tab affiche le menu de chapitre / section comme Adobe Reader.
  4. Bonne prise en charge des raccourcis clavier. (En fait, il utilise la liaison de touches de style vim, ce qui est logique car il n'est pas nécessaire de changer de mode dans la visionneuse pdf.

Mise à jour 4

Capture d'écran pour une comparaison de qualité:

! À gauche: Zathura; À droite: PDF dans Emacs

Je me suis vraiment trompé sur ce qu'Emacs utilise pour les PDF ouverts. (J'ai déjà supprimé les outils PDF)

pseudo
la source
Vous ne voulez pas nous en dire plus sur votre configuration Emacs liée aux fichiers pdf?
Nsukami _
@Nsukami_ Merci d'avoir posé la question. En fait, je n'ai rien lié au fichier pdf dans ma configuration. 1. J'ouvre le pdf avec l'installation par défaut. 2. Outils pdf installés, ouvrez le pdf.
Nick
Vous pouvez très bien utiliser Emacs comme lecteur PDF . J'utilise maintenant Emacs pour lire exclusivement des PDF. J'utilise également Ubuntu. Mais quelle est la taille de votre fichier PDF?
Tu Do
4
De toute évidence, il est temps de emacs -Qrecommencer.
wasamasa
2
Pour l'installer pdf-tools, vous devez cloner le dépôt, exécuter ./autogen.shet suivre la procédure standard: ./configure&& make&& sudo make install. Ensuite, il produira un pdf-tools.tar.gzdans le répertoire pdf-tools que vous avez cloné. Ensuite, placez (pdf-tools-install)quelque part dans votre fichier init. Désormais, Emacs utilisera pdf-view-mdoece qui donne une meilleure qualité et une meilleure vitesse de rendu.
Tu Do

Réponses:

12

Vous devez désactiver linum-modelors de l'ouverture d'un fichier PDF. Sinon, il suspendra votre Emacs. c'est-à-dire l'ajouter uniquement prog-modepour éditer du texte:

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

Pour installer pdf-tools:

  • Vous devez cloner le référentiel :

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

  • cd pdf-tools

  • Courez make.

  • Ensuite, il produira un pdf-tools-${VERSION}.tardans le pdf-toolsrépertoire que vous avez cloné; à Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Ensuite, placez (pdf-tools-install)quelque part dans votre fichier init. Désormais, Emacs utilisera pdf-view-modece qui donne une meilleure qualité et une meilleure vitesse de rendu.

Voici une démo utilisant des outils pdf . Le fichier PDF pèse 28 Mo et son ouverture a pris quelques secondes. Notez que la qualité des images dans le gif est un peu moins bonne que la source réelle, mais comme vous pouvez le voir, le texte est limpide. Je n'ai pas enregistré tout l'écran pour réduire la taille du gif, car il fait déjà 13 Mo.

J'utilise Isearch simple en utilisant C-scomme dans d'autres tampons pour la recherche. N'appuyez pas trop vite, laissez un délai d'environ 1 seconde entre les recherches. Vous devez utiliser Isearch pour rechercher la page actuelle ou les pages à proximité, essentiellement quelque chose de petit. Pour rechercher l'ensemble du document, utilisez pdf-occur; la commande est assez rapide. Vous souhaiterez peut-être conserver les résultats de la recherche pour une utilisation ultérieure (dans la même session) en renommant le *PDF-Occur*tampon par défaut en un autre nom pour éviter qu'il ne soit remplacé par les recherches futures.

Si vous voulez la table des matières, dans le tampon PDF, appuyez opour l'ouvrir outline-mode.

Tu Do
la source
Chapeaux conseils à ce grand paquet (et réponse). La différence est énorme si vous la comparez avec la visionneuse par défaut.
KookieMonster
(add-hook 'prog-mode-hook 'linum-on)devrait être (add-hook 'prog-mode-hook 'linum-mode)sur 24.5.1.
Yang
4

J'utilise Emacs pour lire de la documentation, des articles scientifiques et des livres - tout cela sans problème .

Mon doc-view-mode utilise mudraw (de mupdf ) pour le rendu des PDF comme vous pouvez le voir en vérifiant la variable doc-view-pdfdraw-program :

doc-view-pdfdraw-program est une variable définie dans `doc-view.el '. Sa valeur est "mudraw" Documentation: Nom du programme de MuPDF pour convertir les fichiers PDF en PNG. Cette variable a été introduite ou sa valeur par défaut a été modifiée dans la version 24.4 d'Emacs.

Par défaut, le mode doc-view utilise le gs de ghotscript pour le rendu qui peut être lent en comparaison. Vous pouvez lire sur le passage du gs de ghostscript au mudraw de mupdf:

Depuis, j'ai testé ce correctif et je n'ai jamais regardé en arrière depuis que le commutateur a accéléré la conversion pdf-> png par un facteur de deux et a apporté l'anti-aliasing avec.

Dans votre situation:

  1. installez mupdf et ouvrez PDF dans une session emacs sans votre configuration, par exemple:

    env HOME=/tmp emacs -Q
    

    et vérifiez si doc-view-pdfdraw-program est correctement défini sur mudraw .

  2. signaler si ci-dessus amélioré votre situation.

PS Je n'ai aucune expérience avec les outils pdf .

kmicu
la source
J'ai installé mupdf, et c'est étonnamment rapide. Je lance env HOME = / tmp emacs -Q, emacs sais "toujours en cours de conversion ...", et met un certain temps à convertir. La vitesse est bonne mais la qualité est mauvaise. À ma grande surprise, il n'y a pas de variable nommée doc-view-pdfdraw-program. Si Emacs peut utiliser mupdf, ce serait vraiment génial!
Nick
Êtes-vous sûr d'utiliser 24.4? doc-view-pdfdraw-program devrait être disponible dans ce cas. Le mudraw est- il disponible dans votre coque?
kmicu
Oui, j'utilise Emacs 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawn'est pas disponible, j'ai donc installé. (le package mupdf-tools), je peux donc exécuter mudraw en shell. La vitesse de conversion est encore plus lente et la qualité d'affichage PDF est encore médiocre.
Nick
"À ma grande surprise, il n'y a pas de variable nommée doc-view-pdfdraw-program." sans savoir ce qui est défini dans cette variable, nous ne pouvons pas être sûrs si vous utilisez vraiment mudraw en mode doc-view, c'est peut-être encore gs . "La qualité d'affichage des PDF est encore médiocre" est une déclaration relative et subjective - pouvez-vous mettre à jour votre question avec des captures d'écran? Pour moi, Zathura (avec backend mupdf) a exactement la même qualité et vitesse de rendu PDF que dans Emacs.
kmicu
1
Pour obtenir cette variable, vous devez le charger: (require 'doc-view). Je pense que mudrawc'est la valeur par défaut et le problème est que doc-viewne peut pas tenir toute la page PDF dans tout le tampon. Et je ne suis pas sûr de la qualité.
Tu Do