您所要求的内容没有默认支持。但是,您可以使用预处理挂钩来获得类似的输出。这是 LaTeX 导出的示例:
;; backend aware export preprocess hook
(defun sa-org-export-preprocess-hook ()
"My backend aware export preprocess hook."
(save-excursion
(when (eq org-export-current-backend 'latex)
;; ignoreheading tag for bibliographies and appendices
(let* ((tag "ignoreheading"))
(org-map-entries (lambda ()
(delete-region (point-at-bol) (point-at-eol)))
(concat ":" tag ":"))))))
(add-hook 'org-export-preprocess-hook 'sa-org-export-preprocess-hook)
这是我的 org-mode 设置中的一个片段。你可以在github上看到原文
。上面的代码将忽略带有 标记的标题ignoreheading
,例如
* Heading 1
* Heading 2 :ignoreheading:
+ Some text
+ an item
导出为:
\section{Heading 1}
\label{sec-1}
\begin{itemize}
\item Some text
\item an item
\end{itemize}
警告:此解决方案存在一个已知问题。当您在第一个标题上尝试此操作时,它不起作用。我不明白为什么会这样,希望有一天我有时间调查一下。
需要注意的解决方法:可以通过在 org 文件头之后使用这样的行来规避 LaTeX 导出的上述限制:
\include{preamble.tex}
该preamble.tex
文件可以包括摘要或致谢等部分。但是您应该注意,这会使您的 org 文件与导出后端非常紧密地联系在一起。例如,将相同的 org 文件导出到 HTML 将变得非常重要。
注意:对于新导出框架(Org 8.0 或更高版本)的类似设置,请使用以下内容:
(defun sa-ignore-headline (contents backend info)
"Ignore headlines with tag `ignoreheading'."
(when (and (org-export-derived-backend-p backend 'latex 'html 'ascii)
(string-match "\\`.*ignoreheading.*\n"
(downcase contents)))
(replace-match "" nil nil contents)))
(add-to-list 'org-export-filter-headline-functions 'sa-ignore-headline)