ส่งออกไฟล์โหมดองค์กรเป็น PDF ผ่านบรรทัดคำสั่งหรือไม่


11

ฉันใช้อาร์กิวเมนต์บรรทัดคำสั่งใดเพื่อให้ 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หมายถึง-qaka --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 ได้อย่างไร


eval (require 'org)หรืออะไรทำนองนั้น - ไฟล์ init ของคุณกำลังทำการโหลดที่--batchห้ามไว้
ฌอน Allred

emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'ลองสิ่งที่ต้องการ หากคุณไม่ได้โหลดไฟล์ init ox-beamerของคุณคุณอาจจำเป็นที่จะต้องใช้
ประกอบการ

คุณอาจพบว่ามีประโยชน์github.com/fniessen/orgmk
Ista

คำตอบ:


8

การทำงานต่อไปนี้สำหรับฉัน:

emacs \
    -u "$(id -un)" \
    --batch \
    --eval '(load user-init-file)' \
    foo.org \
    -f org-beamer-export-to-pdf

ขอบคุณไปที่ @mutbuerger สำหรับคำใบ้ที่จะส่งผ่าน-u <username>เพื่อรับการuser-init-fileกำหนด


ในกรณีของฉันฉันพบว่าฉันต้องการลบ(load user-init-file)และแทนที่ด้วย(require 'blah)นิพจน์ s เพื่อให้ทำงาน (ใช้ emacs 24.5.1)
Mark
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.