是否有可能嵌套"包括"在emacs组织模式?

时间:2015-09-01 14:45:28

标签: emacs org-mode

我正在编写文档,我的一份文档开始变得非常笨重。我决定把它分成几个部分并将它们全部包含在一个主要部分中,但我意识到当我这样做时,我无法正确导出html文件。

示例:

我有一个主要的组织文件:

#+TITLE: SO Example
#+LaTeX_CLASS: memoir
#+OPTIONS: ^:nil LaTeX:nil TeX:nil

* 1st Level
This is the first level.
#+INCLUDE: "nested_includes.org"

nested_includes.org看起来像:

** 2nd Level
This is the second level
#+INCLUDE: "single_include.org"

single_include.org看起来像:

*** 3rd Level
This is the third level

我使用以下命令构建我的HTML文件:

C:\...\emacs\bin\emacs.exe parent.org --batch -q --no-site-file --load C:\...\site-lisp\org-html-so.el -f org-export-as-html --kill

这就是我的org-html-so.el的样子:

(setq org-export-author-info nil)
(setq org-export-creator-info nil)
(setq org-export-time-stamp-file nil)
(setq org-export-with-timestamps nil)

当我建立时,我最终会得到这样的东西:

result

与此同时,我期待这样的事情:

expected

这是emacs org模式的已知问题/限制吗? 我有办法增加包含深度吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我怀疑您用于导出的功能是否有org-mode的旧版本。在组织模式的第8版中,导出功能被重写。我已经快速了解了如何使用我的emacs安装的org版本。所以对我来说:

M-x org-version

给出:

  

组织模式8.2.10(release_8.2.10 @ c:/dev/emacs/share/emacs/24.5/lisp/org /)

我的emacs 24.5版附带了哪个。给定您创建的相同文件。我将org-html-so.el更改为:

(require 'org)
(require 'ox) 
(require 'ox-html)
(setq org-export-author-info nil)
(setq org-export-creator-info nil)
(setq org-export-time-stamp-file nil)
(setq org-export-with-timestamps nil)

然后emacs调用是:

emacs.exe parent.org --batch -q --no-site-file --load org-html-so.el -f org-html-export-to-html --kill

包含深度

此版本的include似乎并没有限制深度,它确实记住以前包含的文件区域,以确保包含不是递归的。

升级

如果您有早期版本的emacs:您可以升级您的emacs版本,也可以在现有安装中安装较新版本的org。

通过包管理器安装较新版本或从github本地安装。请参阅Org Manual中的安装页面。

值得升级,至少因为后期版本更积极,您可以利用最新功能。例如,您可能希望支持html主题org-html-themes