将评论导出为评论

时间:2012-03-26 13:49:19

标签: emacs latex comments org-mode

在Org-mode中你可以发表评论,从Org-mode你可以导出到LaTeX,但Org-mode注释不会导出到LaTeX评论。如何使用Org-mode将Org-mode注释导出为LaTeX注释?

这是一个例子。以下

* Test

Text before comment
# Comment
Text after comment

Text before comment
#+BEGIN_COMMENT
Comment
#+END_COMMENT
Text after comment

出口到

\section{Test}
\label{sec-1}


Text before comment
Text after comment

Text before comment

Text after comment

但我希望将组织模式注释导出为LaTeX注释。因此,我想要以下LaTeX输出:

\section{Test}
\label{sec-1}


Text before comment
% Comment
Text after comment

Text before comment
\begin{comment}
Comment
\end{comment}
Text after comment

我在Emacs 23.3.1中运行Org-mode 7.6。

2 个答案:

答案 0 :(得分:5)

在当前的导出器下,我能想到的唯一可以导出注释的方法是后端特定的。您可以使用以下内容:

#+latex: comment

#+begin_latex
\begin{comment}
  comment
\end{comment}
#+end_latex

然而,如果你打算导出多种格式,那么两者都是人为的,你需要为HTML等做同等的事情。

在开发中有一个new exporter,但这不应该过于难以实现(注释已经在解析器中被识别为块,所以它只需要一个方法来在导出时转换它们。)

我将此请求转发到邮件列表,看看是否可以包含此请求 编辑:线程位于here

编辑:来自Org-Mode维护者的回应

  

当前的出口商不允许这样做,而是新的出口引擎   尼古拉斯使它成为可能。

     

计划是将新的导出引擎合并到Org的核心之前   版本8.0,所以请继续关注。

答案 1 :(得分:3)

除了Jonathan Leech-Pepin的答案之外,还有一种针对特定出口商后端的黑客方式。注释在org-export-handle-comments函数中处理,该函数由org-exp.el中的org-export-preprocess-string调用。每个导出器后端都不同,但让我们考虑一下LaTeX后端。

如果您查看org-latex.el中的org-export-as-latex函数,则可以找到对org-export-preprocess-string的调用。传递给org-export-preprocess-string函数的一件事是参数列表,特别是它包含一个:comments参数,该参数在LaTeX案例中设置为nil。此参数告诉组织模式导出器如何处理注释 - 有关详细信息,请参阅org-exp.el中org-export-handle-comments的调用和实现。实质上,:comments参数可以是显示如何处理注释的格式字符串;如果是nil,则表示没有格式处理,因此不会打印任何内容。如果在org-export-as-latex函数中,您将:comments nil替换为:comments "%% %s",那么这将在导出时注释文本的前面插入“%”。所以在你的情况下

this is text before a comment
# this is a comment
this is text after a comment

将导出为

this is text before a comment
% this is a comment
this is text after a comment

这不是最方便的做法,我不确定是否可以在每个文件的基础上指定:comments参数。也许乔纳森设立的主题中的某些内容可以为这个主题提供一些启示。

请注意,您可能需要删除字节编译的org-latex.elc文件,以便将org-latex.el中的更改传播到导出。