通过命令行将组织模式文件导出为PDF?


11

我要使用什么命令行参数来使Emacs将组织模式文件导出到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

上面的错误来自以下事实:组织模式文件位于自定义位置,并且my ~/.emacs.d/init.el未被加载(--batch意味着-qaka --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在交互式使用Emacs时,所有用户都可以成功按下以导出Beamer PDF,那么哪个非交互式命令将生成PDF?


评估(require 'org)或类似的操作–您的init文件正在执行某些--batch禁止的加载。
肖恩·艾瑞德

尝试类似的东西emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'。如果您不加载初始化文件,则可能需要ox-beamer
mutbuerger 2015年

您可能会发现github.com/fniessen/orgmk有用。
Ista 2015年

Answers:


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.