我在 Ubuntu 系统上安装了emacs23
。AucTeX
我想更改默认的 pdf 查看器emacs
并启用正向和反向搜索。我该怎么做?
我想通过发布答案来分享我使用 emacs 的知识和经验。我仅针对键盘快捷键进行了以下操作。如果可以将其扩展到这样一种方式,我会很高兴:如果我在 emacs 中双击我的源,我的 pdf 就会生成(向前搜索),而当我双击 pdf 中的某些文本时,它会到达源中的大致位置(向后搜索)。它真的很棒,占用空间更少,是我用过的最好的编辑器。
答案1
此过程将设置 Emacs、AUCTeX 和 Okular 查看器来处理集成的正向和反向搜索。(这些说明已在 Debian 系统上测试)
安装 Emacs。要安装 Emacs,请打开终端并输入命令:
sudo apt-get install emacs
安装 AUCTeX。
在 Emacs 中,运行
M-x package install RET auctex RET
。要测试安装是否成功,只需打开
.tex
Emacs 文件,您就会看到有关 LaTeX 的新菜单。安装 Okular。
sudo apt-get install okular
如果尚未完成,请使用 emacs 打开一个 tex 文件。
- 在 LaTeX 菜单中,转到“自定义 AUCTeX”并单击“扩展此菜单”。
- 然后再次转到 LaTeX,“自定义 AUCTeX”,转到“Tex 命令”子菜单并单击包含的“Tex 命令”项。
在 Emacs 中运行
M-x customize-group RET TeX-command RET
您现在位于“Tex 命令组”配置缓冲区中。向下滚动直到到达“Tex Pdf 模式”。其值为关闭(零);单击“切换”按钮以激活此模式。单击“状态”按钮并选择“保存以供将来会话使用”。AUCTeX 现在将使用 编译您的 TeX 文件
pdflatex
。你应该看到类似这样的内容:
对于“保存以供将来使用”,也可以选择带有绿色向下箭头的按钮。完成后,您的信息
.emacs
将会相应更新。仍然在“Tex 命令组”配置缓冲区中,一直向下滚动并单击名为“Tex 视图”的特殊项。在“Tex 视图组”缓冲区中,您需要做两件事:
- 激活 PDF 和 TeX 文件之间的关联模式,并
- 声明一个可以读取这些关联的 PDF 查看器。
要激活关联模式:
- 项“Tex Source Correlate Method”,单击“Value Menu”按钮并选择“synctex”并保存以供将来会话使用,
- 项“Tex Source Correlate Start Server”,选择“始终”并保存,
- 项目“Tex Source Correlate Mode”,将其打开并保存。
要将 Okular 设置为默认 PDF 查看器:
- (笔记:仅当您使用 AUCTeX 11.87 或更低版本时才需要这样做,在这种情况下,您确实应该将软件包升级到较新的版本)项目,
Tex View Program List
然后单击INS
- 姓名:
Okular
- 选择:
Command
- 命令:
okular --unique %o#src:%n%b
- 姓名:
项目
Tex View Program Selection
,然后单击INS
- 选择:
Single predicate
- 单一谓词:
output-pdf
觀看者:
Okular
如果您刚刚将 Okular 添加到 Tex View 程序列表,则可能不会出现此选项。重新启动 Emacs 或
Set for Current Session
使其显示出来。
- 选择:
- (笔记:仅当您使用 AUCTeX 11.87 或更低版本时才需要这样做,在这种情况下,您确实应该将软件包升级到较新的版本)项目,
设置并保存两者以供将来的会话使用。
要配置 Okular:在 Okular 窗口中,转到“设置”菜单,项“配置 Okular”、“编辑器”,选择 Emacs 客户端。
要使用从 Emacs 到 Okular 的正向搜索,只需点击
C-c C-v
工具栏上的眼镜按钮即可调用查看器。Okular 会将其显示在 pdf 的目标行上。要使用从 Okular 到 Emacs 的反向搜索,请确保已启用浏览工具(在 Okular 的工具菜单中);然后只需按下 Shift+鼠标左键单击 pdf 即可。Emacs 将出现并将光标定位在 TeX 源的目标行上。
附注:AUCTeX 还可以使用 跳转到日志文件中生成的错误C-c `
。如果此按键引发错误,请参阅使用 AUCTeX 时出现不明确的错误消息寻找基于 Emacs(即跨平台,适用于主要发行版)的解决方案。
答案2
下列的苏巴姆·索尼说明将添加以下几行到您的.emacs
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(TeX-source-correlate-method (quote synctex))
'(TeX-source-correlate-mode t)
'(TeX-source-correlate-start-server t)
'(TeX-view-program-list (quote (("Okular" "okular --unique %o#src:%n%b"))))
'(TeX-view-program-selection (quote ((engine-omega "dvips and gv") (output-dvi "xdvi") (output-pdf "Okular") (output-html "xdg-open")))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)