我在 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,但仍然不起作用。
这是以前有效的旧设置:
旧设置
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
。我将在另一篇文章中解决这个问题,它太具体了,并且不再与这个问题相关。