Verhindert, dass der Organisationsmodus einen Kommentar als Itemize-Umgebung übersetzt
Frage
ich habe ein org-mode
Dokument, das ich als PDF exportieren möchte.Ich verwende das LaTeX-Listings-Paket, um schön formatierte Code-Listings zu generieren, die in org so aussehen:
#+BEGIN_LaTeX
\begin{lstlisting}[language=Java]
/** Comment comment comment
*
* blah blah blah
*
* @return comment
*/
public void foo() {
return;
}
\end{lstlisting}
#+END_LaTeX
Der dortige Javadoc-Kommentar wird von org als LaTeX übersetzt itemize
Umgebung, etwa so:
\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}
Wie kann ich das verhindern und das Javadoc so beibehalten, wie ich es ursprünglich geschrieben habe?Wenn ich es benutze #+BEGIN_SRC
statt #+BEGIN_LaTeX
Was ich zurückbekomme, ist ein verbatim
Umgebung, aber ich möchte eher bei den Auflistungen bleiben als verbatim
oder geprägt, da ich mir bereits die Mühe gemacht habe, ein schönes Set an Stylings dafür zusammenzustellen.
Lösung
Was Sie letztendlich wollen, ist ein wörtliches Beispiel.Im Wesentlichen möchten Sie, dass der Code exportiert, aber in Schriftarten umgewandelt wird.Du musst es erzählen org-mode
um beim Export Auflistungen (oder Prägungen) zu verwenden.Dies kann in Ihrem erfolgen .emacs Datei:
;; 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"))
Außerdem müssen Sie hiermit nicht angeben listings
Paket in einem Header-Argument zu Ihrem Dokument.Nun werden Quellcodeblöcke in die entsprechenden exportiert lstlistings
Umfeld:
#+begin_src java
/** Comment comment comment
*
* blah blah blah
* @return comment
*/
public void foo() {
return;
}
#+end_src
wird nach LaTeX exportiert als
\lstset{language=java}
\begin{lstlisting}
/** Comment comment comment
*
* blah blah blah
* @return comment
*/
public void foo() {
return;
}
\end{lstlisting}
Ich bin mir nicht ganz sicher, warum, wenn Sie das verwenden #+begin_latex
...#+end_latex
Blockieren Sie in Ihrem Beispiel, dass die Dinge seltsam analysiert werden.Im Prinzip möchte man, dass alles, was sich im LaTeX-Block befindet, unverändert an den übergeben wird .tex Datei.