Emacs si è bloccato quando ha aperto il file pdf


10

Quando apro pdf con emacs, si è bloccato. E ho installato strumenti pdf, apri pdf, è stato congelato di nuovo.

Qual è il processo di sottolineatura quando emacs apre un pdf? C'è molto lavoro di conversione? Cosa devo fare per accelerarlo?

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

Aggiornamento :

Ho appena trovato questa pagina:

"Ho imparato una lezione. Non aprire mai un pdf in emacs. Non farlo nemmeno accidentalmente."

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

È una triste notizia per me! Non è una buona idea visualizzare pdf usando Emacs?

Aggiornamento 2

Ho pensato che fosse perché il mio file pdf è troppo grande:

5.7M, 1313 pages

Quindi ho provato un piccolo file pdf,

402K, 66 pages

si è congelato di nuovo.

Aggiornamento 3

Apro il file pdf usando C-c C-xda helm, e apre il file pdf in un visualizzatore esterno: zathura . Poiché non esiste alcun processo di conversione, il file si apre rapidamente. ( mupdfVelocemente. Immagino che zathura utilizzi mupdf come back-end.)

Ci sono quattro punti che rendono zathura eccezionale:

  1. Accensione veloce. (Sia aperto che cerca)
  2. Display di alta qualità.
  3. Tab visualizza il menu capitolo / sezione proprio come Adobe Reader.
  4. Buon supporto per le scorciatoie da tastiera. (In realtà, utilizza la combinazione di tasti in stile vim, che ha senso poiché non è necessario cambiare modalità nel visualizzatore di pdf.

Aggiornamento 4

Schermata per un confronto di qualità:

! Sinistra: Zathura; A destra: PDF in Emacs

Mi sono davvero confuso ciò che Emacs utilizza per aprire PDF. (Ho già rimosso gli strumenti pdf)


Non vuoi dirci di più sulla tua configurazione di Emacs relativa ai file pdf?
Nsukami _

@Nsukami_ Grazie per avermelo chiesto. In realtà non ho nulla correlato al file pdf nella mia configurazione. 1. Apro pdf con l'installazione predefinita. 2. Strumenti pdf installati, apri pdf.
Nick,

Puoi usare Emacs come lettore di PDF bene. Ora uso Emacs per leggere esclusivamente PDF. Uso anche Ubuntu. Ma quanto è grande il tuo file PDF?
Tu Do,

4
Chiaramente, è tempo di emacs -Qnuovo.
Wasamasa,

2
Per installare pdf-tools, è necessario clonare il repository, eseguire ./autogen.she seguire la procedura standard: ./configure&& make&& sudo make install. Quindi, produrrà un pdf-tools.tar.gznella directory pdf-tools che hai clonato. Quindi, metti (pdf-tools-install)da qualche parte nel tuo file init. D'ora in poi, Emacs utilizzerà ciò pdf-view-mdoeche offre una migliore qualità e una migliore velocità di rendering.
Tu Do,

Risposte:


12

È necessario disabilitare linum-modequando si apre un file PDF. Altrimenti bloccherà i tuoi Emacs. cioè aggiungilo solo a prog-modeper modificare il testo:

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

Per installare pdf-tools:

  • Devi clonare il repository :

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

  • cd pdf-tools

  • Corri make.

  • Quindi, produrrà un pdf-tools-${VERSION}.tarnella pdf-toolsdirectory che hai clonato; in Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Quindi, metti (pdf-tools-install)da qualche parte nel tuo file init. D'ora in poi, Emacs utilizzerà ciò pdf-view-modeche offre una migliore qualità e una migliore velocità di rendering.

Ecco una demo usando pdf-tools . Il file PDF è di 28 MB e ci sono voluti alcuni secondi per aprirlo. Nota che la qualità delle immagini nella gif è leggermente inferiore rispetto alla fonte reale, ma come puoi vedere il testo è cristallino. Non ho registrato l'intero schermo per ridurre le dimensioni della gif, perché è già di 13 MB.

Uso Isearch semplice usando C-scome in altri buffer per la ricerca. Non premere troppo velocemente, lasciare un ritardo di circa 1 secondo tra le ricerche. È necessario utilizzare Isearch per cercare la pagina corrente o le pagine vicine, in sostanza qualcosa di piccolo. Per cercare l'intero documento, utilizzare pdf-occur; il comando è abbastanza veloce. È possibile che si desideri conservare i risultati della ricerca per un uso successivo (nella stessa sessione) rinominando il *PDF-Occur*buffer predefinito si verifica con un altro nome per evitare che venga sovrascritto da ricerche future.

Se si desidera il sommario, nel buffer PDF premere oper aprirlo outline-mode.


Suggerimenti per questo fantastico pacchetto (e risposta). La differenza è enorme se la si confronta con il visualizzatore predefinito.
KookieMonster,

(add-hook 'prog-mode-hook 'linum-on)dovrebbe essere (add-hook 'prog-mode-hook 'linum-mode)il 24.5.1.
Yang,

4

Sto usando Emacs per leggere documentazione, articoli scientifici e libri, tutto senza problemi .

La mia modalità doc-view utilizza mudraw (da mupdf ) per il rendering di PDF, come puoi vedere controllando la variabile doc-view-pdfdraw-program :

doc-view-pdfdraw-program è una variabile definita in `doc-view.el '. Il suo valore è "mudraw" Documentazione: nome del programma MuPDF per convertire i file PDF in PNG. Questa variabile è stata introdotta o il suo valore predefinito è stato modificato nella versione 24.4 di Emacs.

Per impostazione predefinita, la modalità di visualizzazione documenti utilizza gs di ghotscript per il rendering, che può essere lento in confronto. Puoi leggere di passare dal gs di ghostscript al mudraw di mupdf:

Da allora ho provato quella patch e non ho mai guardato indietro da quando lo switch ha accelerato la conversione pdf-> png di un fattore due e ha portato l'antialiasing con essa.

Nella tua situazione:

  1. installa mupdf e apri PDF in una sessione emacs senza la tua configurazione, ad esempio:

    env HOME=/tmp emacs -Q
    

    e controlla se il programma doc-view-pdfdraw è impostato correttamente su mudraw .

  2. riferire se sopra ha migliorato la tua situazione.

PS Non ho esperienza con gli strumenti pdf .


Ho installato mupdf ed è sorprendentemente veloce. Corro env HOME = / tmp emacs -Q, emacs sais "sta ancora convertendo ..." e impiega un po 'di tempo per la conversione. La velocità è buona ma la qualità è scadente. Con mia sorpresa, non esiste una variabile chiamata doc-view-pdfdraw-program. Se Emacs può usare mupdf, sarebbe davvero fantastico!
Nick,

Sei sicuro di utilizzare 24.4? in questo caso dovrebbe essere disponibile il programma doc-view-pdfdraw- . Mudraw è disponibile nella tua shell?
kmicu,

Sì, sto eseguendo Emacs 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawnon è disponibile, quindi ho installato. (il pacchetto mupdf-tools), quindi posso eseguire mudraw in shell. La velocità di conversione è ancora più lenta e la qualità di visualizzazione del pdf è ancora scarsa.
Nick,

"Con mia sorpresa, non esiste una variabile chiamata doc-view-pdfdraw-program." senza sapere cosa è impostato in quella variabile non possiamo essere sicuri se stai davvero usando mudraw in modalità doc-view, forse questo è ancora gs . "La qualità di visualizzazione del pdf è ancora scarsa" è un'affermazione relativa e soggettiva: puoi aggiornare la tua domanda con alcuni screenshot? Per me Zathura (con backend mupdf) ha esattamente la stessa qualità e velocità di rendering PDF di Emacs.
kmicu,

1
Per ottenere tale variabile, bisogna caricarlo: (require 'doc-view). Penso che mudrawsia l'impostazione predefinita e il problema è che doc-viewnon è possibile adattare l'intera pagina PDF all'intero buffer. E non sono sicuro della qualità.
Tu Do,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.