Argumen baris perintah apa yang saya gunakan untuk membuat Emacs untuk mengekspor file mode-org ke Beamer PDF? (Saya ingin membuat Makefile
yang menghasilkan PDF saat pengguna menjalankan make
.)
Saya mencoba mengikuti jawaban ini tetapi tidak berhasil:
$ 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
Kesalahan di atas berasal dari kenyataan bahwa file mode-org berada di lokasi khusus dan saya ~/.emacs.d/init.el
tidak dimuat ( --batch
menyiratkan -q
alias --no-init-file
).
Jika saya memberi tahu Emacs untuk memuat file init saya, itu akan berfungsi:
$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf
Namun, ini tidak berfungsi untuk pengguna lain yang menggunakan ~/.emacs
atau ~/.emacs.el
bukan ~/.emacs.d/init.el
. Saya mencoba memberi tahu Emacs untuk memuat user-init-file
tetapi tidak berhasil:
$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil
Dengan asumsi semua pengguna dapat berhasil menekan C-x C-e l P
untuk mengekspor Beamer PDF saat menggunakan Emacs secara interaktif, perintah non-interaktif apa yang akan menghasilkan PDF?
sumber
(require 'org)
atau sesuatu seperti itu - file init Anda melakukan beberapa pemuatan yang--batch
dilarang.emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
. Jika Anda tidak memuat file init Anda, Anda mungkin perlu memintaox-beamer
.Jawaban:
Berikut ini bekerja untuk saya:
Terima kasih buka @mutbuerger untuk petunjuk agar lulus
-u <username>
agar bisauser-init-file
didefinisikan.sumber
(load user-init-file)
dan menggantinya dengan(require 'blah)
ekspresi s khusus agar bisa berfungsi (menggunakan emacs 24.5.1).