在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。
答案 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中的更改传播到导出。