Emacs завис при открытии файла PDF


10

Когда я открываю pdf с помощью emacs, он зависает. И я установил pdf-tools, откройте pdf, он снова завис.

Какой процесс подчеркивания, когда emacs открывает PDF? Много ли работы по конвертации? Что я должен сделать, чтобы ускорить это?

  • Emacs 24.4
  • Ubuntu 14.04 LTS
  • Intel 2,4 ГГц х 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-xfrom helm, и он открывает pdf-файл во внешней программе просмотра: zathura . Поскольку процесс конвертации не выполняется, файл быстро открывается. (Так же быстро, как и mupdf. Я думаю, что Затура использует mupdf в качестве своей задней части.)

Есть четыре пункта, которые делают Zathura выдающимся:

  1. Освещение быстро. (Как открыть, так и искать)
  2. Качественный дисплей.
  3. Tab отображает меню раздела / раздела так же, как Adobe Reader.
  4. Хорошая поддержка сочетаний клавиш. (На самом деле, он использует привязку клавиш в стиле vim, что имеет смысл, поскольку нет необходимости переключать режим в программе просмотра PDF).

Обновление 4

Снимок экрана для сравнения качества:

! Слева: Затура; Справа: PDF в Emacs

Я действительно запутался, что Emacs использует для открытого PDF. (Я уже удалил pdf-инструменты)


Разве вы не хотите рассказать нам больше о своей конфигурации Emacs, связанной с файлами PDF?
Нсуками _

@Nsukami_ Спасибо за вопрос. На самом деле у меня нет ничего, связанного с файлом PDF в моей конфигурации. 1. Я открываю pdf с установкой по умолчанию. 2. Установлены pdf-инструменты, откройте pdf.
Ник

Вы можете использовать Emacs в качестве PDF-ридера . Сейчас я использую Emacs для чтения исключительно PDF. Я также использую Ubuntu. Но насколько велик ваш PDF-файл?
Tu Do

4
Очевидно, пришло время emacs -Qснова.
Васамаса

2
Для установки pdf-toolsнеобходимо клонировать репо, запустить ./autogen.shи выполнить стандартную процедуру: ./configure&& make&& sudo make install. Затем он создаст pdf-tools.tar.gzкаталог в каталоге pdf-tools, который вы клонировали. Затем поместите (pdf-tools-install)где-нибудь в вашем файле инициализации. Отныне Emacs будет использовать, pdf-view-mdoeчто дает лучшее качество и лучшую скорость рендеринга.
Ту До

Ответы:


12

Вы должны отключить linum-modeпри открытии файла PDF. В противном случае он повесит ваш Emacs. т.е. только добавить его prog-modeдля редактирования текста:

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

Для установки pdf-tools:

  • Вы должны клонировать хранилище :

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

  • cd pdf-tools

  • Беги make.

  • Затем он создаст pdf-tools-${VERSION}.tarв pdf-toolsкаталоге, который вы клонировали; в Emacs,M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • Затем поместите (pdf-tools-install)где-нибудь в вашем файле инициализации. Отныне Emacs будет использовать, pdf-view-modeчто дает лучшее качество и лучшую скорость рендеринга.

Вот демонстрация с использованием pdf-инструментов . Файл PDF имеет размер 28 МБ, и его открытие заняло несколько секунд. Обратите внимание, что качество изображений в GIF немного ниже по сравнению с фактическим источником, но, как вы можете видеть, текст кристально чистый. Я не записал весь экран, чтобы уменьшить размер GIF, потому что это уже 13 МБ.

Я использую обычный Isearch, используя C-sкак и в других буферах для поиска. Не нажимайте слишком быстро, оставьте около 1 секунды задержки между поисками. Вы должны использовать Isearch для поиска текущей страницы или близлежащих страниц, в основном что-то маленькое. Для поиска по всему документу используйте pdf-occur; команда довольно быстрая. Возможно, вы захотите сохранить результаты поиска для последующего использования (в том же сеансе), переименовав *PDF-Occur*буфер встречающихся по умолчанию в другое имя, чтобы избежать его переопределения при будущих поисках.

Если вы хотите оглавление, в буфере PDF нажмите, oчтобы открыть его outline-mode.


Шляпные подсказки к этой великолепной упаковке (и ответ). Разница огромна, если сравнить ее со средством просмотра по умолчанию.
KookieMonster

(add-hook 'prog-mode-hook 'linum-on)должно быть (add-hook 'prog-mode-hook 'linum-mode)на 24.5.1.
Ян

4

Я использую Emacs для чтения документации, научных работ и книг - все это без проблем .

Мой doc-view-mode использует mudraw (из mupdf ) для рендеринга PDF-файлов, как вы можете убедиться, проверив переменную doc-view-pdfdraw-program :

doc-view-pdfdraw-program - это переменная, определенная в `doc-view.el '. Его значение - "mudraw". Документация: название программы MuPDF для преобразования PDF-файлов в формат PNG. Эта переменная была введена или ее значение по умолчанию было изменено в версии 24.4 Emacs.

По умолчанию режим просмотра документов использует ghotscript для рендеринга, который может быть медленным по сравнению. Вы можете прочитать о переходе от ghostscript gs к mudraw mupdf:

С тех пор я тестировал этот патч и никогда не оглядывался назад, поскольку коммутатор ускорил преобразование pdf-> png в два раза и принес с ним сглаживание.

В вашей ситуации:

  1. установите mupdf и откройте PDF в сеансе emacs без вашей конфигурации, например:

    env HOME=/tmp emacs -Q
    

    и проверьте, правильно ли установлен doc-view-pdfdraw-program для mudraw .

  2. сообщите, если выше, улучшил вашу ситуацию.

PS У меня нет опыта работы с pdf-инструментами .


У меня установлен mupdf, и это удивительно быстро. Я запускаю env HOME = / tmp emacs -Q, emacs говорит, что «все еще конвертирует…», и требует времени для конвертации. Скорость в порядке, но качество оставляет желать лучшего. К моему удивлению, нет переменной с именем doc-view-pdfdraw-program. Если Emacs может использовать mupdf, это будет действительно потрясающе!
Ник

Вы уверены, что используете 24.4? В этом случае должна быть доступна программа doc-view-pdfdraw-program . Есть ли в вашей раковине грязь ?
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 в shell. Скорость конвертирования еще медленнее, а качество отображения в PDF все еще низкое.
Ник

«К моему удивлению, нет переменной с именем doc-view-pdfdraw-program». не зная, что установлено в этой переменной, мы не можем быть уверены, действительно ли вы используете mudraw в режиме doc-view, возможно, это все еще gs . «Качество отображения pdf все еще низкое» - это относительное и субъективное утверждение. Можете ли вы обновить свой вопрос несколькими скриншотами? Для меня Zathura (с бэкендом mupdf) имеет точно такое же качество и скорость рендеринга PDF, как и в Emacs.
kmicu

1
Чтобы получить эту переменную, вы должны загрузить его: (require 'doc-view). Я думаю, что mudrawпо умолчанию, и проблема в том, что doc-viewне может уместить всю страницу PDF в весь буфер. И я не уверен насчет качества.
Ту До
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.