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

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

那里的Javadoc注释正在被org翻译为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 或者是铸造的,因为我已经努力为它制作了一套很好的样式。

有帮助吗?

解决方案

你最终想要的是 字面示例.基本上你希望代码被导出,但fonified。你得告诉我 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"))

此外,有了这个,你不需要指定 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 阻止在你的例子中,事情正在被奇怪地解析。原则上,人们希望乳胶块中的任何东西按原样传递给 .特克斯 档案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top