เร่งความเร็ว TeX-insert-macro บน \ input


10

ในlatex-modeเมื่อฉันใช้TeX-insert-macroพิมพ์\input{...} แมโคร Auctex อำนวยความสะดวกให้บริการเสร็จสิ้นชื่อไฟล์ซึ่งเป็นที่ดี อย่างไรก็ตามดูเหมือนว่าจะค้นหาสถานที่จำนวนมากเพื่อรวบรวมรายการที่เสร็จสมบูรณ์เนื่องจาก emacs ค้างไว้เกือบหนึ่งนาทีบนแล็ปท็อปตัวน้อยของฉัน

มีวิธีTeX-insert-macroการเสนอชื่อไฟล์ที่สมบูรณ์หรือไม่?
โดย "โง่" find-fileผมหมายถึงคนที่คุณได้รับเมื่อเรียก เวลาส่วนใหญ่ของไฟล์ที่ฉันต้องการจะใส่เป็นเพียงไดเรกทอรีเดียวดังนั้นมันจะดีกว่า

หากไม่สามารถทำได้มีวิธีอื่นในการเร่งความเร็วหรือไม่
ฉันสังเกตว่าเมื่อฉันใส่\includeมาโครรายการของชื่อไฟล์จะสั้นกว่ามากดังนั้นอาจมีวิธีใช้รายการนั้นสำหรับ\input มาโครด้วย


นอกจากนี้ยังมีcdlatex-insert-filenameที่มาพร้อมกับแพ็คเกจ cdlatex ฉันคิดว่ามันมีประโยชน์สำหรับการแทรกไฟล์กราฟิกในสภาพแวดล้อมของรูป
Vamsi

คำตอบ:


6

คุณมีวิธีแก้ไขปัญหาบางประการ:

TeX-arg-input-file-searchครั้งแรกที่มีการปรับแต่งตัวแปรพฤติกรรมนี้:

หากTeX-arg-input-fileควรค้นหาไฟล์ หากค่าคือ t ไฟล์ในพา ธ การค้นหาของ TeX จะถูกค้นหาและจัดทำจนเสร็จ ชื่อไฟล์จะถูกแทรกโดยไม่มีไดเรกทอรีและส่วนขยาย หากค่าเป็นศูนย์ชื่อไฟล์สามารถระบุได้ด้วยตนเองและถูกแทรกด้วยพา ธ ที่สัมพันธ์กับไดเร็กทอรีของไฟล์บัฟเฟอร์ปัจจุบันและส่วนขยาย หากมีค่าระบบaskจะขอให้คุณใช้วิธีการทุกครั้งที่TeX-arg-input-fileมีการเรียกใช้

เอกสารชิ้นนี้คือ imho ค่อนข้างชัดเจนไม่เพียงพอ แต่nilดูเหมือนว่าจะทำงานได้ดี

(setq TeX-arg-input-file-search nil)

ตัวแปรนี้ส่งผลกระทบต่อการทำงานทั้งหมดที่เรียกTeX-arg-input-fileรวมทั้งinput, และinclude usepackageสำหรับหลังพฤติกรรมนี้อาจไม่คาดคิด

แล้วมีวิธีการแก้ปัญหา hacky มากขึ้นซึ่งควรจะทำงานสำหรับฟังก์ชั่นทั้งหมด: TeX-arg-input-fileมีlocalธงสำหรับพฤติกรรมนี้ (สถานะนี้เช่นการตั้งค่าให้tสำหรับinclude)

เห็นได้ชัดว่าคุณสามารถแทนที่การตั้งค่าอื่น ๆ โดยเพียงแค่เพิ่มรายการอื่นสำหรับคำสั่งดังนั้น:

(add-hook 'LaTeX-mode-hook 
  (lambda nil 
     (TeX-add-symbols '("input" (TeX-arg-input-file "File" t)))))

ทางออกสุดท้ายหากคุณมีเซสชัน emacs ยาวนานคือปล่อยมันไป ดูเหมือนว่าเฟส "ไฟล์การค้นหา" จะเก็บผลลัพธ์ของมันดังนั้นจึงควรเรียกเพียงหนึ่งครั้งต่อเซสชัน


! น่ากลัว ฉันคาดหวังว่าจะมีการแฮ็กสักหน่อยเดาว่าฉันประเมิน auctex ต่ำเกินไป
Malabarba

1
อืมดูเหมือนว่าแฮ็คจะเป็นหนทางไปดูการแก้ไขของฉัน หากโซลูชันแฮ็คที่เหมาะกับความต้องการของคุณดีกว่าโปรดบอกฉันเพื่อที่ฉันจะได้จัดเรียงคำตอบใหม่
ต. Verron

1
คุณพูดถูกสำหรับการใช้แพคเกจที่ไม่พึงประสงค์ ขอบคุณสำหรับการอัพเดท. มันแคชผลลัพธ์ แต่การหน่วงเวลา ~ 1 นาทีก็เพียงพอที่จะรบกวนฉันแม้ว่าจะเป็นเพียงครั้งเดียวต่อบัฟเฟอร์
Malabarba

1
ฉันจัดเรียงเนื้อหาใหม่ มองไปที่รหัสอีกครั้งผมผิดTeX-global-input-files(ตัวแปรที่มีผลของการค้นหา) ไม่ buffer ท้องถิ่นเพื่อให้การค้นหาควรจะเกิดขึ้นเพียงครั้งเดียวต่อ emacs เซสชั่น บางทีนี่อาจจะน่าสนใจกว่านี้ถ้ามันเกิดขึ้นแบบไม่เป็นจังหวะ แต่การแช่แข็ง ~ 1 นาทีนั้นนานเกินไป
ต. Verron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.