[英]Sync Emacs AUCTeX with Sumatra PDF
在我的init.el
使用这些行,我可以将Emacs LaTeX缓冲区与Sumatra同步:
(setq TeX-source-correlate-mode t)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-view-program-list
'(("Sumatra PDF" ("\"C:/bin86/SumatraPDF/SumatraPDF.exe\" -reuse-instance"
(mode-io-correlate " -forward-search %b %n ") " %o"))))
(setq TeX-view-program-selection
'(((output-dvi style-pstricks) "dvips and start") (output-dvi "Yap")
(output-pdf "Sumatra PDF") (output-html "start")))
要设置双击PDF以使我获得相关的LaTeX代码,我还在Sumatra选项中Set inverse search command line
为:
"c:\bin86\GNU Emacs 24.2\bin\emacsclient.exe" --no-wait +%l "%f"
尽管同步工作,我想以不同的方式编码。
如果我没有设置最后一个表达式, (setq TeX-view-program-selection...
,除了PDF输出的值之外,我会得到与上面相同的默认值(output-pdf "start")
。我想把这个更改为“Sumatra PDF”并将其他值保留为默认值,也就是说,我想向Emacs询问查看器的默认值并仅更改PDF值。
它主要是关于操作变量TeX-view-program-selection
的ELisp问题。 谢谢你的帮助。
PS请告诉我这个问题是否最适合tex.stackexchange
要更新TeX-view-program-selection
我可以使用:
(assq-delete-all 'output-pdf TeX-view-program-selection)
(add-to-list 'TeX-view-program-selection '(output-pdf "Sumatra PDF"))
第一行是可选的,但它使列表看起来“更干净”。
在这两种情况下(有或没有assq-delete-all
)我现在需要在适当的钩子中插入代码,因为在init.el
TeX-view-program-selection
是无效的。
我对lunaryorn的建议! 我正在重新包装涉及其他人利益的步骤。
添加到您的init.el
:
(setq TeX-PDF-mode t)
(setq TeX-source-correlate-mode t)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-view-program-list
'(("Sumatra PDF" ("\"path/to/SumatraPDF/SumatraPDF.exe\" -reuse-instance"
(mode-io-correlate " -forward-search %b %n ") " %o"))))
(eval-after-load 'tex
'(progn
(assq-delete-all 'output-pdf TeX-view-program-selection)
(add-to-list 'TeX-view-program-selection '(output-pdf "Sumatra PDF"))))
在设置 - >选项对话框中将Set inverse search command line
为:
"path\to\GNU Emacs ver\bin\emacsclient.exe" --no-wait +%l "%f"
在Emacs中的LaTeX文档中键入Cc Cv
或双击Sumatra中的相关PDF并...享受))
使用add-to-list
而不是setq
。 有关详细信息,请参阅Ch f add-to-list
。
TeX-view-program-selection
在tex.el
定义,因此您需要在加载此库后执行此代码:
(eval-after-load 'tex
'(progn
(assq-delete-all 'output-pdf TeX-view-program-selection)
(add-to-list 'TeX-view-program-selection '(output-pdf "Sumatra PDF"))))
我被Windows的引用约定吓到了 - > emacs如果你在默认位置安装SumatraPDF,那么这适用于Windows 8.1
(setq TeX-view-program-list
'(("Sumatra PDF" ("\"C:/Program Files (x86)/SumatraPDF/SumatraPDF.exe\" -reuse-instance"
(mode-io-correlate " -forward-search %b %n ") " %o")))))
那是一个小时左右我永远不会回来:)
我准备了一个批处理文件Emacs_SumatraPDF.bat
。
它与sumatra-forward.el
完美配合,实现向前和向后搜索。
下载
http://www.ai.soc.i.kyoto-u.ac.jp/~shi/files/Emacs_SumatraPDF.bat
HTTP:/william.famille-blum.org/software/sumatra/sumatra-forward.el
准备
把Emacs_SumatraPDF.bat
和SumatraPDF.exe
- > %Emacs_Home%/bin
。
把sumatra-forward.el
- > %Emacs_Home%/site-lisp
用法
;Emacs_Home=C:/Program Files (x86)/GNU Emacs 23.4
;~\.emacs add following information
;;; Emacs_SumatraPDF.bat
;; @info: pdf viewer
; @refer:
(setq TeX-view-program-list '(
("Sumatra" "C:/Program Files (x86)/GNU Emacs 23.4/bin/Emacs_SumatraPDF.bat
%o %t %n") ))
(setq TeX-view-program-selection '(
(output-pdf "Sumatra")
(output-dvi "Yap")
((output-dvi style-pstricks) "dvips and start")
(output-html "start")))
;;; sumatra-forward.el
;; @info: forward search.
; @refer: http:/william.famille-blum.org/blog/static.php?page=static081010-000413
(require 'sumatra-forward)
就这些。
除了
Windows 7下的Emacs 4 Latex支持适用于Emacs的新手。
http://chunqishi.github.io/emacs4ls/
值得一提的是,默认情况下, Set inverse search command line
“ Settings->Options
对话框中不可见。 要显示此选项字段,请转到Settings->Advanced options
或打开SumatraPDF-settings.txt
并启用EnableTeXEnhancements = true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.