簡體   English   中英

將Emacs AUCTeX與Sumatra PDF同步

[英]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

根據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 )我現在需要在適當的鈎子中插入代碼,因為在init.el TeX-view-program-selection是無效的。

我對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"))))

蘇門答臘方面

在設置 - >選項對話框中將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-selectiontex.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.batSumatraPDF.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 lineSettings->Options對話框中不可見。 要顯示此選項字段,請轉到Settings->Advanced options或打開SumatraPDF-settings.txt並啟用EnableTeXEnhancements = true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM