So che questo è un po 'minore, ma mi ha infastidito. Uso la modalità Org per un progetto e tendo ad esportare in formato PDF o HTML piuttosto frequentemente e lascia la mia directory piena di file PDF, Tex e HTML. C'è un modo per esportare la modalità Org in un'altra posizione, forse una sottodirectory chiamata ./exports?Emacs Org-mode - Esportare in un'altra directory?
risposta
Oltre all'uso di pubblicazione modificando la variabile org-publish-project-alist
come @ user1248256 suggerito, è possibile specificare direttamente la variabile org-export-publishing-directory
all'interno del file:
#+bind: org-export-publishing-directory "./exports"
* This is a test headline
Some text here. This should be exported to the "./exports" directory.
All'esportazione verrà inserito nella directory "exports", ma solo se tale directory esiste. Se non esiste, riceverai un messaggio di errore nella console.
Grazie. Questo risponde più direttamente alla mia domanda, penso. C'è una cosa strana però. Se esporto in HTML o ASCII, il file va a ./exports, ma se esporto in TEX (o PDF) rimane nella directory corrente. Forse è qualcosa nella mia configurazione? – tmilktoast
In realtà, ho appena visto oggi che questa domanda era nella [mailing list org-mode] (http://lists.gnu.org/archive/html/emacs-orgmode/2012-03/msg00264.html) - a meno che sei stato postato? – cm2
No, non ero io. Terrò d'occhio quel filo. – tmilktoast
Credo che lo si possa ottenere con org-publish. Aggiungi a te la configurazione emacs file di qualcosa di simile:
(setq org-publish-project-alist
'(("html"
:base-directory "~/org/"
:base-extension "org"
:publishing-directory "~/org/exports"
:publishing-function org-publish-org-to-html)
("pdf"
:base-directory "~/org/"
:base-extension "org"
:publishing-directory "~/org/exports"
:publishing-function org-publish-org-to-pdf)
("all" :components ("html" "pdf"))))
Eval questa espressione (o riavviare Emacs), premere C-c C-e X
a org-mode, quindi scegliere un progetto da un elenco.
È possibile visualizzare ulteriori informazioni a http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html e http://orgmode.org/manual/Publishing.html#Publishing
È inoltre possibile utilizzare questo tipo di configurazione per esportare parti di un file in modalità org utilizzando le proprietà: http://orgmode.org/worg/org-tutorials/org-latex-export.html#sec-9 – cm2
Grazie. Ho intenzione di provare questo alla fine. Avevo pensato di provare a utilizzare org-publish, ma non ero sicuro se fosse adatto a quello che stavo facendo. Sto ancora imparando. – tmilktoast
Questo probabilmente non è stato possibile quando la domanda è stato chiesto prima, ma la soluzione più semplice sarebbe quella di aggiungere la directory alla proprietà :EXPORT_FILE_NAME:
:
:PROPERTIES:
:EXPORT_FILE_NAME: exports/<filename>
:END:
Proprio come nella risposta accettata, la directory deve esistere in modo che funzioni.
Hai provato questo? Non ha funzionato per me. Sto cercando di esportare il pdf in una directory specifica di un livello. Avevo letto altrove, dove si tratta solo dell'esportazione sottostringa e non dell'intero file. È ancora così? – Jesse
La domanda iniziale di cui al esportazione di org-file, mentre la maggior parte delle risposte di cui sopra in realtà hanno a che fare con la pubblicazione , che è un concetto diverso.
Credo che il modo migliore per risolvere il problema posto dal PO è quello di aggiungere quanto segue al file di inizializzazione emacs (.emacs):
(defadvice org-export-output-file-name (before org-add-export-dir activate)
"Modifies org-export to place exported files in a different directory"
(when (not pub-dir)
(setq pub-dir "exported-org-files")
(when (not (file-directory-p pub-dir))
(make-directory pub-dir))))
PS:
mi rendo conto una domanda di 5 anni potrebbe non essere più pertinente al PO, ma si spera che le persone alla ricerca di materiale simile trarranno beneficio da questa risposta.
Questa è una lieve modifica di un frammento di codice trovato in http://rwx.io/blog/2016/03/11/Org-Export-Configurations/
La soluzione originale trovata nel blog sopra consente per la creazione di directory differenti per ciascun formato esportato. Tuttavia, se l'obiettivo è evitare di avere la directory "piena di file PDF, Tex e HTML", penso che sia meglio avere una sola directory contenente i file esportati di tutti i formati, che è l'essenza della modifica che ho offerto sopra.
Edit: Il manuale emacs (https://www.gnu.org/software/emacs/manual/html_node/elisp/Porting-old-advice.html#Porting-old-advice) stabilisce che il meccanismo defadvice
è stata resa obsoleta dalla nuova advice-add
.Ecco uno snipet codice con lo stesso effetto, utilizzando la raccomandata advice-add
:
(defun org-export-output-file-name-modified (orig-fun extension &optional subtreep pub-dir)
(unless pub-dir
(setq pub-dir "exported-org-files")
(unless (file-directory-p pub-dir)
(make-directory pub-dir)))
(apply orig-fun extension subtreep pub-dir nil))
(advice-add 'org-export-output-file-name :around #'org-export-output-file-name-modified)
Come prima, questo deve essere posto nel file .emacs.
Vedere http://emacs.stackexchange.com/a/7989/8541 per una soluzione pulita che esporta in una sottocartella. – Mark