Які аргументи командного рядка я використовую, щоб Emacs експортував файл org-режиму в PDF Beamer? (Я хочу створити файл, 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
ака --no-init-file
).
Якщо я скажу Emacs завантажити мій файл 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
щоб експортувати PDF Beamer при інтерактивному використанні Emacs, яка неінтерактивна команда створить PDF?
emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
. Якщо ви не завантажуєте свій файл init, вам, ймовірно, потрібно вимагати ox-beamer
.
(require 'org)
або щось подібне - ваш файл init виконує деяке завантаження, яке--batch
забороняє.