Emacs zamarzł po otwarciu pliku pdf

11

Kiedy otwieram pdf za pomocą emacsa, został zamrożony. Zainstalowałem narzędzia pdf, otwórz pdf, znów się zamroził.

Jaki jest proces podkreślania, gdy emacs otwiera plik pdf? Czy jest dużo pracy związanej z konwersją? Co powinienem zrobić, aby to przyspieszyć?

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

Aktualizacja :

Właśnie znalazłem tę stronę:

„nauczyłem się lekcji. Nigdy nie otwieraj pdf w emacs. Nigdy nie rób tego przypadkowo”.

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

To dla mnie smutna wiadomość! Czy to nie jest dobry pomysł, aby przeglądać pdf przy użyciu Emacsa?

Aktualizacja 2

Myślałem, że to dlatego, że mój plik pdf jest zbyt duży:

5.7M, 1313 pages

Więc wypróbowałem mały plik pdf,

402K, 66 pages

znowu zamarzło.

Aktualizacja 3

Otwieram plik pdf za pomocą C-c C-xz helmi otwiera on plik pdf w zewnętrznej przeglądarce: zathura . Ponieważ nie ma procesu konwersji, plik otwiera się szybko. (Tak szybko jak mupdf. Myślę, że Zathura używa mupdf jako zaplecza.)

