我正在MacOSX10.7.2上使用GNU Emacs 23.3 (9.0)。我想使用synctex在.tex和.pdf文件之间跳转。虽然在网络上有许多不同的方法,但没有一个能正常工作(我尝试了8种不同的方法.)。最后,我得到了这里描述的相当简单的方法:http://sourceforge.net/apps/mediawiki/skim-app/index.php?title=TeX_and_PDF_Synchronization
所以我的.emacs包含:
'(LaTeX-command "latex -synctex=1")
(require 'tex-site)
(add-hook 'TeX-mode-hook
(lambda ()
(add-to-list 'TeX-output-view-style
'("^pdf$" "."
"/Applications/Skim.app/Contents/SharedSupport/displayline -b %n %o %b")))
)
(server-start)当然,我还设置了Skim (Preferences -> Sync ->选中了“检查文件更改”,并选择了预设:带有命令emacsclient和参数-不等待+%行"% file ")。
如您所见,我包含了显示行的-b选项。我可以从终端调用displayline,它打开.pdf并用黄色/高亮显示栏显示相应的行。不过,如果我使用latexmk -pvc -pdf从Emacs.app中的shell编译文档,则当前行上不会显示任何内容。
问题1:我如何使它工作/如何显示当前行?
问题2:通过单击.tex并跳转到.pdf文档中的相应行,是否有可能进行“适当”的前向搜索?我如何在emacs中“点击”?标准的CMD + shift + click不适用于emacs。
我也尝试过使用..。
(setq TeX-source-correlate-method 'synctex)
(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)..。但什么都没变。
我可以在.pdf中点击CMD + shift +并跳转到.tex,这样就可以了。
我唯一没有研究的方向是:
pdflatex -interaction=nonstopmode -synctex=1,所以synctex被识别为变得更有效。
溶液
事实上,延迟就是问题所在。我终于找到了以下设置:
~/..emacs
;; make latexmk available via C-c C-c
;; Note: SyncTeX is setup via ~/.latexmkrc (see below)
(add-hook 'LaTeX-mode-hook (lambda ()
(push
'("latexmk" "latexmk -pdf %s" TeX-run-TeX nil t
:help "Run latexmk on file")
TeX-command-list)))
(add-hook 'TeX-mode-hook '(lambda () (setq TeX-command-default "latexmk")))
;; use Skim as default pdf viewer
;; Skim's displayline is used for forward search (from .tex to .pdf)
;; option -b highlights the current line; option -g opens Skim in the background
(setq TeX-view-program-selection '((output-pdf "PDF Viewer")))
(setq TeX-view-program-list
'(("PDF Viewer" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b")))
(server-start); start emacs in server mode so that skim can talk to it~/.latexmkrc
$pdflatex = 'pdflatex -interaction=nonstopmode -synctex=1 %O %S';
$pdf_previewer = 'open -a skim';
$clean_ext = 'bbl rel %R-blx.bib %R.synctex.gz';这完全允许以latexmk作为默认的C-c - C-c和C- C -v在当前行打开撇除,这很好地突出显示。在.pdf中使用CMD + shift + click,您可以跳回.tex文件中的相应段落(感谢server-start)。
发布于 2013-01-03 15:58:27
为了启用同步的单击功能,我添加了:
(add-hook 'LaTeX-mode-hook
(lambda () (local-set-key (kbd "<S-s-mouse-1>") #'TeX-view))
)到我的.emacs文件。
注意:确保您处于PDF模式(使用(setq TeX-PDF-mode t))。
发布于 2011-10-26 14:55:31
当您按下C-c C-v (它运行TeX-view)时,它应该打开当前行上的栏浏览。这就是您使用TeX-output-view-style设置的内容。你不能从latexmk -pvc那里得到这种行为,因为它不知道你在哪一条线路上。latexmk只知道文件更改了。为了进行前向搜索,您需要运行TeX-view。
可以绑定CMD + shift +单击以运行TeX-view,方法是
(define-key LaTeX-mode-map [M-S-mouse-1] 'TeX-view)或者有可能
(define-key LaTeX-mode-map [s-S-mouse-1] 'TeX-view)敬你的TeX-mode-hook。它取决于您所需的设置,但可以通过按C-h C-k然后按CMD+shift+click来查找。当然,添加两者都不会造成问题。
https://stackoverflow.com/questions/7899845
复制相似问题