Emacs menjadi beku ketika membuka file pdf

10

Ketika saya membuka pdf dengan emacs, itu menjadi beku. Dan saya menginstal alat-alat pdf, buka pdf, membeku lagi.

Apa proses yang digarisbawahi ketika emacs membuka pdf? Apakah ada banyak pekerjaan konversi? Apa yang harus saya lakukan untuk mempercepatnya?

  • Emacs 24.4
  • Ubuntu 14,04 LTS
  • Intel 2.4GHz x 2
  • RAM 4G.

Perbarui :

Aku baru saja menemukan halaman ini:

"Belajar pelajaran. Jangan pernah membuka pdf di emacs. Bahkan tidak pernah melakukannya secara tidak sengaja."

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

Ini berita buruk bagi saya! Bukankah ide bagus untuk melihat pdf menggunakan Emacs?

Perbarui 2

Saya pikir itu karena file pdf saya terlalu besar:

5.7M, 1313 pages

Jadi saya mencoba file pdf kecil,

402K, 66 pages

itu membeku lagi.

Perbarui 3

Saya membuka file pdf C-c C-xdari helm, dan membuka file pdf di penampil eksternal: zathura . Karena tidak ada proses konversi, file membuka pencahayaan dengan cepat. (Secepat mupdf. Saya kira zathura menggunakan mupdf sebagai ujungnya.)

Ada empat poin yang membuat zathura luar biasa:

  1. Pencahayaan cepat. (Keduanya terbuka dan mencari)
  2. Layar berkualitas tinggi.
  3. Tab menampilkan menu bab / bagian seperti Adobe Reader.
  4. Dukungan pintasan keyboard yang baik. (Sebenarnya, ia menggunakan vim-style keybinding, yang masuk akal karena tidak perlu beralih mode di pdf viewer.

Perbarui 4

Tangkapan layar untuk perbandingan kualitas:

! Kiri: Zathura; Kanan: PDF dalam Emacs

Saya benar-benar bingung apa yang digunakan Emacs untuk membuka PDF. (Saya sudah menghapus pdf-tools)

Nick
sumber
Apakah Anda tidak ingin memberi tahu kami lebih lanjut tentang konfigurasi Emacs Anda terkait dengan file pdf?
Nsukami _
@Nsukami_ Terima kasih telah bertanya. Sebenarnya saya tidak ada hubungannya dengan file pdf dalam konfigurasi saya. 1. Saya membuka pdf dengan instalasi default. 2. Menginstal pdf-tools, buka pdf.
Nick
Anda dapat menggunakan Emacs sebagai pembaca PDF dengan baik. Saya sekarang menggunakan Emacs untuk membaca PDF secara eksklusif. Saya juga menggunakan Ubuntu. Tapi seberapa besar file PDF Anda?
Tu Do
4
Jelas, sudah waktunya untuk emacs -Qlagi.
wasamasa
2
Untuk menginstal pdf-tools, Anda harus mengkloning repo, jalankan ./autogen.shdan ikuti prosedur standar: ./configure&& make&& sudo make install. Kemudian, itu akan menghasilkan pdf-tools.tar.gzdirektori pdf-tools yang Anda kloning. Lalu, letakkan (pdf-tools-install)suatu tempat di file init Anda. Mulai sekarang, Emacs akan digunakan pdf-view-mdoeyang memberikan kualitas yang lebih baik dan kecepatan rendering yang lebih baik.
Tu Do

Jawaban:

12

Anda harus menonaktifkan linum-modeketika membuka file PDF. Kalau tidak, itu akan menggantung Emacs Anda. yaitu hanya menambahkannya prog-modeuntuk mengedit teks:

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

Untuk menginstal pdf-tools:

  • Anda harus mengkloning repositori :

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

  • cd pdf-tools

  • Lari make.

  • Kemudian, itu akan menghasilkan pdf-tools-${VERSION}.tardalam pdf-toolsdirektori yang Anda kloning; di Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Lalu, letakkan (pdf-tools-install)suatu tempat di file init Anda. Mulai sekarang, Emacs akan digunakan pdf-view-modeyang memberikan kualitas yang lebih baik dan kecepatan rendering yang lebih baik.

Berikut ini adalah demo menggunakan alat pdf . File PDF berukuran 28MB dan butuh beberapa detik untuk membukanya. Perhatikan bahwa kualitas gambar dalam gif sedikit lebih rendah dibandingkan dengan sumber sebenarnya, tetapi seperti yang Anda lihat, teksnya sangat jelas. Saya tidak merekam seluruh layar untuk mengurangi ukuran gif, karena sudah 13MB.

Saya menggunakan Isearch biasa menggunakan C-sseperti dalam buffer lain untuk mencari. Jangan menekan terlalu cepat, sisakan penundaan 1 detik di antara pencarian. Anda harus menggunakan Isearch untuk mencari halaman saat ini atau halaman terdekat, pada dasarnya sesuatu yang kecil. Untuk mencari seluruh dokumen, gunakan pdf-occur; perintahnya cukup cepat. Anda mungkin ingin menyimpan hasil pencarian untuk digunakan nanti (dalam sesi yang sama) dengan mengganti nama *PDF-Occur*buffer default yang terjadi ke beberapa nama lain untuk menghindari itu ditimpa oleh pencarian di masa depan.

Jika Anda ingin daftar isi, dalam buffer PDF tekan ountuk membukanya outline-mode.

Tu Do
sumber
Berikan tips untuk paket hebat ini (dan jawab). Perbedaannya sangat besar jika Anda membandingkannya dengan penampil default.
KookieMonster
(add-hook 'prog-mode-hook 'linum-on)harus (add-hook 'prog-mode-hook 'linum-mode)pada 24.5.1.
Yang
4

Saya menggunakan Emacs untuk membaca dokumentasi, karya ilmiah, dan buku - semua itu tanpa masalah .

Saya doc-view-mode penggunaan mudraw (dari mupdf ) untuk rendering PDF seperti yang Anda lihat dengan memeriksa doc-view-pdfdraw-Program variabel:

doc-view-pdfdraw-program adalah variabel yang didefinisikan dalam `doc-view.el '. Nilainya adalah Dokumentasi "mudraw": Nama program MuPDF untuk mengonversi file PDF ke PNG. Variabel ini diperkenalkan, atau nilai standarnya diubah, dalam versi 24.4 dari Emacs.

Secara default, mode tampilan dokumen menggunakan ghotscript's gs untuk rendering yang lambat dibandingkan. Anda dapat membaca tentang beralih dari ghostscript's gs ke mupdf's mudraw:

Sejak itu saya telah menguji tambalan itu dan tidak pernah melihat ke belakang sejak saklar mempercepat konversi pdf-> png dengan faktor dua dan membawa anti-aliasing dengannya.

Dalam situasi Anda:

  1. instal mupdf dan buka PDF dalam sesi emacs tanpa konfigurasi Anda, mis:

    env HOME=/tmp emacs -Q
    

    dan periksa apakah program doc-view-pdfdraw diatur dengan benar ke mudraw .

  2. laporkan kembali jika di atas memperbaiki situasi Anda.

PS Saya tidak punya pengalaman dengan pdf-tools .

kmicu
sumber
Saya telah menginstal mupdf, dan ini sangat cepat. Saya menjalankan env HOME = / tmp emacs -Q, emacs sais "masih mengkonversi ...", dan perlu beberapa saat untuk mengonversi. Kecepatannya bagus tapi kualitasnya buruk. Yang mengejutkan saya, tidak ada variabel bernama doc-view-pdfdraw-program. Jika Emacs dapat menggunakan mupdf, itu akan sangat hebat!
Nick
Apakah Anda yakin menggunakan 24,4? doc-view-pdfdraw-program harus tersedia dalam kasus tersebut. Apakah mudraw tersedia di shell Anda?
kmicu
Ya, saya menjalankan Emacs 24.4. This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawtidak tersedia, jadi saya menginstal. (paket mupdf-tools), jadi saya bisa menjalankan mudraw di shell. Kecepatan konversi bahkan lebih lambat, dan kualitas tampilan pdf masih buruk.
Nick
"Yang mengejutkan saya, tidak ada variabel bernama doc-view-pdfdraw-program." tanpa mengetahui apa yang diatur dalam variabel itu, kami tidak dapat memastikan apakah Anda benar-benar menggunakan mudraw dalam mode doc-view, mungkin ini masih gs . "Kualitas tampilan pdf masih buruk" adalah pernyataan yang relatif dan subyektif - dapatkah Anda memperbarui pertanyaan dengan beberapa tangkapan layar? Bagi saya Zathura (dengan backend mupdf) memiliki kualitas dan kecepatan rendering PDF yang persis sama seperti di Emacs.
kmicu
1
Untuk mendapatkan variabel itu, Anda harus memuatnya: (require 'doc-view). Saya pikir mudrawini default dan masalahnya adalah doc-viewtidak dapat memuat seluruh halaman PDF ke dalam buffer keseluruhan. Dan saya tidak yakin dengan kualitasnya.
Tu Do