通过我的这些行,我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 值。
这主要是关于变量操作的 ELisp 问题TeX-view-program-selection
。感谢您的帮助。
PS请告诉我这个问题是否最适合tex.stackexchange
基于lunaryorn评论/答案的更新
要更新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
)我现在都需要将代码插入到正确的钩子中,TeX-view-program-selection
因为init.el
.