ฉันใช้อาร์กิวเมนต์บรรทัดคำสั่งใดเพื่อให้ Emacs ส่งออกไฟล์โหมด org ไปยัง Beamer PDF (ฉันต้องการสร้างไฟล์Makefile
ที่สร้าง PDF เมื่อผู้ใช้รันmake
)
ฉันลองทำตามคำตอบนี้แต่ไม่สามารถใช้งานได้:
$ emacs --batch foo.org -f org-beamer-export-to-pdf
Symbol's function definition is void: org-beamer-export-to-pdf
$ emacs --batch -l ox-beamer foo.org -f org-beamer-export-to-pdf
Cannot open load file: ox-beamer
ข้อผิดพลาดข้างต้นมาจากความจริงที่ว่าไฟล์โหมด org อยู่ในตำแหน่งที่กำหนดเองและฉัน~/.emacs.d/init.el
ไม่ได้โหลด ( --batch
หมายถึง-q
aka --no-init-file
)
ถ้าฉันบอก Emac ให้โหลดไฟล์ init มันจะทำงาน:
$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf
แต่นี้ไม่ได้ทำงานให้กับผู้ใช้อื่น ๆ ที่ใช้~/.emacs
หรือแทน~/.emacs.el
~/.emacs.d/init.el
ฉันพยายามบอกให้ Emacs โหลดuser-init-file
แต่มันไม่ทำงาน:
$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil
สมมติว่าผู้ใช้ทุกคนสามารถกดC-x C-e l P
เพื่อส่งออก Beamer PDF เมื่อใช้ Emacs แบบโต้ตอบคำสั่งที่ไม่โต้ตอบจะผลิต PDF ได้อย่างไร
emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
ลองสิ่งที่ต้องการ หากคุณไม่ได้โหลดไฟล์ init ox-beamer
ของคุณคุณอาจจำเป็นที่จะต้องใช้
(require 'org)
หรืออะไรทำนองนั้น - ไฟล์ init ของคุณกำลังทำการโหลดที่--batch
ห้ามไว้