latex - 防止 org-mode 将评论翻译为 itemize 环境

标签 latex org-mode listings

我有一个 org-mode 文档,我想将其导出为 PDF。我正在使用 LaTeX 列表包来生成格式良好的代码列表,在 org 中看起来像这样:

#+BEGIN_LaTeX
\begin{lstlisting}[language=Java]
    /** Comment comment comment
     * 
     * blah blah blah
     * 
     * @return comment
     */
    public void foo() {
        return;
    }
\end{lstlisting}
#+END_LaTeX

那里的 Javadoc 注释被组织翻译成 LaTeX itemize 环境,像这样:

\begin{lstlisting}[language=Java]
    /** Comment comment comment
\begin{itemize}
\item 
\item blah blah blah
\item 
\item @return comment
\end{itemize}
     */
    public void foo() {
        return;
    }
\end{lstlisting}

我怎样才能防止这种情况发生并保持我最初编写的 Javadoc?如果我使用 #+BEGIN_SRC 而不是 #+BEGIN_LaTeX 我得到的是一个 verbatim 环境,但我想坚持使用列表而不是verbatim 或类型转换,因为我已经努力为它组合了一套漂亮的样式。

最佳答案

您最终想要的是 literal example .本质上,您希望导出代码,但要字体化。您需要告诉 org-mode 在导出时使用列表(或生成的)。这可以在您的 .emacs 文件中完成:

;; tell org to use listings with colors                                                     
(setq org-export-latex-listings t)
(add-to-list 'org-export-latex-packages-alist '("" "listings"))
(add-to-list 'org-export-latex-packages-alist '("" "color"))

此外,您无需在文档的 header 参数中指定 listings 包。现在,源代码块将在适当的 lSTListings 环境中导出:

#+begin_src java                                                                
  /** Comment comment comment                                                   
   *                                                                            
   * blah blah blah                                                             
   * @return comment                                                            
   */                                                                           
  public void foo() {                                                           
    return;                                                                   
  }                                                                             
#+end_src

导出为 LaTeX 为

\lstset{language=java}
\begin{lstlisting}
/** Comment comment comment
 *
 * blah blah blah
 * @return comment
 */
public void foo() {
    return;
}
\end{lstlisting}

我不太确定为什么当您在示例中使用 #+begin_latex...#+end_latex block 时,事情会被奇怪地解析。原则上,人们希望将 LaTeX block 中的任何内容按原样传递给 .tex 文件。

关于latex - 防止 org-mode 将评论翻译为 itemize 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9664648/

相关文章:

r - 将多个框架选项传递给 rmarkdown::beamer_presentation 中的单个框架

pdf - 组织模式不导出为 PDF

emacs - 如何从组织模式表的列中导出以逗号分隔的值列表

r - 预订啦!未定义的控制序列。 <最近阅读>\passthrough

java - JAVA数组只打印最后一个元素?

LaTeX Beamer 包,在\againframe 中更改框架标题

javascript - 用javascript中的单个反斜杠替换?

latex - 当您编写 TeX 源代码时,您如何使用编辑器的自动换行功能?

emacs - 组织议程跳过功能不起作用

file - 如何为查看基于 Amazon S3 的静态网站的用户提供目录列表?