Exporter un fichier en mode org au format PDF via la ligne de commande?


11

Quels arguments de ligne de commande dois-je utiliser pour que Emacs exporte un fichier en mode organisation vers un fichier PDF Beamer? (Je veux créer un Makefilefichier qui produit un PDF lorsque l'utilisateur s'exécute make.)

J'ai essayé de suivre cette réponse, mais je n'ai pas réussi à la faire fonctionner:

$ 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'erreur ci-dessus vient du fait que les fichiers en mode organisation sont dans un emplacement personnalisé et que my ~/.emacs.d/init.eln'est pas chargé ( --batchimplique -qaka --no-init-file).

Si je dis à Emacs de charger mon fichier init, cela fonctionnera:

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

Cependant, cela ne fonctionne pas pour les autres utilisateurs qui utilisent ~/.emacsou à la ~/.emacs.elplace de ~/.emacs.d/init.el. J'ai essayé de dire à Emacs de charger user-init-filemais cela n'a pas fonctionné:

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

En supposant que tous les utilisateurs peuvent appuyer avec succès C-x C-e l Ppour exporter un PDF Beamer lors de l'utilisation interactive d'Emacs, quelle commande non interactive produira un PDF?


eval (require 'org)ou quelque chose comme ça - votre fichier init effectue un chargement qui --batchest prohibitif.
Sean Allred

Essayez quelque chose comme emacs -u $USER --batch --eval '(message "-----> My user-init-file: "%s" user-init-file)'. Si vous ne chargez pas votre fichier init, vous devrez probablement en avoir besoin ox-beamer.
mutbuerger

Vous pourriez trouver github.com/fniessen/orgmk utile.
Ista

Réponses:


8

Ce qui suit a fonctionné pour moi:

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

Merci à @mutbuerger pour le conseil à passer -u <username>pour être user-init-filedéfini.


Dans mon cas, j'ai trouvé que je devais le supprimer (load user-init-file)et le remplacer par des (require 'blah)expressions s spécifiques pour qu'il fonctionne (en utilisant emacs 24.5.1).
Mark
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.