在安装时从“自动” 切换docview
到pdf-tools
“自动” pdf-tools
。完成此操作后,Emacs每次尝试在Emacs中打开pdf 时,都会使用pdf-tools
。但是,某些软件包会调用操作系统,或者在Emacs中使用不同的配置来决定是否应使用Emacs或其他程序打开pdf。因此,需要一些“逐个工具”配置,才能使所有Emacs软件包都使用pdf-tools。
如果要在同一Emacs实例中打开pdf,则需要使其在守护程序模式下运行(即,以开头emacs --daemon
),或调用(server-start)
init以使其emacsclient
起作用。
组织模式链接
开箱即用,org-mode
不了解pdf工具。但是,您可以添加对使用org-pdfview打开到pdf文件的组织链接的支持,该链接可作为MELPA的软件包提供。安装完成后,您可以使用以下代码将其激活.emacs
:
(eval-after-load 'org '(require 'org-pdfview))
(add-to-list 'org-file-apps
'("\\.pdf\\'" . (lambda (file link)
(org-pdfview-open link))))
这样做将为通过C-c C-l
,添加链接提供新的完成目标pdfview:
,并支持跳转到特定页面。完整链接使用以下格式:
[[pdfview:/path/to/myfile.pdf::42][My file Description]]
交错模式和PDF注释
交错模式提供了对“注释与组织模式缓冲区并排显示PDF”的支持。这是使用嵌入在pdf中的注释的替代方法(您可以使用pdf工具进行注释)。相反,您最终得到一个带有所有注释的组织模式文件,该文件链接到与注释相关联的pdf页面。
古努斯
正如我在评论中提到的那样,gnus
使用mailcap打开附件。要配置它,您的.mailcap
文件中需要以下内容:
application/pdf; emacsclient %s
网页
EWW也使用mailcap,因此请.mailcap
按照上述Gnus 修改文件。
AucTeX
对于AucTeX,有许多相关选项:
- 通过变量指定查看者
TeX-view-program-selection
:找到相应的条目,output-pdf
然后为值选择“ PDF工具”。
- 要使用SyncTex,您需要:
- set
TeX-source-correlate-mode
,可以通过Mx调用该函数进行交互,也可以通过永久设置该变量M-x customize-variable
。
- 确保
TeX-source-correlate-method
包括(pdf . synctex)
有了这个,从您的tex源文件C-c C-g
应显示pdf的相应部分。
ESS
将变量自定义ess-pdf-viewer-pref
为emacsclient
。
xdg打开
在Linux上,某些软件包将调用外部程序xdg-open
来打开pdf文件。这将使用系统范围的设置来确定要使用的程序。这是系统范围的更改,因此设置完成后,其他程序会将pdf文档发送到Emacs。因此,如果您不希望例如Firefox这样执行操作,则不需要进行这些更改。
设置emacsclient通过xdg-open
以下方式在系统范围内打开pdf :
- 创建一个
~/.local/share/applications/emacsclient.desktop
包含以下内容的文件:
[桌面条目]
名称= Emacs Client
Exec = emacsclient%u
图标= emacs-icon
类型= Application
Terminal = false
MimeType = application / pdf;
xdg-mime default emacsclient.desktop application/pdf
您可以测试xdg-open your-document.pdf
它是否可以使用-应该your-document.pdf
在Emacs中打开。
w3m
w3m首先检查变量w3m-doc-view-content-types
,如果在该变量中看到“ application / pdf”,它将在doc-view中打开pdf。这是一个可自定义的变量,因此请使用自定义界面删除“ application / pdf”条目。
在中没有条目时w3m-doc-view-content-types
,w3m接下来将检查变量中w3m-content-type-alist
是否有与“ application / pdf”匹配的条目。自定义条目以阅读
[INS] [DEL] Type: application/pdf
Regexp: ( ) Not specified
(*) String: \.pdf\'
Viewer: ( ) Not specified
(*) External viewer:
Command: emacsclient
Arguments:
[INS] [DEL] file
[INS]
您还可以使用emacs函数(大概find-file
或类似的功能),而不是外部调用emacsclient
,但我无法弄清楚其语法。