Emacs在打开pdf文件时被冻结


10

当我使用emacs打开pdf时,它被冻结了。然后我安装了pdf-tools,打开pdf,它又被冻结了。

emacs打开pdf时的下划线过程是什么?有很多转换工作吗?我应该怎么做才能加快速度?

  • 埃马克斯24.4
  • Ubuntu 14.04 LTS
  • 英特尔2.4GHz x 2
  • 4G RAM。

更新

我刚刚找到此页面:

“吸取教训。永远不要在emacs中打开pdf。甚至不要无意间这样做。”

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

对我来说真是个不幸的消息!使用Emacs查看pdf并不是一个好主意吗?

更新2

我以为是因为我的pdf文件太大:

5.7M, 1313 pages

所以我尝试了一个小的pdf文件,

402K, 66 pages

它又被冻结了。

更新3

我使用C-c C-xfrom从打开pdf文件helm,并在外部查看器zathura中打开pdf文件。由于没有转换过程,因此该文件可以快速打开照明。(速度非常快mupdf。我猜zathura使用mupdf作为其后端。)

zathura的出色表现有四点:

  1. 快速照明。(同时打开和搜索)
  2. 高品质的显示器。
  3. Tab 显示章节/节菜单,就像Adobe Reader一样。
  4. 良好的键盘快捷键支持。(实际上,它使用vim样式的键绑定,这很有意义,因为不需要在pdf查看器中切换模式。

更新4

进行质量比较的屏幕截图:

左:Zathura;右:Emacs中的PDF

我真的很困惑Emacs用于打开PDF的内容。(我已经删除了pdf工具)


您是否不想告诉我们有关与pdf文件相关的Emacs配置的更多信息?
Nsukami _ 2014年

@Nsukami_感谢您的询问。实际上,我的配置中与pdf文件无关。1.我使用默认安装打开pdf。2.安装pdf工具,打开pdf。
尼克

您可以将Emacs 用作PDF阅读器。我现在使用Emacs专门阅读PDF。我也使用Ubuntu。但是您的PDF文件有多大?
Tu Do

4
显然,该是时候emacs -Q了。
wasamasa 2014年

2
要安装pdf-tools,您必须克隆存储库,运行./autogen.sh并遵循标准过程:./configure&& make&& sudo make install。然后,它将pdf-tools.tar.gz在您克隆的pdf-tools目录中生成一个。然后,将其(pdf-tools-install)放在初始化文件中的某个位置。从现在开始,Emacs将使用pdf-view-mdoe它提供更好的质量和更好的渲染速度。
Tu Do

Answers:


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}.tarpdf-tools您克隆的目录中产生一个;在Emacs中M-x package-install-file RET pdf-tools-${VERSION}.tar RET

  • 然后,将其(pdf-tools-install)放在初始化文件中的某个位置。从现在开始,Emacs将使用pdf-view-mode它提供更好的质量和更好的渲染速度。

这是使用pdf-tools演示。PDF文件为28MB,花费了几秒钟时间才能打开。请注意,与实际来源相比,gif中图像的质量要低一些,但是如您所见,文本非常清晰。我没有记录整个屏幕以减小gif的大小,因为它已经是13MB。

C-s在其他缓冲区中使用as作为普通Isearch 。不要太快按,在两次搜索之间留出大约1秒钟的延迟。您应该使用Isearch搜索当前页面或附近的页面,基本上是很小的东西。要搜索整个文档,请使用pdf-occur;该命令非常快。您可能需要保留搜索结果以供以后使用(在同一会话中),方法是将出现的默认*PDF-Occur*缓冲区重命名为其他名称,以避免以后的搜索覆盖它。

如果需要目录,请在PDF缓冲区中按o来打开它outline-mode


帽子提示这个伟大的包装(和答案)。如果将其与默认查看器进行比较,则差异很大。
KookieMonster 2015年

(add-hook 'prog-mode-hook 'linum-on)应该(add-hook 'prog-mode-hook 'linum-mode)在24.5.1。

4

我正在使用Emacs来阅读文档,科学论文和书籍-所有这些都没有问题

通过检查doc-view-pdfdraw-program变量可以看到,我的doc-view-mode使用mudraw(来自mupdf)来呈现PDF :

doc-view-pdfdraw-program是在doc-view.el中定义的变量。其值为“ mudraw”。文档:MuPDF将PDF文件转换为PNG的程序的名称。在Emacs的24.4版本中引入了此变量,或更改了其默认值。

默认情况下,文档视图模式使用ghotscript的gs进行渲染,相比之下它可能会比较慢。您可以阅读有关从ghostscript的gs切换到mupdf的mudraw的信息:

从那以后,我一直在测试该补丁,并且从不回头,因为该开关将pdf-> png转换速度提高了两倍,并带来了抗锯齿功能。

在您的情况下:

  1. 安装mupdf并在emacs会话中打开PDF,无需进行配置,例如:

    env HOME=/tmp emacs -Q
    

    并检查doc-view-pdfdraw-program是否正确设置为mudraw

  2. 如果上述情况有所改善,请报告。

PS我没有使用pdf-tools的经验。


我已经安装了mupdf,而且速度非常快。我运行env HOME = / tmp emacs -Q,emacs说“还在转换……”,需要一段时间才能转换。速度不错,但是质量很差。令我惊讶的是,没有名为doc-view-pdfdraw-program的变量。如果Emacs可以使用mupdf,那真是太棒了!
尼克

您确定使用24.4吗?在这种情况下,应该可以使用doc-view-pdfdraw-program。是mudraw在您所在的壳呢?
kmicu 2014年

是的,我正在运行Emacs 24.4。This is GNU Emacs 24.4.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) mudraw不可用,所以我安装了。(软件包mupdf-tools),因此我可以在shell中运行mudraw。转换速度甚至更慢,并且pdf显示质量仍然很差。
尼克

“令我惊讶的是,没有名为doc-view-pdfdraw-program的变量。” 在不知道该变量中设置了什么的情况下,我们无法确定您是否真的在doc-view模式下使用mudraw,也许这仍然是gs。“ pdf显示质量仍然很差”是一个相对主观的陈述-您可以使用一些屏幕截图来更新您的问题吗?对我而言,Zuthura(带有mupdf后端)具有与Emacs完全相同的PDF呈现质量和速度。
kmicu 2014年

1
要获取该变量,您必须加载它:(require 'doc-view)。我认为这mudraw是默认设置,问题是doc-view无法将整个PDF页面放入整个缓冲区。而且我不确定质量。
Tu Do
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.