Pregunta:
¿Qué argumentos de la línea de comandos utilizo para que Emacs exporte un archivo en modo org a un PDF de Beamer? (Quiero crear un Makefile
que genere un PDF cuando el usuario ejecuta make
).
Intenté seguir esta respuesta pero no pude hacer que funcionara:
$ 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
El error anterior proviene del hecho de que los archivos del modo org están en una ubicación personalizada y mi ~/.emacs.d/init.el
no está cargado ( --batch
implica -q
también conocido como --no-init-file
).
Si le digo a Emacs que cargue mi archivo de inicio, funcionará:
$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf
Sin embargo, esto no funciona para otros usuarios que usan ~/.emacs
o ~/.emacs.el
lugar de ~/.emacs.d/init.el
Intenté decirle a Emacs que cargara user-init-file
pero no funcionó:
$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil
Suponiendo que todos los usuarios pueden presionar con éxito Cx Ce l P
para exportar un Beamer PDF al usar Emacs de forma interactiva, ¿qué comando no interactivo producirá un PDF?
Respuesta:
Lo siguiente funcionó para mí:
emacs \
-u "$(id -un)" \
--batch \
--eval '(load user-init-file)' \
foo.org \
-f org-beamer-export-to-pdf
Gracias a @mutbuerger por la sugerencia de pasar -u <username>
para definir el user-init-file
.