Welche Befehlszeilenargumente verwende ich, um Emacs zum Exportieren einer Datei im Organisationsmodus in eine Beamer-PDF-Datei zu bewegen? (Ich möchte eine erstellen Makefile
, die eine PDF-Datei erstellt, wenn der Benutzer ausgeführt wird make
.)
Ich habe versucht, dieser Antwort zu folgen , konnte sie aber nicht zum Laufen bringen:
$ 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
Der obige Fehler ist darauf zurückzuführen, dass sich die Dateien im Organisationsmodus an einem benutzerdefinierten Speicherort befinden und my ~/.emacs.d/init.el
nicht geladen ist ( --batch
impliziert -q
aka --no-init-file
).
Wenn ich Emacs anweise, meine Init-Datei zu laden, funktioniert dies:
$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf
Dies funktioniert jedoch nicht für andere Benutzer, die ~/.emacs
oder ~/.emacs.el
anstelle von verwenden ~/.emacs.d/init.el
. Ich habe versucht, Emacs zum Laden aufzufordern, user-init-file
aber es hat nicht funktioniert:
$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil
Angenommen, alle Benutzer können erfolgreich drücken C-x C-e l P
, um ein Beamer-PDF zu exportieren, wenn Emacs interaktiv verwendet wird. Mit welchem nicht interaktiven Befehl wird ein PDF erstellt?
quelle
(require 'org)
oder so ähnlich - Ihre Init-Datei lädt,--batch
was verboten ist.emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
. Wenn Sie Ihre Init-Datei nicht laden, müssen Sie wahrscheinlich benötigenox-beamer
.Antworten:
Folgendes hat bei mir funktioniert:
Vielen Dank an @mutbuerger für den Hinweis, der übergeben werden muss
-u <username>
, umuser-init-file
definiert zu werden.quelle
(load user-init-file)
und durch bestimmte(require 'blah)
S-Ausdrücke ersetzen musste, damit es funktioniert (unter Verwendung von Emacs 24.5.1).