emacs - إيماكس/أوكسيكس وسيطات البادئة




latex elisp (4)

ألق نظرة على وثائق إماكس للتعرف على وسيطات البادئة. بشكل عام، يمكنك تمرير أمر وسيطة البادئة مع سو متبوعا برقم. بالنسبة لأرقام من رقم واحد، يمكنك أيضا كتابة ميتا متبوعا بالرقم. وبالتالي لتمرير وسيطة البادئة الإيجابية إلى TeX-command-master يمكنك كتابة:

M-1 نسخة إلى نسخة

ومع ذلك، فإن هذا في الواقع إضافة تأكيد مينيبوفر آخر، وهي حول الأمر قذيفة لاستخدامها لتجميع مصدر اللثي. بدون وسيطة البادئة، يتم استخدام افتراض يعتمد على الأمر لذلك.

إذا كنت ترغب في تجنب السؤال حول الأمر لاستخدام، يمكنك ربط المتغير غير الموثق TeX-command-force إلى "ليتكس" عن طريق:

(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 "")

يمكنك بعد ذلك تجميع المصدر مع نسخة إلى نسخة طبق الأصل ولن يطلب تأكيد. المشكلة الوحيدة مع هذا الحل هو أنه لم يعد بإمكانك تغيير الأمر، ولكن مع معظم الوثائق التي لا تريد. قد أقترح أنه في نفس الوقت يمكنك إضافة هذا إلى .emacs للحصول على مزيد من المرونة، مما يتيح لك نسخة إلى نسخة ما يعادل السلوك السابق:

(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