Запрещение org-mode переводить комментарий в качестве среды для создания элементов - PullRequest
3 голосов
/ 12 марта 2012

У меня есть 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 там переводится 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 или чеканить, поскольку я уже приложил усилия, чтобы собрать хороший наборстилей для него.

1 Ответ

6 голосов
/ 13 марта 2012

То, что вы в конечном итоге хотите, - это буквальный пример . По сути, вы хотите, чтобы код экспортировался, но был подтвержден. Вы должны указать 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 .

...