Какие аргументы командной строки я использую, чтобы заставить 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 находятся в пользовательском расположении, а my ~/.emacs.d/init.el
не загружается ( --batch
подразумевается -q
иначе --no-init-file
).
Если я скажу Emacs загрузить мой файл инициализации, он будет работать:
$ 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?
источник
(require 'org)
или что-то в этом роде - ваш файл инициализации выполняет загрузку, которая--batch
запрещает.emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
. Если вы не загружаете свой файл инициализации, вам, вероятно, потребуетсяox-beamer
.Ответы:
Следующее работало для меня:
Спасибо @mutbuerger за подсказку, чтобы пройти,
-u <username>
чтобы получитьuser-init-file
определение.источник
(load user-init-file)
и заменить его определенными(require 'blah)
s-выражениями, чтобы он работал (используя emacs 24.5.1).