Emacs ถูกหยุดเมื่อเปิดไฟล์ pdf


11

เมื่อฉันเปิด pdf ด้วย emacs มันจะแข็ง และฉันติดตั้งเครื่องมือ PDF, เปิด PDF มันก็แข็งขึ้นอีกครั้ง

กระบวนการขีดเส้นใต้คืออะไรเมื่อ emacs เปิดไฟล์ PDF มีงานแปลงจำนวนมากหรือไม่ ฉันควรทำอย่างไรเพื่อเร่งความเร็ว

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

อัปเดต :

ฉันเพิ่งพบหน้านี้:

"เรียนรู้บทเรียนอย่าเปิด PDF ใน emacs อย่าทำโดยไม่ตั้งใจด้วยซ้ำ"

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

มันเป็นข่าวที่น่าเศร้าสำหรับฉัน! เป็นความคิดที่ดีที่จะดู PDF โดยใช้ Emacs หรือไม่?

อัปเดต 2

ฉันคิดว่ามันเป็นเพราะไฟล์ pdf ของฉันมีขนาดใหญ่เกินไป:

5.7M, 1313 pages

ดังนั้นฉันจึงลองไฟล์ pdf ขนาดเล็ก

402K, 66 pages

มันถูกแช่แข็งอีกครั้ง

อัปเดต 3

ผมเปิดไฟล์ PDF ที่ใช้C-c C-xจากhelmและจะเปิดไฟล์ PDF ในมุมมองภายนอก: zathura เนื่องจากไม่มีกระบวนการแปลงไฟล์จึงเปิดไฟอย่างรวดเร็ว (เร็วเท่าmupdfกันฉันเดาว่า zathura ใช้ mupdf เป็นส่วนท้าย)

