我有一个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注释翻译为LaTeXitemize
环境,如下所示:
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
或minted,因为我已经努力为它组合了一组漂亮的样式。
您最终想要的是一个文字示例。从本质上讲,您希望代码被导出,但要被字体化。您需要告诉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
块表示事物被奇怪地解析。原则上,人们希望LaTeX块中的任何内容都能原样传递到.tex文件。