如何设置 Okular 以使用 TeX Live 2011 进行向前/向后搜索?(不再简单)

如何设置 Okular 以使用 TeX Live 2011 进行向前/向后搜索?(不再简单)

我在 MacBook Air 4,1 上使用 Xbuntu 12.04。我安装了 Okular 版本 0.14.3 和 TeX Live 2011。

我曾经使用 synctex 完美地进行正向(从 .tex 到 .pdf)和反向(从 .pdf 到 .tex)搜索/同步。由于某种原因,它停止工作了(可能是因为我最初使用的是 TeX Live 2009,这是 Ubuntu 下的默认设置)。正向和反向搜索都不再起作用了。

有趣的是,反向搜索仍然适用于我拥有的特定 .pdf(旧的、未更改的)。但是当我点击 Okular 中的文本选择工具时,它随后停止工作。我甚至重新编译了 .tex,但仍然不起作用。

这是以前有效的旧设置:

旧设置

这取自使用 Emacs 设置 SyncTeX

1)设置 Okular:Okular -> 设置 -> 编辑器 -> 更改为 Emacs 客户端

2)输入~/.emacs:

(defun Okular-make-url () (concat
               "file://"
               (expand-file-name (funcall file (TeX-output-extension) t)
                         (file-name-directory (TeX-master-file)))
               "#src:"
               (TeX-current-line)
               (expand-file-name (TeX-master-directory))
               "./"
               (TeX-current-file-name-master-relative)))
(add-hook 'LaTeX-mode-hook '(lambda ()
                  (add-to-list 'TeX-expand-list
                       '("%u" Okular-make-url))))
(setq TeX-view-program-list
     '(("Okular" "okular --unique %u")))
(setq TeX-view-program-selection '((output-pdf "Okular") (output-dvi "Okular")))

问题

问题很简单:如何正确设置 Okular(和 ~/.emacs)以使用 synctex 进行正向和反向搜索(在 TeX Live 2011 下)?

审判

我发现https://stackoverflow.com/questions/6898710/emacs-auctex-rewriting-the-okular-make-url-function-to-work-with-new-synctex-f/6904563#6904563并尝试了建议的答案。所以我

1)创建了前面提到的“扩展器”

2)将以下内容放入〜/.emacs:

(setq TeX-view-program-list
     '(("Okular" "okular --unique %o#src:%n%(dir)./%b"))); %o: TeX-output-extension; %n: TeX-current-line; %b: TeX-current-file-name-master-relative

仍然没有运气。然后我想尝试从命令行启动 Okular,看看它是否可以打开 .pdf 并显示某一行。我尝试了几种类型的组合okular --unique myfile.pdf#src:200/home/myuser/mypath-to-folder-of-myfile/./myfile.tex。这会打开 Okular,但不会跳转到第 200 行。它只是打开第一页。所以这肯定是修复的起点,但我不知道如何修复。

关于如何解决这个问题有什么想法吗?

如果这很重要,我已经通过install-tl-unx.tar.gz以下方式安装了 TeX Live 2011:http://www.tug.org/texlive/acquire-netinstall.html(就在几周前)

更新

我刚刚意识到,上面描述的旧设置完美适用于myfile.synctex.gz当前目录中的所有文件。我通过latexmk/新创建的那些文件pdflatex缺少.synctex.gz,所以这似乎是一个(可能是)问题。不确定这里的问题是什么。

答案1

好的,我发现了错误。Indeed.synctex.gz不再被写入。发生这种情况是因为我在 中指定了一个附加参数latexmk。我将在另一篇文章中解决这个问题,它太具体了,并且不再与这个问题相关。

相关内容