Jakich argumentów wiersza polecenia używam, aby Emacs wyeksportował plik w trybie org do pliku Beamer PDF? (Chcę utworzyć plik, Makefile
który generuje plik PDF podczas uruchamiania użytkownika make
).
Próbowałem zastosować się do tej odpowiedzi, ale nie udało mi się jej uruchomić:
$ 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
Powyższy błąd wynika z faktu, że pliki trybu org znajdują się w niestandardowej lokalizacji i mój plik ~/.emacs.d/init.el
nie jest ładowany ( --batch
oznacza to -q
również --no-init-file
).
Jeśli powiem Emacsowi, aby załadował mój plik init, zadziała:
$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf
Nie działa to jednak w przypadku innych użytkowników, którzy używają ~/.emacs
lub ~/.emacs.el
zamiast tego ~/.emacs.d/init.el
. Próbowałem powiedzieć Emacsowi, żeby się załadował, user-init-file
ale to nie zadziałało:
$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil
Zakładając, że wszyscy użytkownicy mogą z powodzeniem nacisnąć przycisk, C-x C-e l P
aby wyeksportować plik Beamer PDF podczas interaktywnego używania Emacsa, jakie nieinteraktywne polecenie wygeneruje plik PDF?
źródło
(require 'org)
lub coś w tym rodzaju - Twój plik init wykonuje ładowanie, które--batch
jest zabronione.emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'
. Jeśli nie załadujesz pliku init, prawdopodobnie będziesz potrzebowaćox-beamer
.Odpowiedzi:
Dla mnie działało:
Dzięki, przejdź do @mutbuerger po wskazówki, które należy przekazać,
-u <username>
aby jeuser-init-file
zdefiniować.źródło
(load user-init-file)
i zastąpić określonymi(require 'blah)
wyrażeniami s, aby działał (używając emacsa 24.5.1).