我发现了 org mode 在导出为 latex 的一个行为, 比如:
** heading1
**** heading2
我以为会导出为 \subsection{heading1}
和 \paragraph{heading2}
, 但却导出为了 \section{heading1}
和 \subsubsection{heading2}
, 所有标题都被映射为级别更高的标题, 使得最大级别的标题从 1 开始 (而不是从它本来的 level 开始), 有没有办法修改这个行为?
我试过 emacs -Q 也会有这个行为, org mode 版本是 9.6.3.
Hao
2
应该是因为 \subsection 必须包在 \section 下面吧. 如果你有一个 level 1 的包着它们, 导出的结果就会如你预期了.
改代码了:
(defun my/org-export-get-relative-level (headline info)
"Return HEADLINE relative level within current parsed tree.
INFO is a plist holding contextual information."
(+ (org-element-property :level headline)
-1))
(advice-add 'org-export-get-relative-level :override #'my/org-export-get-relative-level)
我这里设成 -1 是根据我的格式, 因为我把文章标题作为一级标题, 这样二级标题才对应 section.
这段代码只建议在导出 region 使用, 导出全文会有问题. 导出全文我是用 这个方法 来管理的.