Orgmode निर्यात: टिप्पणी लाइनों के लिए एक नई रेखा को कैसे रोका जाए


16

वर्तमान में मेरा ओर्गमोड (v8.3.4), जब लाटेक्स (और शायद अन्य प्रारूपों पर निर्यात नहीं किया गया है) पर निर्यात कर रहा है, तो एक टिप्पणी लाइन या लगातार टिप्पणी लाइनों के ब्लॉक के लिए एक नई लाइन उत्पन्न करता है। यह अवांछनीय है क्योंकि LaTeX में, यह एक नया पैराग्राफ बनाएगा। जब मैं लिखता हूं, तो मुझे अक्सर एक अनुच्छेद के बीच में एक पंक्ति या दो पर टिप्पणी करने की आवश्यकता होती है, लेकिन उस अनुच्छेद को दो में विभाजित नहीं करना चाहता। वर्तमान में, ऑर्गमोड के इस व्यवहार के कारण, मुझे पैराग्राफ के बाद उन टिप्पणी वाली पंक्तियों को स्थानांतरित करना होगा, जो पाठ को संशोधित करते समय भ्रमित हो सकते हैं।

नीचे एक न्यूनतम उदाहरण है। ऑर्गमोड स्रोत है:

First sentence.
# Commented sentence.
Last sentence.

जिसे ऑर्गमोड द्वारा लाटेक्स को निर्यात किया जाता है (प्रस्तावना को छोड़ कर):

\begin{document}
\tableofcontents

First sentence.

Last sentence.
\end{document}

पहले और अंतिम वाक्यों के बीच एक खाली रेखा होती है, जिसके परिणामस्वरूप एक के बजाय दो पैराग्राफ होते हैं।

क्या ऑर्गेमोड के इस व्यवहार को रोकने का कोई तरीका है? एक टिप्पणी लाइन, या टिप्पणी लाइनों का एक ब्लॉक, 0 बाइट / वर्ण को निर्यात किया जाना चाहिए, यहां तक ​​कि एक नई पंक्ति भी नहीं। टिप्पणियों को संसाधित करते समय यह LaTeX का व्यवहार है।


3
मुझे लगता है कि यह ऑर्ग-मोड में एक बग है। यह ऑर्ग-मोड मेलिंग सूची पर चर्चा करने के लायक हो सकता है ।
ph0t0nix

1
मुख्य ऑर्ग मोड देवों में से एक के रूप में, निकोलस गाज़ियाउ ने पुष्टि की, यह व्यवहार एक बग नहीं, अपेक्षित है
कौशल मोदी मोदी

उपरोक्त दोनों समाधान काम करते हैं # comments, लेकिन दुर्भाग्यवश # + BEGIN_COMMENT टिप्पणियों के लिए कोई भी काम नहीं करता है # + END_COMMENT उस स्थान पर LaTeX निर्यात में एक नई पंक्ति सम्मिलित की जाती है जहाँ ब्लॉक टिप्पणी मौजूद थी ... क्या इसे ठीक करने का कोई आसान तरीका है? EDIT (नरक-हाँ, वहाँ है): @ जॉन द्वारा प्रदान किए गए उत्तर के आधार पर, दोनों ब्लॉक के # commentsलिए और दोनों के लिए निम्न कार्य करता है #+BEGIN_COMMENT: (defun delete-org-comments (backend) (लूप इन कमेंट के लिए) एलिमेंट-मैप (ऑर्ग-एलिमेंट-पार्स-बफर) 'कमेंट'
आइडेंटीफिकेशन

जवाबों:


4

कुछ इस तरह की कोशिश करो। इस कोड ब्लॉक को अपने दस्तावेज़ में रखें, और इसे चलाएं। लाटेक्स एक बफर ऑर्ग लेटेक्स एक्सपोर्ट में होगा

* build :noexport:
#+BEGIN_SRC emacs-lisp
(defun delete-org-comments (backend)
  (loop for comment in (reverse (org-element-map (org-element-parse-buffer)
                    'comment 'identity))
    do
    (setf (buffer-substring (org-element-property :begin comment)
                (org-element-property :end comment))
          "")))

(let ((org-export-before-processing-hook '(delete-org-comments)))
  (switch-to-buffer (org-latex-export-as-latex)))
#+END_SRC

0

जॉन के जवाब पर बिल्डिंग, यहां एक वैकल्पिक फ़ंक्शन का उपयोग किया गया है org-element-extract-elementऔर org-element-interpret-data:

(defun delete-org-comments (backend)
  (let ((tree (org-element-parse-buffer)))
    (org-element-map tree 'comment #'org-element-extract-element)
    (erase-buffer)
    (insert (org-element-interpret-data tree))))

org-elementएपीआई विशेष रूप से स्पष्ट नहीं है, लेकिन यह शक्तिशाली है - आप इसे अपने दम पर एक सा पता लगाने के लिए किया है। :) बेशक, जॉन शायद बड़े दस्तावेजों के लिए तेज है क्योंकि यह पेड़ को एक स्ट्रिंग में फिर से व्याख्या करने के बजाय बफर को संशोधित करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.