【问题标题】:Emacs Org-mode - Export to another directory?Emacs Org-mode - 导出到另一个目录?
【发布时间】:2012-03-04 23:13:00
【问题描述】:

我知道这有点小问题,但它一直困扰着我。我在一个项目中使用 Org 模式,我倾向于经常导出为 PDF 或 HTML,它使我的目录中到处都是 PDF、Tex 和 HTML 文件。有没有办法将 Org 模式导出到另一个位置,也许是一个名为 ./exports 的子目录?

【问题讨论】:

标签: org-mode


【解决方案1】:

除了将org-publish-project-alist变量修改为@user1248256建议使用发布之外,您还可以在文件中直接指定org-export-publishing-directory变量:

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

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

导出时,它将被放置在“exports”目录中,但前提是该目录存在。如果不存在,您将在控制台中收到错误消息。

【讨论】:

  • 谢谢。我认为这更直接地回答了我的问题。不过有一件奇怪的事情。如果我导出为 HTML 或 ASCII,文件会转到 ./exports,但如果我导出为 TEX(或 PDF),它会保留在当前目录中。也许它在我的配置中?
  • 其实我今天才看到这个问题在org-mode mailing list——除非是你发的?
  • 现在可以使用 PDF 吗?我阅读了那里的邮件列表交换,但不清楚 pdf 的导出是否已修复。
  • 奇怪的是,这个设置对我不起作用。仍然导出到与.org 文件相同的路径(默认行为)
【解决方案2】:

最初的问题是 exporting of org-files,而上面的大多数答案实际上与 publishing 有关,这是一个不同的概念。

我认为解决 OP 提出的问题的最佳方法是将以下内容添加到您的 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:

  1. 我意识到一个 5 年前的问题可能不再与 OP 相关,但希望搜索类似内容的人会从这个答案中受益。

  2. 这是对http://rwx.io/posts/org-export-configurations/中的代码sn-p的轻微修改

  3. 在上述博客中找到的原始解决方案允许为每种导出格式设置不同的目录。但是,如果目标是避免 一个人的目录“到处都是 PDF、Tex 和 HTML 文件”,我认为最好只有一个目录包含所有格式的导出文件,这就是我上面提供的修改的本质。


编辑:emacs 手册 (https://www.gnu.org/software/emacs/manual/html_node/elisp/Porting-old-advice.html#Porting-old-advice) 指出 defadvice 机制已被新的 advice-add 淘汰。所以这里是一个效果相同的代码片段,使用推荐的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)

和以前一样,这应该放在您的 .emacs 文件中。

【讨论】:

  • 在建议添加此内容后,当文件导出到 pub-dir 时,它在导出子树时不使用属性抽屉EXPORT_FILENAME 中使用的文件名。知道如何让它发挥作用吗?
  • 虽然这似乎可以导出到 orgmode、html 和 LaTeX,但导出到 LaTeX 并因此 pdf 不起作用,因为 pdflatex 编译失败。
【解决方案3】:

第一次问这个问题时这可能是不可能的,但最简单的解决方案是将目录添加到 :EXPORT_FILE_NAME: 属性:

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

就像在接受的答案中一样,目录必须存在才能使其工作。

【讨论】:

  • 你试过了吗?它对我不起作用。我正在尝试将 pdf 导出到更高级别的特定目录。我读过其他地方,这仅用于子树导出而不是整个文件。还是这样吗?
  • 不起作用。运行 Emacs 26.1 和 Orgmode 9.0.9。文件夹exports/存在。似乎:EXPORT_FILE_NAME: 属性根本不起作用,无论是完整路径还是相对路径,带或不带引号。
  • @Jesse,即使是子树导出,它也不适合我。
【解决方案4】:

您必须在 org 文件的开头添加以下行:

#+EXPORT_FILE_NAME: PATH/filename

其中PATH 是您希望导出文件的文件夹路径(例如~/exports),filename 是您要为导出文件指定的名称(例如tutorial.html)。

【讨论】:

    【解决方案5】:

    我相信您可以通过 org-publish 获得它。 添加类似这样的 emacs 配置文件:

    (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"))))
    

    评估这个表达式(或重新启动 emacs),在 org-mode 下按 C-c C-e X,然后从列表中选择一个项目。

    您可以在http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.htmlhttp://orgmode.org/manual/Publishing.html#Publishing查看更多信息

    【讨论】:

    • 您也可以使用这种设置通过属性导出部分组织模式文件:orgmode.org/worg/org-tutorials/org-latex-export.html#sec-9
    • 谢谢。我最终要试试这个。我曾想过尝试使用 org-publish,但不确定它是否适合我正在做的事情。我还在学习。
    • 我必须将 org-publish-org-to-html 替换为 org-html-publish-to-html 才能正常工作。
    【解决方案6】:

    "Export settings" 部分所述,我们可以在文件中使用EXPORT_FILE_NAME 来设置输出目录。下面显示的引用是文档的相关部分

    ‘EXPORT_FILE_NAME’

    要生成的输出文件的名称。否则,Org 根据缓冲区名生成文件名,根据后端格式生成扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2010-10-16
      相关资源
      最近更新 更多