org-mode中的多文件包含

在编写大型的org文件时,包含文件是不可避免的。但是在包含文件的时候,有一个问题,就 是被包含的文件也是一个相对独立的文章,它也有自己的一级标题,二级标题等。被包含进别 的文件以后,原有地目录结构就会被破坏,这是我们所不愿意看到的。除非你在每篇被包含的 文章中都小心注意各级标题,否则,就一定需要一个自动标题级别调节机制。幸运的是,org-mode 中本身就包含了这种自动调整标题级别的属性。那就是在 #+include 可以包含可选参数 :minlevel , 其使用方法如下

假定有文件 aa.org , 内容为

* 这是标题一

** 这是二级标题

#+include:  chapter1.org  :minlevel 1
#+include:  chapter2.org  :minlevel 1

chapter1.org 的内容为

* 第一章标题

** 第一章 第一小节
** 第一章 第二小节

chapter2.org 的内容为

* 第二章标题

** 第二章 第一小节
** 第二章 第二小节

那么最终生成的 aa.org 结构为:

1. 这是标题一
    1.1. 这是二级标题
2. 第一章标题
    2.1. 第一章 第一小节
    2.2. 第一章 第二小节
3. 第二章标题
    3.1. 第二章 第一小节
    3.2. 第二章 第二小节

这里起关键作用的是 :minlevel 参数,这个参数指定了被包含文件中最小级别标题所对应的级别。在 chapter1/2.org中的最小标题级别为1,minlevel指定最小级别为1,也就是说保持被包含文件的标题级别。 这样就得到了我们想要的结构。

现在假设 chapter2.org 的标题级别都变小一级,如下所示,

** 第二章标题

*** 第二章 第一小节
*** 第二章 第二小节

生成的 aa.org 应该会将其中最小级别的标题变为1级,也就是说二级变一级,相应地三级变二级, 这样生成的结果应该不变。结果确如我们所想。标题结构较chapter2.org更新前是不变的。因此, 有了minlevel参数,可以有效的控制被包含文章中标题的级别。

在缺省情况下,如果不指定minlevel参数,那么包含进来的内容将会作为当前标题下的子内容。相当于 是指定minlevel为当前标题级别的下一级别。



本文地址: http://www.bagualu.net/wordpress/archives/6549 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注