منع الوضع التنظيمي من ترجمة التعليق كبيئة تفصيلية
سؤال
انا لدي org-mode
المستند الذي أريد تصديره بصيغة PDF.أنا أستخدم حزمة قوائم LaTeX لإنشاء قوائم تعليمات برمجية منسقة بشكل جيد، والتي تبدو هكذا في المؤسسة:
#+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
package في وسيطة رأس للمستند الخاص بك.الآن، سيتم تصدير كتل التعليمات البرمجية المصدر في الملف المناسب 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
block في المثال الخاص بك، يتم تحليل الأمور بشكل غريب.من حيث المبدأ، يرغب المرء في أن يتم تمرير كل ما هو موجود في كتلة LaTeX كما هو إلى .تكس ملف.