Zathura wyróżnia się czterema punktami:

  1. Szybkie oświetlenie. (Zarówno otwieranie, jak i wyszukiwanie)
  2. Wyświetlacz wysokiej jakości.
  3. Tab wyświetla menu rozdziału / sekcji podobnie jak Adobe Reader.
  4. Dobra obsługa skrótów klawiaturowych. (W rzeczywistości używa skrótów klawiszowych w stylu vim, co ma sens, ponieważ nie ma potrzeby przełączania trybu w przeglądarce pdf.

Aktualizacja 4

Zrzut ekranu dla porównania jakości:

! Po lewej: Zathura; Po prawej: PDF w Emacsie

Naprawdę zdezorientowałem się, czego Emacs używa do otwierania plików PDF. (Już usunąłem narzędzia pdf)

Nacięcie
źródło
Nie chcesz nam powiedzieć więcej o konfiguracji Emacsa związanej z plikami pdf?
Nsukami _
@Nsukami_ Dziękujemy za pytanie. Właściwie nie mam nic związanego z plikiem pdf w mojej konfiguracji. 1. Otwieram pdf z domyślną instalacją. 2. Zainstalowane narzędzia pdf, otwórz pdf.
Nick
Możesz używać Emacsa jako czytnika plików PDF . Teraz używam Emacsa wyłącznie do czytania plików PDF. Używam również Ubuntu. Ale jak duży jest twój plik PDF?
Tu Do
4
Najwyraźniej czas emacs -Qznów.
wasamasa
2
Aby zainstalować pdf-tools, musisz sklonować repozytorium, uruchomić ./autogen.shi postępować zgodnie ze standardową procedurą: ./configure&& make&& sudo make install. Następnie wyświetli pdf-tools.tar.gzsklonowany katalog pdf-tools. Następnie umieść (pdf-tools-install)gdzieś w swoim pliku init. Od tej pory będzie używany Emacs, pdf-view-mdoektóry zapewnia lepszą jakość i lepszą szybkość renderowania.
Tu Do

Odpowiedzi:

12

Należy wyłączyć linum-modepodczas otwierania pliku PDF. W przeciwnym razie zawiesi twojego Emacsa. tzn. dodaj go tylko do prog-modeedycji tekstu:

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

Aby zainstalować pdf-tools:

  • Musisz sklonować repozytorium :

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

  • cd pdf-tools

  • Uruchom make.

  • Następnie będzie produkować pdf-tools-${VERSION}.tarw pdf-toolskatalogu sklonowanego; w Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Następnie umieść (pdf-tools-install)gdzieś w swoim pliku init. Od tej pory będzie używany Emacs, pdf-view-modektóry zapewnia lepszą jakość i lepszą szybkość renderowania.

Oto demo z narzędziami pdf . Plik PDF ma rozmiar 28 MB i jego otwarcie zajęło kilka sekund. Zwróć uwagę, że jakość obrazów w gifie jest nieco niższa w porównaniu z faktycznym źródłem, ale jak widać, tekst jest krystalicznie czysty. Nie nagrałem całego ekranu, aby zmniejszyć rozmiar gif, ponieważ ma on już 13 MB.

Do wyszukiwania używam zwykłego Isearch, używając C-sinnych buforów. Nie naciskaj zbyt szybko, pozostaw około 1 sekundy opóźnienia między wyszukiwaniem. Powinieneś użyć Isearch do przeszukiwania bieżącej strony lub pobliskich stron, w zasadzie czegoś małego. Aby przeszukać cały dokument, użyj pdf-occur; polecenie jest dość szybkie. Możesz zachować wyniki wyszukiwania do późniejszego wykorzystania (w tej samej sesji), zmieniając nazwę domyślnego *PDF-Occur*bufora wystąpienia na inną nazwę, aby uniknąć zastąpienia go przez przyszłe wyszukiwania.

Jeśli chcesz spisu treści, w buforze PDF naciśnij, oaby go otworzyć outline-mode.

Do zrobienia
źródło
Porady na temat tego wspaniałego pakietu (i odpowiedzi). Różnica jest ogromna, jeśli porównasz ją z domyślną przeglądarką.
KookieMonster
(add-hook 'prog-mode-hook 'linum-on)powinien być (add-hook 'prog-mode-hook 'linum-mode)24.5.1.
Yang
4

Używam Emacsa do czytania dokumentacji, artykułów naukowych i książek - wszystko to bez problemów .

Mój tryb doc-view używa mudraw (z mupdf ) do renderowania plików PDF, jak widać, sprawdzając zmienną doc-view-pdfdraw-program :

doc-view-pdfdraw-program to zmienna zdefiniowana w `doc-view.el '. Jego wartość to „mudraw” Dokumentacja: Nazwa programu MuPDF do konwersji plików PDF na PNG. Ta zmienna została wprowadzona lub jej wartość domyślna została zmieniona w wersji 24.4 Emacsa.

Domyślnie tryb doc-view używa gs ghotscript do renderowania, co może być powolne w porównaniu. Możesz przeczytać o przejściu z gs ghostscript na mudraw mupdf:

Od tamtej pory testowałem tę łatkę i nigdy nie oglądałem się za siebie, ponieważ przełącznik przyspieszył konwersję pdf-> png dwa razy i przyniósł ze sobą wygładzanie krawędzi.

W twojej sytuacji:

  1. zainstaluj mupdf i otwórz PDF w sesji emacs bez twojej konfiguracji, np .:

    env HOME=/tmp emacs -Q
    

    i sprawdź, czy program doc-view-pdfdraw-program jest poprawnie ustawiony na mudraw .

  2. zgłoś się, jeśli powyżej poprawiłeś swoją sytuację.

PS Nie mam doświadczenia z narzędziami pdf .

kmicu
źródło
Mam zainstalowany mupdf i jest on zaskakująco szybki. Uruchamiam env HOME = / tmp emacs -Q, emacs sais „wciąż konwertuje ...” i konwersja zajmuje trochę czasu. Prędkość jest w porządku, ale jakość jest niska. Ku mojemu zaskoczeniu nie ma zmiennej o nazwie doc-view-pdfdraw-program. Jeśli Emacs może korzystać z mupdf, byłoby to naprawdę wspaniałe!
Nick
Czy na pewno używasz 24.4? W takim przypadku powinien być dostępny program doc-view-pdfdraw-program . Czy mudraw jest dostępny w twojej skorupie?
kmicu,
Tak, używam Emacsa 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawnie jest dostępny, więc zainstalowałem. (pakiet mupdf-tools), dzięki czemu mogę uruchomić mudraw w powłoce. Szybkość konwersji jest jeszcze wolniejsza, a jakość wyświetlania pdf jest nadal niska.
Nick
„Ku mojemu zdziwieniu nie ma zmiennej o nazwie doc-view-pdfdraw-program.” nie wiedząc, co jest ustawione w tej zmiennej, nie możemy być pewni, czy naprawdę używasz mudraw w trybie przeglądania dokumentów, być może wciąż jest to gs . „Jakość wyświetlania pdf jest nadal słaba” to stwierdzenie względne i subiektywne - czy możesz zaktualizować swoje pytanie za pomocą zrzutów ekranu? Dla mnie Zathura (z backendem mupdf) ma dokładnie taką samą jakość i szybkość renderowania PDF jak w Emacsie.
kmicu,
1
Aby uzyskać tę zmienną, trzeba je załadować: (require 'doc-view). Myślę, że mudrawjest to ustawienie domyślne i problem polega na tym, że doc-viewnie można zmieścić całej strony PDF w całym buforze. I nie jestem pewien co do jakości.
Tu Do