Предотвращение перевода комментария в режиме организации в качестве среды детализации
Вопрос
У меня есть 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, передавалось как есть в .текс файл.