2012-10-31 43 views
3

平原tex模式的傢伙有added emacs 24.1是一個非常好的功能,一種名爲的小模式latex-electric-env-pair-mode它保持現有\begin{...} [...] \end{...}對匹配。即當更改\begin{...}標記中的環境名稱時,會自動更改其對應的\end{...}(從環境的已加星標變爲未加星標的版本時非常好,反之亦然)。AUCTeX中的乳膠電子env對模式

然而,當與AUCTeX比較時,tex-mode仍然很糟糕......但我非常喜歡新的小模式。我試圖通過將看起來像從tex-mode.el中使用的所有內容複製到新文件並更改所有描述符(以便它們不會與AUCTeX或任何其餘的tex-模式)。不幸的是,這不會起作用,次要模式可以打開,但它已經壞了:沒有任何事情發生。

我不是一個(e)lisp程序員,也就是說我真的不懂代碼。但也許有人喜歡這種小模式的功能,並可以將其移植到獨立版本? 也可能有一些軟件包提供相似/相同的功能?

我很感激任何幫助!

+0

爲什麼大家都說AUCTeX這麼多比普通TEX模式更好?正常的tex-mode可以完成我想要的任何事情,最後一次查看它時,AUCTeX似乎只改變了已經連接到我的手指的所有擊鍵,並添加了一堆我不會使用的「插入此」擊鍵(它更快我可以用手輸入)。 – zwol

回答

3

你可能錯過了tex-env-mark(設置,稍後由latex-electric-env-pair-mode用來發現環境起動/恩德斯引號)或latex-syntax-propertize-rules(其在緩衝區的相關部分運行tex-env-marks)或syntax-propertize-function(設置它使用latex-syntax-propertize-rules使這些規則實際上被使用)。

BTW,而不是複製那些東西,我建議你嘗試像下面的未經測試的代碼:

(defconst my-latex-syntax-propertize-function 
    (with-temp-buffer (latex-mode) syntax-propertize-function)) 

(add-hook 'LaTeX-mode-hook 
      (lambda() 
      (set (make-local-variable 'syntax-propertize-function) 
       my-latex-syntax-propertize-function) 
      (latex-electric-env-pair-mode 1))) 
+0

我試過,但它不起作用。 *消息*緩衝區註釋:**文件模式規範錯誤:(無效變量latex-syntax-propertize-rules)**事實上,我忘記了我的複製和重命名嘗試中的latex-syntax-propertize-rules部分,但是,部件AUCTeX停止正常工作......所以我猜你提出的解決方案(固定時)是我最好的選擇。 – elemakil

+0

另外,我使用C-h v檢查了syntax-propertiesize函數的值(在啓用電氣對模式後)。它是零。我看來latex-syntax-propertize-rules變量在僅使用(require'tex-mode)語句時未設置,因此無法應用,對嗎? – elemakil

+1

Duh,你說得對'latex-syntax-propertize-rules'只在tex-mode編譯期間設置。我會更新我未經測試的配方。 – Stefan