มีสี่จุดที่ทำให้ zathura โดดเด่น:

  1. แสงสว่างเร็ว (ทั้งเปิดและค้นหา)
  2. จอแสดงผลคุณภาพสูง
  3. Tab แสดงเมนูบท / ส่วนเช่นเดียวกับ Adobe Reader
  4. รองรับแป้นพิมพ์ลัดที่ดี (อันที่จริงแล้วมันใช้ปุ่มลัดแบบ vim-style ซึ่งเหมาะสมเพราะไม่จำเป็นต้องเปลี่ยนโหมดในโปรแกรมดู pdf

อัปเดต 4

ภาพหน้าจอสำหรับการเปรียบเทียบคุณภาพ:

! ซ้าย: Zathura; ขวา: PDF ใน Emacs

ฉันสับสนในสิ่งที่ Emacs ใช้สำหรับ PDF แบบเปิด (ฉันได้ลบเครื่องมือ pdf ออกไปแล้ว)


คุณไม่ต้องการบอกเราเพิ่มเติมเกี่ยวกับการกำหนดค่า Emacs ของคุณที่เกี่ยวข้องกับไฟล์ pdf หรือไม่?
Nsukami _

@Nsukami_ ขอบคุณที่ถาม จริงๆแล้วฉันไม่มีอะไรเกี่ยวข้องกับไฟล์ pdf ในการกำหนดค่าของฉัน 1. ฉันเปิดไฟล์ PDF พร้อมการติดตั้งเริ่มต้น 2. ติดตั้งเครื่องมือ pdf, เปิด PDF
นิค

คุณสามารถใช้ Emacs เป็นตัวอ่าน PDF ได้ดี ตอนนี้ฉันใช้ Emacs เพื่ออ่าน PDF โดยเฉพาะ ฉันยังใช้ Ubuntu แต่ไฟล์ PDF ของคุณมีขนาดเท่าใด
Tu Do

4
เห็นได้ชัดว่าถึงเวลาemacs -Qอีกแล้ว
wasamasa

2
การติดตั้งpdf-toolsคุณต้องโคลน repo เรียกใช้./autogen.shและปฏิบัติตามขั้นตอนมาตรฐาน: ./configure&& &&make sudo make installจากนั้นจะสร้างpdf-tools.tar.gzในไดเรกทอรีเครื่องมือ pdf ที่คุณโคลน จากนั้นใส่ที่(pdf-tools-install)ใดที่หนึ่งในไฟล์ init ของคุณ จากนี้ไป Emacs จะใช้pdf-view-mdoeซึ่งให้คุณภาพที่ดีขึ้นและความเร็วการแสดงผลที่ดีขึ้น
Tu Do

คำตอบ:


12

คุณควรปิดการใช้งานlinum-modeเมื่อเปิดไฟล์ PDF มิฉะนั้นมันจะแขวน Emac ของคุณ คือเพิ่มลงในprog-modeสำหรับการแก้ไขข้อความเท่านั้น:

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

วิธีติดตั้งpdf-tools:

  • คุณต้องโคลนที่เก็บ :

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

  • cd pdf-tools

  • makeวิ่ง

  • จากนั้นจะสร้าง a pdf-tools-${VERSION}.tarในpdf-toolsไดเรกทอรีที่คุณโคลน ใน EmacsM-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • จากนั้นใส่ที่(pdf-tools-install)ใดที่หนึ่งในไฟล์ init ของคุณ จากนี้ไป Emacs จะใช้pdf-view-modeซึ่งให้คุณภาพที่ดีขึ้นและความเร็วการแสดงผลที่ดีขึ้น

นี่คือการสาธิตการใช้รูปแบบไฟล์ PDF เครื่องมือ ไฟล์ PDF คือ 28MB และใช้เวลาเปิดไม่กี่วินาที โปรดทราบว่าคุณภาพของภาพใน gif นั้นต่ำกว่าคุณภาพจริงเล็กน้อยเมื่อเทียบกับแหล่งที่มาจริง แต่อย่างที่คุณเห็นข้อความนั้นใส ฉันไม่ได้บันทึกทั้งหน้าจอเพื่อลดขนาดของ gif เพราะมันมีขนาด 13MB แล้ว

ฉันใช้ธรรมดา Isearch ใช้C-sในบัฟเฟอร์อื่น ๆ สำหรับการค้นหา อย่ากดเร็วเกินไปปล่อยให้ความล่าช้าระหว่างการค้นหาประมาณ 1 วินาที คุณควรใช้ Isearch เพื่อค้นหาหน้าปัจจุบันหรือหน้าใกล้เคียง ในการค้นหาเอกสารทั้งหมดให้ใช้pdf-occur; คำสั่งค่อนข้างเร็ว คุณอาจต้องการเก็บผลลัพธ์การค้นหาเพื่อใช้ในภายหลัง (ในเซสชั่นเดียวกัน) โดยการเปลี่ยนชื่อ*PDF-Occur*บัฟเฟอร์เริ่มต้นที่เกิดขึ้นเป็นชื่ออื่น ๆ เพื่อหลีกเลี่ยงการถูกแทนที่โดยการค้นหาในอนาคต

หากคุณต้องการตารางของเนื้อหาในรูปแบบไฟล์ PDF กดบัฟเฟอร์เพื่อเปิดในooutline-mode


แนะนำหมวกให้กับแพ็คเกจสุดยอดนี้ (และคำตอบ) ความแตกต่างนั้นมากถ้าคุณเปรียบเทียบกับตัวแสดงเริ่มต้น
KookieMonster

(add-hook 'prog-mode-hook 'linum-on)ควรเป็น(add-hook 'prog-mode-hook 'linum-mode)24.5.1
ยาง

4

ฉันใช้ Emacs สำหรับการอ่านเอกสารเอกสารทางวิทยาศาสตร์และหนังสือ - ทุกที่โดยไม่มีปัญหา

My doc-view-modeใช้mudraw (จากmupdf ) สำหรับการแสดงผล PDF ตามที่คุณเห็นโดยการตรวจสอบตัวแปรdoc-view-pdfdraw-program :

doc-view-pdfdraw-program เป็นตัวแปรที่กำหนดใน `doc-view.el ' ค่าของมันคือเอกสาร "mudraw": ชื่อโปรแกรมของ MuPDF เพื่อแปลงไฟล์ PDF เป็น PNG แนะนำตัวแปรนี้หรือเปลี่ยนแปลงค่าเริ่มต้นในเวอร์ชั่น 24.4 ของ Emacs

โดยค่าเริ่มต้นโหมด doc-view ใช้ gshotscript ของ gs สำหรับการเรนเดอร์ซึ่งสามารถทำการเปรียบเทียบได้ช้า คุณสามารถอ่านเกี่ยวกับการเปลี่ยนจาก gs ของ ghostscript เป็น mrawdf ของ mupdf:

ฉันได้รับการทดสอบแพทช์ที่และไม่เคยหันกลับมามองตั้งแต่สวิตช์เร่งการแปลง pdf-> png โดยปัจจัยที่สองและนำการต่อต้านนามแฝงกับมัน

ในสถานการณ์ของคุณ:

  1. ติดตั้ง mupdf และเปิด PDF ในเซสชัน emacs โดยไม่มีการกำหนดค่าของคุณเช่น:

    env HOME=/tmp emacs -Q
    

    และตรวจสอบว่าโปรแกรมdoc-view-pdfdrawถูกตั้งค่าเป็นMudrawอย่างถูกต้องหรือไม่

  2. รายงานกลับหากสถานการณ์ด้านบนของคุณดีขึ้น

PS ผมมีประสบการณ์ที่ไม่มีรูปแบบไฟล์ PDF เครื่องมือ


ฉันติดตั้ง mupdf และเร็วอย่างน่าประหลาดใจ ฉันรัน env HOME = / tmp emacs -Q, emacs sais "ยังคงแปลง ... " และใช้เวลาสักครู่ในการแปลง ความเร็วดี แต่คุณภาพไม่ดี ความประหลาดใจของฉันไม่มีตัวแปรชื่อ doc-view-pdfdraw-program หาก Emacs สามารถใช้ mupdf นั่นจะยอดเยี่ยมจริงๆ!
นิค

คุณแน่ใจหรือว่าคุณใช้ 24.4 โปรแกรม doc-view-pdfdraw-ควรมีในกรณีดังกล่าว คือmudrawที่มีอยู่ในเปลือกของคุณหรือไม่
kmicu

ใช่ฉันใช้ Emacs 24.4 This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudrawไม่มีประโยชน์ดังนั้นฉันจึงติดตั้ง (แพ็คเกจ mupdf-tools) ดังนั้นฉันสามารถเรียกใช้ mudraw ในเชลล์ได้ ความเร็วในการแปลงช้ากว่าและคุณภาพการแสดงผล pdf ยังคงแย่
นิค

"ด้วยความประหลาดใจของฉันไม่มีตัวแปรชื่อ doc-view-pdfdraw-program" โดยไม่ทราบว่ามีการตั้งค่าในตัวแปรที่เราไม่สามารถแน่ใจว่าคุณจริงๆใช้mudrawในโหมด doc-มุมมองนี้อาจจะยังคงGS "คุณภาพการแสดงผล pdf ยังคงแย่" เป็นคำสั่งที่เกี่ยวข้องและเป็นอัตนัยคุณสามารถอัปเดตคำถามของคุณด้วยภาพหน้าจอบางหน้าได้หรือไม่? สำหรับฉัน Zathura (ที่มีแบ็กเอนด์ mupdf) มีคุณภาพและความเร็วในการเรนเดอร์ PDF เหมือนกับใน Emacs
kmicu

1
(require 'doc-view)ที่จะได้รับตัวแปรที่คุณต้องโหลด: ฉันคิดว่าmudrawเป็นค่าเริ่มต้นและปัญหาคือdoc-viewไม่สามารถใส่หน้า PDF ทั้งหมดลงในบัฟเฟอร์ทั้งหมด และฉันไม่แน่ใจเกี่ยวกับคุณภาพ
Tu Do
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.