Предотвращение перевода комментария в режиме организации в качестве среды детализации

StackOverflow https://stackoverflow.com//questions/9664648

  •  12-12-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top