emacs - एमाकस/अक्साटेक्स उपसर्ग तर्क




latex elisp (4)

उपसर्ग तर्क के बारे में जानने के लिए Emacs के प्रलेखन पर एक नज़र डालें। सामान्य तौर पर, आप क्यू के साथ उपसर्ग तर्क को एक संख्या के अनुसार पास कर सकते हैं। एक अंकों की संख्या के लिए, आप भी मेटा टाइप कर सकते हैं अंकों के बाद। इस प्रकार एक सकारात्मक उपसर्ग तर्क को TeX-command-master पास करने के लिए जिसे आप टाइप कर सकते हैं:

एम -1 सीसी सीसी

हालांकि, यह वास्तव में एक अन्य मिनीबफर पुष्टि जोड़ देगा, अर्थात् शेल कमांड के बारे में जिसे लाटेक्स स्रोत संकलित करने के लिए इस्तेमाल किया जा सकता है। उपसर्ग तर्क के बिना, एक कमांड-निर्भर डिफ़ॉल्ट का उपयोग इसके लिए किया जाता है।

यदि आप उपयोग की जाने वाली कमांड के बारे में सवाल से बचने के लिए चाहते हैं, तो आप बिना TeX-command-force दस्तावेज चर TeX-command-force को "LaTeX" के माध्यम से बाँध सकते हैं:

(setq TeX-command-force "LaTeX")

हालांकि, यह नकारात्मक पक्ष होगा कि आप मूल रूप से "लाटेकस" कमांड में सीसी सीसी बंधन कर रहे हैं, आप "बीबेटेक्स" या "व्यू" जैसे अन्य कमांडों का उपयोग नहीं कर सकते हैं

इसके अलावा, लेटेक्स-मोड सीसी सीसी के किसी भी अनुकूलन के लिए अनुमति नहीं देता है। आपका सबसे अच्छा विकल्प या तो TeX-command-query फ़ंक्शन को सलाह देना है या TeX-command-force गतिशील रूप से सेट करने के लिए आवरण समारोह में सीसी सीसी को बाँधना है। उत्तरार्द्ध संभवतः पसंदीदा विकल्प होगा यदि आप बफर को स्वत: सहेजना चाहते हैं

लेटेक्स मोड में Cc Cc लिए बाध्य है:

(TeX-command-master &optional OVERRIDE-CONFIRM)

आम तौर पर यह इंटरैक्टिव फ़ंक्शन कमांड चलाता है, शायद लाटेक्स संकलन, पुष्टि के लिए पूछ रहा है

tex-buf.el यह लिखा है:

अगर उपसर्ग तर्क ओवरवर-कन्फ़र्म दिया जाता है, तो पुष्टि 'टेक्स-कमांड-लिस्ट' में प्रविष्टि के बजाय सकारात्मक होने पर निर्भर करती है।

यह मेरे लिए थोड़ा गुप्त है और Ch v TeX-command-list को पढ़ने में मदद नहीं मिली।

मैं "टेक्स-कमांड-मास्टर" में उपसर्ग तर्क को कैसे पारित कर सकता हूं ताकि मैं सभी पुष्टिकरण अनुरोधों से बचूं?


बनाएँ और देखें

फिर, यह समाधान, TeX-command-master के व्यवहार को संशोधित करने के बजाय, इसे पुनः लिखता है कमांड के पुनः लिखित संस्करण, build-view नामित, इसके बजाय एक सीधा तर्क का पालन करता है।

  1. यदि लेटेक्स फ़ाइल बफर संशोधित नहीं है, तो यह डिफ़ॉल्ट व्यूअर चलाता है;
  2. यदि बफर गंदे है, तो वह डिफ़ॉल्ट लेटेक्स कंपाइलर चलाता है और, बिल्ड के बाद, डिफ़ॉल्ट व्यूअर में आउटपुट खोलता है।

यहां कोड है:

(defun build-view ()
  (interactive)
  (if (buffer-modified-p)
      (progn  
    (let ((TeX-save-query nil)) 
    (TeX-save-document (TeX-master-file)))
    (setq build-proc (TeX-command "LaTeX" 'TeX-master-file -1))
    (set-process-sentinel  build-proc  'build-sentinel))
    (TeX-view)))

(defun build-sentinel (process event)    
  (if (string= event "finished\n") 
      (TeX-view)
    (message "Errors! Check with C-`")))

अब आप Mx build-view टाइप कर सकते हैं और बताया गया बिल्ड-व्यू प्रक्रिया शुरू कर सकते हैं या इसे "F2" जैसी नई कीबाइंडिंग से जोड़ सकते हैं:

(add-hook 'LaTeX-mode-hook '(lambda () (local-set-key (kbd "<f2>") 'build-view)))

नोट: जैसा कि टायलर ने सुझाव दिया है, TeX-save-query चर स्थानीय रूप से बदला है, इसलिए पुराना Cc Cc / TeX-command-master अप्रभावित है और पुष्टिकरण पूछते रहेंगे।

इसे बेहतर या आसान पढ़ने के लिए इस कोड को संपादित करें!


यदि आप किसी पुष्टि संवाद के बिना केवल लेटेक्स स्रोत को संकलित करने के लिए देख रहे हैं, तो बस अपने .emacs को निम्नलिखित जोड़ें:

(setq TeX-command-force "")

फिर आप सीसी सीसी के साथ स्रोत संकलित कर सकते हैं और यह पुष्टि करने के लिए नहीं पूछा जाएगा इस समाधान के साथ एकमात्र समस्या यह है कि आप अब कमांड नहीं बदल सकते हैं, लेकिन अधिकतर दस्तावेज़ों के साथ आप ऐसा नहीं करना चाहेंगे। मैं सुझाव दे सकता हूं कि एक ही समय में आप अपने .emac को और अधिक लचीलेपन के लिए जोड़ सकते हैं, आपको पूर्व व्यवहार के बराबर एक सीसी सीसी दे सकते हैं:

(define-key LaTeX-mode-map "\C-c\C-a"   
   ;;; 'a' for ask, change to anything you want 
  (lambda (arg) (interactive "P") 
    (let ((TeX-command-force nil)) 
      (TeX-command-master arg)))) 

फिर आप अपने दस्तावेज़ पर बस काम कर सकते हैं, एक सीएक्स सीएस, सीसी सीसी और उसके बाद सीसी सीवी देखें। दूसरों की तरह आपने सुझाव दिया है कि आप सहेजें कमांड के लिए भी ऐसा कर सकते हैं और इसे सहेजने पर स्वत: संकलित कर सकते हैं, लेकिन मेरे कुछ दस्तावेज सीवीएस में हैं और इसलिए मैं उस पर हुक लगाने से बचता हूं।

इस पर कुछ मदद के लिए इवान के लिए श्रेय - पता नहीं है कि वह स्टैक ऑवरफ्लो पर है या नहीं


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

(defun my-run-latex ()
  (interactive)
  (TeX-save-document (TeX-master-file))
  (TeX-command "LaTeX" 'TeX-master-file -1))

यह कुछ आसान करने के लिए बाँध, और जब भी आप डिफ़ॉल्ट प्रसंस्करण कमांड का उपयोग करना चाहते हैं तो आपके पास अभी भी Cc Cc होगा आप TeX-command लाइन को संशोधित कर सकते हैं यदि "लेटेक्स" प्रोसेसर नहीं है जिसे आप कॉल करना चाहते हैं।







auctex