Emacs wurde beim Öffnen der PDF-Datei eingefroren

10

Wenn ich PDF mit Emacs öffne, wird es eingefroren. Und ich habe pdf-tools installiert, pdf geöffnet, es wurde wieder eingefroren.

Was ist der Unterstreichungsprozess, wenn Emacs ein PDF öffnen? Gibt es viel Konvertierungsarbeit? Was soll ich tun, um es zu beschleunigen?

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

Update :

Ich habe gerade diese Seite gefunden:

"habe eine Lektion gelernt. Öffne niemals ein PDF in Emacs. Mach es niemals versehentlich."

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

Es ist eine traurige Nachricht für mich! Ist es nicht eine gute Idee, PDF mit Emacs anzuzeigen?

Update 2

Ich dachte, das liegt daran, dass meine PDF-Datei zu groß ist:

5.7M, 1313 pages

Also habe ich eine kleine PDF-Datei ausprobiert,

402K, 66 pages

es wurde wieder gefroren.

Update 3

Ich öffne die PDF-Datei mit C-c C-xfrom helmund sie öffnet die PDF-Datei in einem externen Viewer: zathura . Da kein Konvertierungsprozess stattfindet, wird die Datei schnell geöffnet. (So ​​schnell wie mupdf. Ich denke, Zathura verwendet Mupdf als Backend.)

