2012-03-04 27 views
19

Tôi biết đây là loại nhỏ, nhưng nó đã làm tôi thất vọng. Tôi đang sử dụng chế độ Org cho một dự án và tôi có xu hướng xuất sang PDF hoặc HTML thay vì thường xuyên và nó rời khỏi thư mục của tôi rải rác với các tệp PDF, Tex và HTML. Có cách nào để xuất khẩu chế độ Org sang một vị trí khác, có lẽ một thư mục con được gọi là ./exports?Emacs Org-mode - Xuất sang thư mục khác?

+0

Xem http://emacs.stackexchange.com/a/7989/8541 để có giải pháp sạch xuất ra thư mục con. – Mark

Trả lời

17

Ngoài việc sử dụng các xuất bản bằng cách thay đổi biến org-publish-project-alist của bạn như @ user1248256 gợi ý, bạn có thể trực tiếp xác định biến org-export-publishing-directory trong tập tin của bạn:

#+bind: org-export-publishing-directory "./exports" 

* This is a test headline 
Some text here. This should be exported to the "./exports" directory. 

Khi xuất, nó sẽ được đặt trong thư mục "xuất khẩu", nhưng chỉ khi thư mục đó tồn tại. Nếu nó không tồn tại, bạn sẽ nhận được một thông báo lỗi trong giao diện điều khiển.

+3

Cảm ơn. Điều này trực tiếp trả lời câu hỏi của tôi, tôi nghĩ vậy. Có một điều kỳ lạ mặc dù. Nếu tôi xuất sang HTML hoặc ASCII, tệp sẽ chuyển tới ./exports, nhưng nếu tôi xuất sang TEX (hoặc PDF), nó sẽ nằm trong thư mục hiện tại. Có lẽ một cái gì đó của nó trong cấu hình của tôi? – tmilktoast

+1

Thực ra, tôi vừa mới thấy ngày hôm nay rằng câu hỏi này nằm trong [danh sách gửi thư chế độ org] (http://lists.gnu.org/archive/html/emacs-orgmode/2012-03/msg00264.html) - trừ khi bạn đã đăng? – cm2

+0

Không, không phải tôi. Tôi sẽ theo dõi chủ đề đó. – tmilktoast

3

Tôi tin rằng bạn có thể làm điều đó với việc xuất bản org. Thêm vào bạn cấu hình emacs tập tin một cái gì đó như thế:

(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 biểu thức này (hoặc khởi động lại emacs), nhấn C-c C-e X tại org-mode, sau đó chọn một dự án từ một danh sách.

Bạn có thể xem thêm thông tin tại http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.htmlhttp://orgmode.org/manual/Publishing.html#Publishing

+0

Bạn cũng có thể sử dụng loại thiết lập này để xuất các phần của tệp chế độ org bằng cách sử dụng các thuộc tính: http://orgmode.org/worg/org-tutorials/org-latex-export.html#sec-9 – cm2

+0

Cảm ơn bạn. Tôi sẽ cố gắng này cuối cùng. Tôi đã nghĩ về việc cố gắng sử dụng org-xuất bản, nhưng không chắc chắn nếu nó phù hợp với những gì tôi đã làm. Tôi vẫn đang học. – tmilktoast

2

Điều này có lẽ là không thể khi các câu hỏi lần đầu tiên được hỏi, nhưng là giải pháp đơn giản nhất sẽ có thêm các thư mục vào :EXPORT_FILE_NAME: tài sản:

:PROPERTIES: 
:EXPORT_FILE_NAME: exports/<filename> 
:END: 

Cũng như trong các câu trả lời được chấp nhận, thư mục phải tồn tại để làm việc này.

+0

Bạn đã thử điều này chưa? Nó không làm việc cho tôi. Tôi đang cố gắng để xuất khẩu pdf vào một thư mục cụ thể lên một cấp độ. Tôi đã đọc khác nơi mà điều này chỉ dành cho xuất khẩu subtree và không phải toàn bộ tập tin. Đó vẫn là trường hợp? – Jesse

1

Câu hỏi ban đầu được gọi là xuất của org-tệp, trong khi hầu hết các câu trả lời ở trên thực tế phải làm với xuất bản, là một khái niệm khác.

Tôi tin rằng cách tốt nhất để giải quyết vấn đề gây ra bởi các OP là để thêm dòng sau vào tập tin khởi emacs của bạn (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:

  1. Tôi nhận ra một câu hỏi 5 năm tuổi có thể không còn liên quan đến OP, nhưng hy vọng mọi người tìm kiếm những nội dung tương tự sẽ được hưởng lợi từ câu trả lời này.

  2. Đây là một sửa đổi nhỏ của một đoạn mã được tìm thấy trong http://rwx.io/blog/2016/03/11/Org-Export-Configurations/

  3. Các giải pháp ban đầu được tìm thấy trong các blog trên cho phép thành lập các thư mục khác nhau cho mỗi định dạng xuất khẩu. Tuy nhiên, nếu mục tiêu là tránh để có thư mục của một người "rải rác bằng PDF, Tex và HTML", thì tôi nghĩ tốt nhất là chỉ nên có một thư mục chứa các tệp đã xuất của tất cả các định dạng, đó là bản chất của sửa đổi mà tôi đã cung cấp ở trên.


Edit: Tài liệu hướng dẫn emacs (https://www.gnu.org/software/emacs/manual/html_node/elisp/Porting-old-advice.html#Porting-old-advice) khẳng định rằng cơ chế defadvice đã trở nên lỗi thời bởi sự mới advice-add.Vì vậy, đây là một snipet mã với tác dụng tương tự, sử dụng đề nghị 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) 

Như trước đây, điều này sẽ được đặt trong tập tin emacs của bạn.

Các vấn đề liên quan