2010-07-18 8 views
8

AucTeX साथ AucTeX/Emacs समस्या बहुत अद्भुत उपकरण है, लेकिन जब मैं एक ही '$' लिखते हैं, सभी रंग टूटी हुई है।

आम तौर पर एक '$' गणित के समीकरण को व्यक्त करने के लिए एक और '$' के साथ है, लेकिन स्रोत लिस्टिंग एकल '$' के लिए अक्सर इस्तेमाल किया जाता है।

\begin{Verbatim} 
(let ((buffer (url-retrieve-synchronously 
... 
    (re-search-forward "^$" nil 'move) <-- It breaks the coloring 
... 
\end{Verbatim} 

आसान समाधान '$' से मेल खाने के लिए निम्नानुसार है।

(re-search-forward "^$" nil 'move) ;; $ 

क्या इस एकल '$' समस्या को रोकने के लिए ऑक्टेक्स में कोई विकल्प है?

उत्तर

9

AUCTeX जानता है कि $ शब्दशः वातावरण में विशेष नहीं है, लेकिन आप इसे बताने के लिए कि Verbatim यह LaTeX-verbatim-environments-local में प्रदर्शित करने के लिए व्यवस्था करने से शब्दशः वातावरण है।

यदि AUCTEX को अच्छी तरह से स्थापित किया गया है, तो यह पहले से ही जानता है, क्योंकि AUCTEX \usepackage और मित्रों के माध्यम से लोड की गई प्रत्येक फ़ाइल के लिए स्टाइल हुक लोड करता है। आपको C-c C-n (TeX-normal-mode) के साथ अपनी हेडर फ़ाइल को पार्स करने के लिए इसे बताने की आवश्यकता हो सकती है।

यदि यह पर्याप्त नहीं है, तो इसका मतलब है कि Verbatim को एक शैली फ़ाइल में परिभाषित किया गया था जिसके लिए AUCTEX में पर्याप्त जानकारी नहीं है। आप AUCTEX को आपके द्वारा इंस्टॉल की गई कुछ या सभी स्टाइल फ़ाइलों को पार्स करने के लिए कह सकते हैं; AUCTEX मैनुअल में "स्वचालित" अध्याय देखें।

कभी कभी AUCTeX शैली फ़ाइल को पार्स करने का प्रबंधन नहीं है; तो आप हाथ से यह हिस्सा कर सकते हैं। नीचे दिए गए कोड मानता है कि आप fancyvrb पैकेज से Verbatim वातावरण हो रही है; अन्यथा नाम अनुकूलित करें। एक फाइल निर्देशिका निम्नलिखित सामग्री के साथ TeX-style-path में उल्लेख किया है में से एक में fancyvrb.el बनाएं जिसका नाम (वहाँ अन्य बातों के लायक वहाँ डाल हो सकता है, मैं तो बस alltt.el अनुकूल नहीं बनाया है):

 
(TeX-add-style-hook 
"fancyvrb" 
(lambda() 
    (LaTeX-add-environments "BVerbatim" "LVerbatim" "SaveVerbatim" "Verbatim") 
    (make-local-variable 'LaTeX-indent-environment-list) 
    (add-to-list 'LaTeX-indent-environment-list '("BVerbatim" current-indentation)) 
    (add-to-list 'LaTeX-indent-environment-list '("LVerbatim" current-indentation)) 
    (add-to-list 'LaTeX-indent-environment-list '("SaveVerbatim" current-indentation)) 
    (add-to-list 'LaTeX-indent-environment-list '("Verbatim" current-indentation)) 
    (make-local-variable 'LaTeX-verbatim-regexp) 
    (setq LaTeX-verbatim-regexp (concat LaTeX-verbatim-regexp "\\|\\([BL]?\\|Save\\)Verbatim")) 
    (add-to-list 'LaTeX-verbatim-environments-local "BVerbatim") 
    (add-to-list 'LaTeX-verbatim-environments-local "LVerbatim") 
    (add-to-list 'LaTeX-verbatim-environments-local "SaveVerbatim") 
    (add-to-list 'LaTeX-verbatim-environments-local "Verbatim") 
    (when (and (featurep 'font-latex) 
       (eq TeX-install-font-lock 'font-latex-setup)) 
    (font-latex-set-syntactic-keywords) 
    (setq font-lock-set-defaults nil) 
    (font-lock-set-defaults)))) 

(मैंने सोचा था कि आप भी यह कर सकता है फ़ाइल चर के माध्यम से मैन्युअल रूप से, लेकिन यह काम नहीं करता है, क्योंकि फ़ाइल से पहले फ़ॉन्ट-लॉक सेटिंग्स बनाई गई हैं, स्थानीय चर प्रारंभ किए गए हैं, और मुझे वर्कअराउंड नहीं दिख रहा है।)

+0

अंतिम विधि के लिए, क्या उन्हें टीएक्स स्रोत कोड की अंतिम पंक्ति में कॉपी करना ठीक है? ऐसा लगता है कि इस तरह से काम नहीं करता है। – prosseek

+0

@prosseek: क्षमा करें, मैंने परिवर्तनीय नाम में एक टाइपो बनाया है, अब तय किया गया है। लेकिन फिर भी मैंने अभी परीक्षण किया और यह मेरे लिए काम नहीं करता है। ऐसा लगता है कि रंग पैरामीटर सेट अप करने के बाद चर सेट किया गया है, और मुझे नहीं पता कि इसे कैसे ठीक किया जाए। – Gilles

+0

ठीक है, एक फ़ाइल स्थानीय चर का उपयोग कर काम नहीं करेगा, इसलिए * शैली * .el जाने का रास्ता है। मैंने इसके लिए कोड शामिल करने के लिए अपना जवाब संपादित किया। – Gilles

4

वहाँ का उपयोग करने के शब्दशः बनाम शब्दशः एक कारण है? verbatim खंड में सब कुछ मेरे लिए एक ही रंग बनाता है। एक तरफ के रूप में, मैं लेटेक्स में प्रोग्राम कोड दिखाने के लिए listings package. का उपयोग करना पसंद करता हूं।

पैकेज लिस्टिंग का उपयोग करके आप गैर-स्वरूपित पाठ जोड़ सकते हैं जैसा कि आप \ start {verbatim} के साथ करेंगे, लेकिन इसका मुख्य उद्देश्य आपके दस्तावेज़ में किसी भी प्रोग्रामिंग भाषा का स्रोत कोड शामिल करना है।

+0

टिप के लिए धन्यवाद, और मैं देखता हूं वह लिस्टिंग बेहतर विकल्प है। लेकिन, Emacs/AucTeX के मामले में, मुझे एक ही समस्या दिखाई देती है। – prosseek

संबंधित मुद्दे