Es gibt vier Punkte, die Zathura auszeichnen:

  1. Lichtschnell. (Sowohl offen als auch suchen)
  2. Hochwertiges Display.
  3. Tab Zeigt das Kapitel- / Abschnittsmenü genau wie Adobe Reader an.
  4. Gute Unterstützung für Tastaturkürzel. (Tatsächlich wird eine Tastenkombination im Vim-Stil verwendet, was sinnvoll ist, da der Modus im PDF-Viewer nicht gewechselt werden muss.

Update 4

Screenshot zum Qualitätsvergleich:

! Links: Zathura; Rechts: PDF in Emacs

Ich war wirklich verwirrt darüber, was Emacs für Open PDF verwendet. (Ich habe bereits PDF-Tools entfernt)

Nick
quelle
Möchten Sie uns nicht mehr über Ihre Emacs-Konfiguration in Bezug auf PDF-Dateien erzählen?
Nsukami _
@Nsukami_ Danke, dass du gefragt hast. Eigentlich habe ich in meiner Konfiguration nichts mit PDF-Dateien zu tun. 1. Ich öffne PDF mit Standardinstallation. 2. Installierte PDF-Tools, öffnen Sie PDF.
Nick
Sie können Emacs als PDF-Reader verwenden . Ich benutze jetzt Emacs, um ausschließlich PDF zu lesen. Ich benutze auch Ubuntu. Aber wie groß ist Ihre PDF-Datei?
Tu Do
4
Klar, es ist Zeit für emacs -Qwieder.
Wasamasa
2
Um zu installieren pdf-tools, müssen Sie das Repo klonen, ausführen ./autogen.shund das Standardverfahren befolgen: ./configure&& make&& sudo make install. Anschließend wird pdf-tools.tar.gzim Verzeichnis pdf-tools, das Sie geklont haben , ein Verzeichnis erstellt. Dann legen Sie (pdf-tools-install)irgendwo in Ihrer Init-Datei. Von nun an wird Emacs verwendet, pdf-view-mdoewas eine bessere Qualität und eine bessere Rendergeschwindigkeit bietet.
Tu Do

Antworten:

12

Sie sollten deaktivieren, linum-modewenn Sie eine PDF-Datei öffnen. Andernfalls wird Ihr Emacs hängen. dh nur prog-modezum Bearbeiten von Text hinzufügen :

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

So installieren Sie pdf-tools:

  • Sie müssen das Repository klonen :

    Git-Klon https://github.com/politza/pdf-tools.git

  • cd pdf-tools

  • Ausführen make.

  • Dann wird pdf-tools-${VERSION}.tarin dem von pdf-toolsIhnen geklonten Verzeichnis ein erstellt. in Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Dann legen Sie (pdf-tools-install)irgendwo in Ihrer Init-Datei. Von nun an wird Emacs verwendet, pdf-view-modewas eine bessere Qualität und eine bessere Rendergeschwindigkeit bietet.

Hier ist eine Demo mit PDF-Tools . Die PDF-Datei ist 28 MB groß und das Öffnen dauerte einige Sekunden. Beachten Sie, dass die Qualität der Bilder im GIF im Vergleich zur tatsächlichen Quelle etwas geringer ist, aber wie Sie sehen können, ist der Text kristallklar. Ich habe nicht den gesamten Bildschirm aufgenommen, um das GIF zu verkleinern, da es bereits 13 MB groß ist.

Ich verwende die einfache Suche C-swie in anderen Puffern für die Suche. Drücken Sie nicht zu schnell, lassen Sie zwischen den Suchvorgängen etwa 1 Sekunde Zeit. Sie sollten Isearch verwenden, um aktuelle Seiten oder Seiten in der Nähe zu durchsuchen, im Grunde genommen etwas Kleines. Um das gesamte Dokument zu suchen, verwenden pdf-occur; Der Befehl ist ziemlich schnell. Möglicherweise möchten Sie die Suchergebnisse für eine spätere Verwendung (in derselben Sitzung) aufbewahren, indem Sie den aufgetretenen Standardpuffer *PDF-Occur*in einen anderen Namen umbenennen , um zu vermeiden, dass er durch zukünftige Suchvorgänge überschrieben wird.

Wenn Sie das Inhaltsverzeichnis möchten, drücken oSie im PDF-Puffer , um es zu öffnen outline-mode.

Tu Do.
quelle
Hut Tipps zu diesem tollen Paket (und Antwort). Der Unterschied ist groß, wenn Sie ihn mit dem Standard-Viewer vergleichen.
KookieMonster
(add-hook 'prog-mode-hook 'linum-on)sollte (add-hook 'prog-mode-hook 'linum-mode)am 24.5.1 sein.
Yang
4

Ich benutze Emacs zum Lesen von Dokumentationen, wissenschaftlichen Artikeln und Büchern - alles ohne Probleme .

Mein Doc-View-Modus verwendet Mudraw (aus mupdf ) zum Rendern von PDFs, wie Sie anhand der Programmvariablen doc-view-pdfdraw sehen können:

doc-view-pdfdraw-program ist eine in `doc-view.el 'definierte Variable. Sein Wert ist "mudraw". Dokumentation: Name des MuPDF-Programms zum Konvertieren von PDF-Dateien in PNG. Diese Variable wurde in Version 24.4 von Emacs eingeführt oder ihr Standardwert wurde geändert.

Standardmäßig verwendet der Doc-View-Modus die gs von ghotscript zum Rendern, was im Vergleich langsam sein kann. Sie können lesen über Schalter von ghost des gs mupdf des mudraw:

Ich habe diesen Patch seitdem getestet und habe nie mehr zurückgeschaut, seit der Switch die PDF-> PNG-Konvertierung um den Faktor zwei beschleunigt und Anti-Aliasing mit sich gebracht hat.

In Ihrer Situation:

  1. Installieren Sie mupdf und öffnen Sie PDF in einer Emacs-Sitzung ohne Ihre Konfiguration, z.

    env HOME=/tmp emacs -Q
    

    und überprüfen Sie, ob das Programm doc-view-pdfdraw richtig auf mudraw eingestellt ist .

  2. Melden Sie sich zurück, wenn oben Ihre Situation verbessert wurde.

PS Ich habe keine Erfahrung mit PDF-Tools .

kmicu
quelle
Ich habe mupdf installiert und es ist überraschend schnell. Ich führe env HOME = / tmp emacs -Q aus, emacs sagt "konvertiert noch ..." und es dauert eine Weile, bis es konvertiert. Die Geschwindigkeit ist in Ordnung, aber die Qualität ist schlecht. Zu meiner Überraschung gibt es keine Variable namens doc-view-pdfdraw-program. Wenn Emacs mupdf verwenden kann, wäre das wirklich großartig!
Nick
Sind Sie sicher, dass Sie 24.4 verwenden? In diesem Fall sollte das Programm doc-view-pdfdraw verfügbar sein. Ist Mudraw in Ihrer Shell verfügbar?
kmicu
Ja, ich verwende Emacs 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawist nicht verfügbar, also habe ich installiert. (das Paket mupdf-tools), damit ich mudraw in shell ausführen kann. Die Konvertierungsgeschwindigkeit ist noch langsamer und die Qualität der PDF-Anzeige ist immer noch schlecht.
Nick
"Zu meiner Überraschung gibt es keine Variable namens doc-view-pdfdraw-program." Ohne zu wissen, was in dieser Variablen festgelegt ist, können wir nicht sicher sein, ob Sie Mudraw wirklich im Doc-View-Modus verwenden. Vielleicht ist dies immer noch gs . "Die Qualität der PDF-Anzeige ist immer noch schlecht" ist eine relative und subjektive Aussage. Können Sie Ihre Frage mit einigen Screenshots aktualisieren? Für mich hat Zathura (mit Mupdf-Backend) genau die gleiche PDF-Renderqualität und -geschwindigkeit wie in Emacs.
kmicu
1
Um diese Variable zu erhalten, müssen Sie sie laden : (require 'doc-view). Ich denke, das mudrawist die Standardeinstellung und das Problem ist, dass doc-viewnicht die gesamte PDF-Seite in den gesamten Puffer passen kann. Und ich bin mir nicht sicher über die Qualität.
Tu Do