将Emacs AUCTeX与苏门答腊同步PDF
通过我的将Emacs AUCTeX与苏门答腊同步PDF,emacs,latex,elisp,auctex,Emacs,Latex,Elisp,Auctex,通过我的init.el中的这些行,我能够将Emacs LaTeX缓冲区与苏门答腊同步: (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"
init.el
中的这些行,我能够将Emacs LaTeX缓冲区与苏门答腊同步:
(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 optionsset Reverse search命令行中设置:
"c:\bin86\GNU Emacs 24.2\bin\emacsclient.exe" --no-wait +%l "%f"
"path\to\GNU Emacs ver\bin\emacsclient.exe" --no-wait +%l "%f"
尽管同步有效,我还是想用不同的方式来编码
如果我没有设置最后一个表达式,(setq-TeX-view-program-selection…
,我将获得默认值,这些值与上面相同,除了PDF输出的值:(output-PDF“start”)
。
我想将这个更改为“Sumatra PDF”,并将其他值保留为默认值,也就是说,我想向Emacs询问查看器的默认值,只更改PDF值
这主要是一个关于变量TeX view程序选择操作的ELisp问题。
谢谢你的帮助
另外,请告诉我这个问题是否最适合你
根据lunaryorn的评论/回答进行更新
要更新TeX view程序选择
,我可以使用:
(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程序选择在init.el
中是无效的
TeX view程序选择
在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"))))
我感谢lunaryorn的建议!我正在重新包装所涉及的步骤,以使其他步骤受益
Emacs侧
添加到您的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"))))
苏门答腊岛一侧
在设置->选项对话框中,将反向搜索命令行设置为:
"c:\bin86\GNU Emacs 24.2\bin\emacsclient.exe" --no-wait +%l "%f"
"path\to\GNU Emacs ver\bin\emacsclient.exe" --no-wait +%l "%f"
如何使用
在Emacs类型的LaTeX文档中,C-C C-v
或双击苏门答腊岛的相关PDF,然后…享受”)我准备了一个批处理文件,Emacs\u SumatraPDF.bat
它与sumatra forward.el
完美配合,实现向前和向后搜索
例如:
下载
http://william.famile-blum.org/software/sumatra/sumatra-forward.el
准备
;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)
放置Emacs\u SumatraPDF.bat
和SumatraPDF.exe
-->
%Emacs\u Home%/bin
将苏门答腊向前推进.el
-->%Emacs\u 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)
仅此而已
除此之外
Emacs 4 Latex支持在Windows 7下为Emacs新手提供
值得一提的是,Set inverse search命令行
默认情况下在Settings->Options
对话框中不可见。要显示此选项字段,请转到Settings->Advanced options
或打开SumatraPDF Settings.txt
,然后打开EnableTeXEnhancements=true
我几乎被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")))))
那是一个小时左右,我再也回不来了:)这里的问题没问题,但你真的应该接受你的问题的一些答案。@antonio我更新了我的答案,解释了你的代码是如何在正确的位置执行的,也就是在定义了TeX view程序选择之后。请接受对你有帮助的答案。马丁·施罗德:我想我理解你所观察到的。我为自己的答案准备了一个分步解决方案,所有Emacs Sumatra用户都可以轻松使用,并选中了绿色标记。在TeX view程序选择中已经有元素(输出pdf“start”)
。如果我使用:(添加到列表“TeX view program selection”(输出pdf“Sumatra pdf”)
,我会得到两个密钥对输出pdf
@antonio添加到列表中
在列表开头添加新元素,AUCTeX将使用TeX view program selection
中的第一个输出pdf
元素。鉴于格式限制,我对编辑问题发表了评论。+1抱歉,我没有注意到您的问题编辑。它现在按预期工作,thanksI还必须创建一个环境变量ALTERNATE_EDITOR
,指向我的runemacs.exe,并EMACS_服务器
,指向我的EMACS服务器文件(在.EMACS.d\SERVER
目录中),因为苏门答腊官方PDF不包含反向搜索对话框,你可以从emacs内部提供必要的信息:(添加到列表“TeX view程序列表”(“苏门答腊PDF”(“苏门答腊PDF-重用实例”(“模式io关联”-正向搜索%b%n-反向搜索\“EmacClient Tw-无等待+%%l\”\“%%f\”)%o)
以下是正确的引用:(添加到列表“TeX view程序列表”(“苏门答腊PDF”)(“苏门答腊PDF-重用实例”(模式io关联”-正向搜索%b%n-反向搜索\“EmacClient Tw--无等待+%%l\\\“%%f\\\”)“%o”)
as”根据TeX展开列表展开。另外请注意,如果您用于Emacs和苏门答腊PDF安装,请注意。