Esportare un file in modalità org come PDF tramite riga di comando?


11

Quali argomenti della riga di comando uso per far sì che Emacs esporti un file in modalità org in un PDF Beamer? (Voglio creare un file Makefileche produce un PDF quando l'utente esegue make.)

Ho provato a seguire questa risposta ma non sono riuscito a farlo funzionare:

$ 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

L'errore sopra riportato deriva dal fatto che i file in modalità org si trovano in una posizione personalizzata e my ~/.emacs.d/init.elnon è caricato ( --batchimplica -qaka --no-init-file).

Se dico a Emacs di caricare il mio file init funzionerà:

$ emacs --batch -l ~/.emacs.d/init.el foo.org -f org-beamer-export-to-pdf

Tuttavia, questo non funziona per altri utenti che usano ~/.emacso ~/.emacs.elinvece di ~/.emacs.d/init.el. Ho provato a dire a Emacs di caricare user-init-filema non ha funzionato:

$ emacs --batch --eval '(load user-init-file)' foo.org -f org-beamer-export-to-pdf
Wrong type argument: stringp, nil

Supponendo che tutti gli utenti possano premere con successo C-x C-e l Pper esportare un PDF Beamer quando utilizzano Emacs in modo interattivo, quale comando non interattivo produrrà un PDF?


eval (require 'org)o qualcosa del genere - il tuo file init sta eseguendo un caricamento che --batchsta vietando.
Sean Allred,

Prova qualcosa del genere emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'. Se non carichi il tuo file init, probabilmente dovrai richiederlo ox-beamer.
Mutbuerger

Potresti trovare utile github.com/fniessen/orgmk .
Ista,

Risposte:


8

Per me ha funzionato:

emacs \
    -u "$(id -un)" \
    --batch \
    --eval '(load user-init-file)' \
    foo.org \
    -f org-beamer-export-to-pdf

Grazie a @mutbuerger per il suggerimento da passare -u <username>per essere user-init-filedefiniti.


Nel mio caso, ho scoperto che dovevo rimuoverlo (load user-init-file)e sostituirlo con specifiche (require 'blah)s-espressioni affinché funzionasse (usando emacs 24.5.1).
Segna il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.